Árvore de páginas

Versões comparadas

Chave

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

Execauto GPEA050(MVC)

Produto:

Microsiga Protheus®

Ocorrência:

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

Passo a passo:

Bloco de código
languagejava
firstline1
titleExemplo de implementação
linenumberstrue
collapsetrue
#Include 'Protheus.ch'


#Include 'FWMVCDef.ch'

User Function

#Include "TBIConn.ch"

User Function GPEA050AUTO()


Local aArea := GetArea()


Local aDadSRA := {}


Local aDadSRF := {}


Local cMatricula := "
999999
995522"


Private oModel //Modelo


Private aRotina


Private lGp050Auto := .T. //Variável que define se é inserção
automáticaoModel :=
 automática

dbSelectArea("SRA")

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


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


oModel:SetOperation(MODEL_OPERATION_INSERT) //Seta operação de inclusão


oModel:Activate() //Ativa o
modelo

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

 modelo

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


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


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


oModel:SetValue("GPEA050_SRF", "RF_FILIAL" , SRA->RA_FILIAL)


oModel:SetValue("GPEA050_SRF", "RF_MAT" , SRA->RA_MAT)


oModel:SetValue("GPEA050_SRF", "RF_DATABAS" , CTOD('
01
31/
10
03/
2017
2021'))


oModel:SetValue("GPEA050_SRF", "RF_PD" , '129')


oModel:SetValue("GPEA050_SRF", "RF_DIASDIR" , 30.0)
oModel:SetValue("GPEA050_SRF", "RF_DATAINI ",
'30
 CTOD('05/04/2020')

)
oModel:SetValue("GPEA050_SRF", "RF_DATAFIM" , CTOD('
30
19/
09
03/
2018
2022'))


oModel:SetValue("GPEA050_SRF", "RF_STATUS" , '1')


//Validação e Gravação do Modelo


If oModel:VldData()


	oModel:CommitData()


	MsgInfo("Registro INCLUIDO!", "Atenção")


Else


	aErro := oModel:GetErrorMessage()

	
	cArqErrAuto := "Id do formulário de origem:"+ ' [' + AllToChar( aErro[1] ) + ']' + Chr(13) + Chr(10)


	cArqErrAuto += "Id do campo de origem: " + ' [' + AllToChar( aErro[2] ) + ']' + Chr(13) + Chr(10)


	cArqErrAuto += "Id do formulário de erro: " + ' [' + AllToChar( aErro[3] ) + ']' + Chr(13) + Chr(10)


	cArqErrAuto += "Id do campo de erro: " + ' [' + AllToChar( aErro[4] ) + ']' + Chr(13) + Chr(10)


	cArqErrAuto += "Id do erro: " + ' [' + AllToChar( aErro[5] ) + ']' + Chr(13) + Chr(10)


	cArqErrAuto += "Mensagem do erro: " + ' [' + AllToChar( aErro[6] ) + ']' + Chr(13) + Chr(10)


	cArqErrAuto += "Mensagem da solução: " + ' [' + AllToChar( aErro[7] ) + ']' + Chr(13) + Chr(10)


	cArqErrAuto += "Valor atribuído: " + ' [' + AllToChar( aErro[8] ) + ']' + Chr(13) + Chr(10)


	cArqErrAuto += "Valor anterior: " + ' [' + AllToChar( aErro[9] ) + ']' + Chr(13) + Chr(10)


	
	Alert ('Falha no ExecAuto MVC: ' + (Chr(13) + Chr(10)) + cArqErrAuto)


EndIf



oModel:DeActivate()


oModel:Destroy()



oModel := 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