Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Produto:

Solucoes_totvs
Solucao

Solucoes_totvs_cross
SolucaoCrossTOTVS RH

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
SegmentoDistribuição
RegionConstrução Projetos
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoRH

Módulo:SIGATRM
Função:TRMA020
Ticket:9570375
Requisito/Story/Issue:DRHGCH-21156

02. SITUAÇÃO/REQUISITO

A rotina TRMA020 - Cadastro de Cargos, possui uma limitação técnica na execução de gatilhos, quando o mesmo é adicionado . Estes não são executados em campos do tipo MEMO.  A rotina TRMA020 - Cadastro de Cargos,  

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,

...

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.
Na linha numero cinco e verifica se existe valor na variável cReadVar e em seguida abaixo variável 
cReadVar deverá conter o nome do gatilho configurado previamente no módulo SIGACFG:campo Q3_MEMO1; Quando o usuário selecionar botão Salvar dentro do cadastro de cargos, o gatilho será disparado 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. 

Image Added

Acessar módulo SIGACFG → Dicionário de Dados → Gatilhos → Incluir Q3_MEMO1:

Image Added


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.


Para o ponto de Entrada (P.E.) - TRM020GLT temos a variável cReadVar , como mostra o fonte abaixo, e nela deverá ser preenchido o nome do gatilho.

Caso o usuário 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.


Bloco de código
languagecpp
Bloco de código
languagevb
firstline1
titleTRM020GLT - Ponto de Entrada para execução de gatilhos em campos do tipo MEMO
linenumberstrue
#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.

...