No Metadado do Protheus existe o recurso de se preencher campos baseados na ação de outro campo, e isso pode ser feito sem que se precise criar rotinas ou alterar as rotinas existentes. Existe 3 tipos de gatilho no Microsiga Protheus:
- Gatilho Primário
O gatilho primário é o tipo de gatilho mais utilizado, nele precisamos informar apenas o campo aonde o disparo ira ocorrer, o contra domínio(campo que recebe o valor) e a regra de preenchimento. Após ser validado o campo de disparo, ira automaticamente preencher o campo de contra domínio com a macro execução da regra.
Caso o X7_SEEK esteja com “S” irá efetuar o posicionamento da tabela, podemos ter no X7_REGRA um nome de um campo que queremos o valor da tabela posicionada.
2. Gatilho Estrangeiro
O gatilho estrangeiro efetua o preenchimento de um campo na tabela indica pelo conjunto de campos (X7_ALIAS,X7_ORDEM,X7_CHAVE). Esse preenchimento se dá apenas na confirmação da tela, e efetuada diretamente na base de dados.
3. Gatilho de Posicionamento
O gatilho de posicionamento é utilizado precisamos posicionar uma determinada tabela.
Campos | Tipo | Descrição |
X7_CAMPO | Caracter | Campo que ira disparar o gatilho. O campo precisa existir no SX3 e possuir o X3_TRIGGER como “S”. |
X7_SEQUENC | Caracter | Sequenciador para os gatilhos de um determinado campo. |
X7_REGRA | Caracter | Regra de preenchimento que será atribuída no campo de Destino(contra domínio), o conteúdo desse campo será macro executado e o resultado dele será atribuído ao X7_CDOMIN |
X7_CDOMIN | Caracter | Campo de Destino(Contra domínio) da regra, teremos aqui o nome do campo que recebera o valor da regra(X7_REGRA). |
X7_TIPO | Caracter | Tipo de Gatilho, valores aceitos para ele P = Primário ; E = Estrangeiro ; X = Posicionamento. |
X7_SEEK | Caracter | Irá posicionar uma tabela, Valores aceitos são “S” para sim ou “N” não. |
X7_ALIAS | Caracter | Tabela que será posicionada. |
X7_ORDEM | Numérico | Numero do indexe que será usado para a pesquisa, |
X7_CHAVE | Caracter | Chave de pesquisa que será utilizado na tabela definida no X7_ALIAS para buscar o valor da chave. O conteúdo desse campo será macro executado e o resultado dele será utilizado como a chave de pesquisa. |
X7_CONDIC | Caracter | Função que poderá determinar se o gatilho deverá ser executado ou não. |
X7_PROPRI | Caracter | Prioridade do Parâmetro, quando com S - Sistema , quando U –Usuário |