Produto: | |
---|---|
Linha de Produto: | |
Segmento: | |
Módulo: | SIGATRM |
Função: | TRMA020 |
Ticket: | 9570375 |
Requisito/Story/Issue: | DRHGCH-21156 |
A rotina TRMA020 - Cadastro de Cargos, possui uma limitação técnica na execução de gatilhos. Estes não são executados em campos do tipo MEMO.
A rotina foi desenvolvida no modelo tradicional e não em MVC. Com isso o mecanismo de execução das trigger, gatilhos de campos, utilizada no modelo em que a rotina foi desenvolvida,
não possibilita que campos virtuais do tipo MEMO sejam executados.
Para contornar o problema e possibilitar a execução do gatilho de campos do tipo MEMO, foi adicionado um P.E na rotina TRMA020.
Quando o usuário do sistema possuir o PE TRM020GLT no ambiente, este executará o gatilho, previamente configurado através do modulo SIGACFG.
No exemplo abaixo, o fonte TRM020GTL, executa o gatilho configurado para o campo Q3_MEMO1; Quando o usuário selecionar botão Salvar dentro do cadastro de cargos, o gatilho será disparo e armazenará no campo
Q3_DATA o valor retornado pela função Date(). Para esse cenário, devemos configurar o gatilho, através do módulo SIGACFG, da seguinte forma:
Acessar módulo SIGACFG → Dicionário de Dados → Tabela SQ3 → Incluir campo Q3_DATA.
Acessar módulo SIGACFG → Dicionário de Dados → Gatilhos → Incluir Q3_MEMO1:
Durante a operação de inclusão ou alteração do Castro de Cargos - TRMA020, o gatilho mostrado na imagem anterior, irá preencher a data atual, no campo Q3_DATA ( Campo personalizado).
Isso ocorrerá após selecionar o botão salvar do cadastro de cargos.
Ponto de Entrada (P.E.) - TRM020GLT
A variável cReadVar , contida no fonte abaixo deverá ser preenchida com o nome do gatilho. Caso o usuário deseje utilizar outro campo do tipo MEMO, que possua gatilho,
basta alterar o conteúdo da variável, removendo Q3_MEMO1 e adicionando o nome do gatilho cadastro através do módulo SIGACFG.
#INCLUDE "PROTHEUS.CH" User Function TRM020GTL() Local cReadVar := "Q3_MEMO1" //Contem o nome do campo tipo MEMO que possui gatilho (Domínio) If(FunName() == 'TRMA020' .And. !Empty(cReadVar) ) IF (ExistTrigger(cReadVar)) RunTrigger(1,nil,nil,,cReadVar) EndIf EndIf Return .T. |
Não há.
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |