Tempo aproximado para leitura:00:02:00 min
Dúvida
GPM19INTEG - Qual o ponto de Entrada para integração de Roteiros definidos pelo usuário?
Ambiente
TOTVS RH - TOTVS RH (Linha Protheus) - Gestão de Pessoal – A partir da versão 12.
Solução
Ponto de entrada que permite integrar com a folha determinados roteiros de cálculos, definidos pelo usuário.
Para que roteiros customizados possam ser integrados com a folha, foi disponibilizado o Ponto de Entrada GPM19INTEG, onde através deste, o desenvolvedor deverá transitar para a folha os dados necessários, como verbas e valores.
Deverá utilizar o Array aRotMark que contém os dados necessários sobre os roteiros escolhidos para integrar.
Lembrando que nada impede à criação de roteiros definidos manualmente, porém para a transição para a Folha, a responsabilidade se torna do desenvolvedor, em alimentar as tabelas necessárias, como no exemplo abaixo onde há a transição para a RGB.
Como exemplo foi criado uma tabela RZZ com os campos de: Matrícula, Verba e Valor.
Esses dados serão transpostos para a tabela de incidências RGB.
Programa Fonte: GPEM019.PRW
Retorno: .T. para permitir a integração.
Exemplos:
#Include 'Protheus.ch'
User Function GPM19INTEG()
Local aAreaRGB := RGB->( GetArea("RGB") )
Local cPd := ""
Local nValor := 0
Local cPerFol := aRotMark[1,3] // Periodo
Local cSemFol := aRotMark[1,5] // Semana
Local cProc := aRotMark[1,1] // Processo
Local cRoteiro := aRotMark[1,2] // Roteiro
Local cRGBSeek := ""
Local nIndice := RetOrder( "RGB", "RGB_FILIAL+RGB_MAT+RGB_PD+RGB_PERIOD+RGB_SEMANA+RGB_SEQ" )
DbSelectArea("RZZ")
RZZ->( DbSetOrder(1) )
While RZZ->( !Eof() )
DbSelectArea("RGB")
RGB->( DbSetOrder( nIndice ) )
If !( RGB->( DbSeek( xFilial("RGB") + RZZ->RZZ_MAT + RZZ->RZZ_PD + cPerFol + "01", .F. ) ) )
RGB->( RecLock( "RGB" , .T. ) )
RGB->RGB_FILIAL := xFilial("RGB")
RGB->RGB_MAT := RZZ->RZZ_MAT
RGB->RGB_CC := "000001"
RGB->RGB_PD := RZZ->RZZ_PD
RGB->RGB_HORAS := 0
RGB->RGB_VALOR := RZZ->RZZ_VALOR
RGB->RGB_PARCEL := 0
RGB->RGB_PROCES := cProc
RGB->RGB_PERIOD := cPerFol
RGB->RGB_ROTEIR := cRoteiro
RGB->RGB_SEMANA := "01"
RGB->RGB_ROTORI := cRoteiro
RGB->( MsUnlock() )
EndIf
RGB->( DbCloseArea() )
RZZ->( DbSkip() )
EndDo
RZZ->( DbCloseArea() )
RestArea( aAreaRGB )
Return(.T.)
Saiba Mais:
https://tdn.totvs.com/pages/releaseview.action?pageId=243007532
0 Comentários