BUG - Barra de ação

Criei um botão ajax numa barra de ação.
Tenho 2 questões:

  1. O ícone aparece e ao clicar nele recebe a mensagem de sucesso com o botão ok, só que o código não executa.
    if (sc_actionbar_clicked_state() == “state1”) {
    $message = “Lançamento”;

sc_ajax_message ($message,‘APROVADO’, ‘modal=Ybutton=Y&button_label=OK&type success’);

$update_table = ‘LANCA’; // Table name
$update Where = “CODIGO_LANCA = ‘{LANCA.CODIGO_LANCA}’”; // Where clause
$update Fields = array( // Field list, add as many as needed
“ENVIADO = ‘2’”, // lançamento aprovado
);

// Update record
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update Fields)
. ’ WHERE ’ . $update Where;
sc_exec_sql($update_sql);
sc_commit_trans();
}

  1. Se antes de clicar no botão criado eu faço uma busca rápida com um filtro ao clicar no botão ele descofigura totalmente

Screenshot 2022-11-27 at 21.12.38

O que esta acontecendo é que não consigo passar os parametros que passam como nulo e acaba dando erro. Eu verifiquei assim:
//Define o(s) destinatário(s)
echo “

”;
print_r("oi " . {LANCA.CODIGO_LANCA});
echo “
”;
Esta definido como parametro para passar mas não vem

O meu código tinha um erro no SQL por isto não passava o parâmetro. Mesmo assim a barra de ação não funciona.

Olá, estou verificando em meu ambiente porém não estou simulando o problema.
Provavelmente o problema deve ser bem específico.
Segue alguns cenários que criei para realização dos testes:

  • Criei um botão ajax na minha barra de ação e adicionei um echo apenas para imprimir algo na tela e funcionou bem.
  • Criei um botão ajax passando como parâmetro um campo nulo ex: echo ""; print_r("oi " . {field_null}); echo "";. Desta forma também não consegui simular o problema.

Há alguma outra forma que eu possa tentar para que eu consiga simular o problema?
Se possível, tente criar uma aplicação que contenha um simples SELECT e crie uma barra de ações passando como parâmetro um campo.

Aguardo seu retorno.

Tem que criar no onrecord o action state, aqui uso um botão para ativar ou desativar o registro e está rodando normalmente, meu SC está atualizado na última versão

//ativa ou desativa o REGISTRO
sc_actionbar_state(“desativar”, “ativo”);
if ({ativo}==0)
{
sc_actionbar_state(“desativar”, “desativado”);
}

Ola
Desculpe a demora.
O erro acontece no SQL e isto não acontece no onrecord e sim no evento Ajax.
Este problema acontece com Grids que já existiam no sistema
Este código abaixo me da problema

$message = “Lançamento”;
sc_ajax_message ($message,‘APROVADO’, ‘modal=Ybutton=Y&button_label=OK&type success’);
$sql = "UPDATE LANCA SET ENVIADO = 2 WHERE CODIGO_LANCA = ". {CODIGO_LANCA};
sc_exec_sql($sql);
sc_commit_trans();

@andrefogelman por acaso o campo que você está passando como parâmetro está escondido? Acabei de ter este mesmo problema, mas no meu caso foi em ligação com outra aplicação (pela barra de ações), e assim que eu deixei o campo visível passou a funcionar…

Não. O campo não esta escondido

Eu faço assim, veja se pode te ajudar.
Esse evento ajax é rodado para mudar o status para ativo ou desativado, para tanto criei a ação com o nome desativar e 2 estados ativo e destaivado

//validação para os botões de ação
//desativa quando estiver ativo
if (sc_actionbar_clicked_state() == “ativo”)
{
$message = “Registro desativado com sucesso!”;
$sql = “UPDATE tipo_arquivo SET ativo=‘0’,data_alteracao=NOW() WHERE pk_tipoarquivoid =”.{pk_tipoarquivoid};
sc_actionbar_state(“desativar”, “desativado”);
}
//ativa quando estiver desativado
elseif (sc_actionbar_clicked_state() == “desativado”)
{
$message = “Registro ativado com sucesso”;
$sql = “UPDATE tipo_arquivo SET ativo=‘1’,data_alteracao=NOW() WHERE pk_tipoarquivoid =”.{pk_tipoarquivoid};
sc_actionbar_state(“desativar”, “ativo”);
}
sc_exec_sql($sql);
sc_commit_trans();
sc_ajax_message($message, ‘Aviso’, ‘modal=Ybutton=Y&button_label=OK&type=success’);
sc_redir(grid_tipo_arquivo.php, “”);

Ainda continua o mesmo problema, mesmo atualizando agora para versão atual.

Se criar um botão de ação do tipo Ajax e marcar nos parâmetros o campo que deseja, esse parâmetro não é lido pelo código ajax, causando erro na execução pois preciso dessa parâmetro para atualizar o BD.

Verificando na aplicação de exemplo, está funcionando. Mas quando cria uma Consulta e tentei utilizar o parâmetro não funciona.

Mais um bug SC que ainda não resolveram.