Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

Microsiga Protheus®

Ocorrência:

Exemplo do funcionamento da rotina automática padrão MVC de Programação de Férias (GPEA050)

Passo a passo:

#Include 'Protheus.ch'
#Include 'FWMVCDef.ch'
#Include "TBIConn.ch"User Function GPEA050AUTO


User Function GPEA050AUTO()
Local aArea
Local aArea := GetArea GetArea()
Local aDadSRA Local aDadSRA := {}
Local aDadSRF Local aDadSRF := {}
Local cMatricula Local cMatricula := "999999995522"
Private oModel
Private oModel //Modelo
Private aRotinaPrivate aRotina
Private lGp050Auto Private lGp050Auto := .T. //Variável que define se é inserção automáticaVariável que define se é inserção automática

dbSelectArea("SRA")

dbSetOrder(1)
If If !dbSeek( xFilial xFilial("SRA") + cMatricula cMatricula)
     Alert     Alert("Funcionário não localizadoFuncionário não localizado.")
     Return     Return()
Endif


oModel := FWLoadModel FWLoadModel("GPEA050") //Carrega o modeloCarrega o modelo

oModel:SetOperation(MODEL_OPERATION_INSERT) //Seta operação de inclusãoSeta operação de inclusão
oModel:Activate() //Ativa o modeloAtiva o modelo

oModel:LoadValue("GPEA050_SRA" , "RA_MAT" , SRA SRA->RA_MAT MAT )
oModel:LoadValue("GPEA050_SRA" , "RA_NOME" , SRA SRA->RA_NOME)
oModel:LoadValue("GPEA050_SRA" , "RA_ADMISSA" , SRA SRA->RA_ADMISSA)

oModel:SetValue("GPEA050_SRF", "RF_FILIAL" , SRA SRA->RA_FILIAL)
oModel:SetValue("GPEA050_SRF", "RF_MAT" , SRA SRA->RA_MAT)
oModel:SetValue("GPEA050_SRF", "RF_DATABAS" , CTOD CTOD('0131/1003/20172021'))
oModel:SetValue("GPEA050_SRF", "RF_PD" , '129')
oModel:SetValue("GPEA050_SRF", "RF_DIASDIR" , 30 30.0)
oModel:SetValue("GPEA050_SRF", "RF_DATAINI ", CTOD('05/04/2020'))
oModel:SetValue("GPEA050_SRF", "RF_DATAFIM" , CTOD CTOD('3019/0903/20182022'))
oModel:SetValue("GPEA050_SRF", "RF_STATUS" , '1')

//Validação e Gravação do Modelo
If Validação e Gravação do Modelo
If oModel:VldData()
oModel:CommitData()
MsgInfo("Registro INCLUIDORegistro INCLUIDO!", "Atenção")
Else
aErro aErro := oModel:GetErrorMessage()
cArqErrAuto
cArqErrAuto := "Id do formulário de origemId do formulário de origem:"+ ' [' + AllToChar AllToChar( aErro aErro[1] ) + ']' + Chr Chr(13) + Chr Chr(10)
cArqErrAuto cArqErrAuto += "Id do campo de origemId do campo de origem: " + ' [' + AllToChar AllToChar( aErro aErro[2] ) + ']' + Chr Chr(13) + Chr Chr(10)
cArqErrAuto cArqErrAuto += "Id do formulário de erroId do formulário de erro: " + ' [' + AllToChar AllToChar( aErro aErro[3] ) + ']' + Chr Chr(13) + Chr Chr(10)
cArqErrAuto cArqErrAuto += "Id do campo de erroId do campo de erro: " + ' [' + AllToChar AllToChar( aErro aErro[4] ) + ']' + Chr Chr(13) + Chr Chr(10)
cArqErrAuto cArqErrAuto += "Id do erroId do erro: " + ' [' + AllToChar AllToChar( aErro aErro[5] ) + ']' + Chr Chr(13) + Chr Chr(10)
cArqErrAuto cArqErrAuto += "Mensagem do erroMensagem do erro: " + ' [' + AllToChar AllToChar( aErro aErro[6] ) + ']' + Chr Chr(13) + Chr Chr(10)
cArqErrAuto cArqErrAuto += "Mensagem da soluçãoMensagem da solução: " + ' [' + AllToChar AllToChar( aErro aErro[7] ) + ']' + Chr Chr(13) + Chr Chr(10)
cArqErrAuto cArqErrAuto += "Valor atribuídoValor atribuído: " + ' [' + AllToChar AllToChar( aErro aErro[8] ) + ']' + Chr Chr(13) + Chr Chr(10)
cArqErrAuto cArqErrAuto += "Valor anteriorValor anterior: " + ' [' + AllToChar AllToChar( aErro aErro[9] ) + ']' + Chr Chr(13) + Chr Chr(10)
Alert
Alert ('Falha no ExecAuto MVCFalha no ExecAuto MVC: ' + (Chr(13) + Chr Chr(10)) + cArqErrAuto cArqErrAuto)
EndIf

oModel:DeActivate()
oModel:Destroy()

oModel := NIL NIL

RestArea(aArea)

Return()

Passo a passo exemplo:

1. Acessando a rotina de Controle de Dias de Direito (GPEA050) e posicionando no funcionário da Filial "D MG 01 " e Matrícula "999999995522".

Image RemovedImage Added


2. Visualizando que o registro do funcionário não tem nada cadastrado para ele.. Ele não possui o período base de férias 31/03/2021 cadastrado.

Image AddedImage Removed


3. Acessando a rotina que chama o fonte do execauto em MVC para o GPEA050.

Image Removed,Image Added


4. O fonte retornou que a inclusão foi realizada com sucesso.

(Obs: Neste passo poderá ser exibido mensagens para que seja corrigido alguns cadastros. Exemplo: Caso não tenha um roteiro de férias dentro do período em aberto o sistema emitirá um alerta para correção).

Image RemovedImage Added


5. Acessando novamente o cadastro do funcionário é possível notar que foi cadastrado mais um registro para o funcionário, conforme os dados informados na execauto.

Image RemovedImage Added


Programa Fonte:GPEA050