Ligação / Link

Bom dia!

Está me ocorrendo um pequeno problema com uma ligação em uma consulta:

Criei um blank com uma ação e que recebe 2 parametros: action e id

O meu id deixei para que o valor a ser passado seja o campo id de minha consulta e o action com um valor fixo (1) porem sempre que clico no link gerado ele me diz que a var global “Action” não esta definida…

Erro: [Falta definição das seguintes variáveis globais: action;]

Tentei as seuintes ações:

[ol][li]Gerar novamente o código fonte do blank e da consulta[/li]
[li]Deletar a ligação e cria-la novamente[/li][/ol]

Simplesmente não mudou nada .

Alguem já teve esse problema pode me dar uma ideia? Grato…

nome de variáveis globais é casesensitive.
Na blank, coloque essa variavel global como saída, e na onexecute de um echo nela para ver se o valor está vindo.

Olá Haroldo, acho que posso ter me exressado mal em algum momento… a variavel action está sendo recebida por uma blank e não enviada por ele.

eu tirei screenshots e coloquei no imageshack caso vc queira verificar:

http://imageshack.us/f/339/ss1vb.jpg/
http://imageshack.us/f/834/ss2qr.jpg/

Tambem chequei o nome da var action e parece estar ok…

Sim, eu entendi, só pedi para colocar como saída para evitar o erro que está dando.

Certo, o erro não impede mais o script de rodar depois de mudar aquela opção porem o valor continua não sendo passado.

Realizei outros testes enviando um valor de campo ao invés de um fixo mas mesmo assim ele entende a var action como vazio

Carlos,

Isso era o que o SC estava lhe informando ao apresentar o erro… ele encontrou uma variável global e não sabia o conteúdo dela… então SDHPU sugeriu que você setasse ela como saída e isso na maioria das vezes é necessário, desde que este parâmetro tenha sido criado/setado como global por alguma outra app do seu sistema… mas parece-me que sua aplicação consulta não a criou…

Então, em algum evento da sua app consulta você terá que setar este parâmetro (Action) como sendo uma variável global (através da macro sc_set_global ou simplesmente colocando-a entre cochetes [Action] = _____ ). Feito isso, coloque-a novamente como entrada na app blank e reconstrua a ligação entre ambas.

Forte abraço.

Corretíssimo jovitomelo, parece que não havia sido inicializada anteriormente, realmente…

Declarei a var global no onAplicationInit com valor zero ,voltei como entrada e criei um novolink como voce disse. Porém, agora ele sempre recebe zero e não o valor declarado fixo…

Carlos,

Não há necessidade alguma dela ser criada no onAplicationInit… ela pode e deverá ser setada como global no momento em que você definir o seu conteúdo…

Você menciona que ela tem “… valor fixo (1) …”, mas ela não deve ter um valor tão fixo assim, porque senão não deveria ser uma variável global… ela estaria dentro da sua app blank com o valor (1).

Analise direitinho seu código, veja onde ela recebe o valor fixo e sete-a como global aí, onde ela recebe o valor. Ela pode receber este valor até em outra app que não seja esta consulta que a está chamando… e nesse caso se aplica a dica do SDHPU setando-a como SAIDA na app blank.

[]´s

Obrigado pela ajuda, consegui resolver o problema da maneira mais improvavel que é modificando o nome da var…
O nome [action] pode estar sendo usado internamente. Apenas modifiquei para outro nome como “acao_form” ou simplesmente “acao”.

Apenas esclarecendo, ela ira ser usada como um parametro para definir a ação na aplicação destino a qual poderá fazer tanto o cancelamento, remoção, encaminhamento e aprovação de uma ordem e por esse motivo não foi usada uma constante.

Obrigado novamente pela atenção e pelas sugestões.

por padrão eu sempre uso um prefixo em todas minhas variáveis globais, exemplo:
[iw_titulo], [iw_login], [iw_empresa]…

se colocar um underline na frente ele cria a variável em sessão e não aparece em Variáveis Globais:

[_myvar].