Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

Microsiga Protheus 

Versões:

A partir da Versão 12

Ocorrência:

Rotina Automática - MATA094 (Execauto)

Ambiente:

SIGACOM - Compras

Descrição:

Rotina automática no modelo MVC 

Passo a passo:

Bloco de código
#INCLUDE 'RWMAKE.
ch
CH'


#INCLUDE 'TBICONN.
ch
CH'


#INCLUDE '
Protheus
PROTHEUS.
ch
CH'


#INCLUDE '
FWMVCDef
FWMVCDEF.
ch
CH'


User Function
Myexec094
 MyExec094()



	Local oModel094 :=
Nil
Local cNum := "PMSA02"
Local cTipo := "PC"
Local cAprov := "000003"
Local nLenSCR := 0
Local lErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER "Administrador" PASSWORD "*" MODULO "COM"

nLenSCR :=
 Nil 		//-- Objeto que receberá o modelo da MATA094
	Local cNum 		:= "PMSA02" //-- Recebe o número do documento a ser avaliado
	Local cTipo 	:= "PC" 	//-- Recebe o tipo do documento a ser avaliado
	Local cAprov 	:= "000003" //-- Recebe o código do aprovador do documento
	Local nLenSCR 	:= 0 		//-- Controle de tamanho de campo do documento
	Local lOk 		:= .T. 		//-- Controle de validação e commit

	PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER "Administrador" PASSWORD "*" MODULO "COM"
	
	nLenSCR := TamSX3("CR_NUM")[1]


	DbSelectArea("SCR")


	SCR->(DbSetOrder(3))



	If SCR->(DbSeek(xFilial("SCR") + cTipo + Padr(cNum, nLenSCR) +
cAprov))   
 cAprov))

		//-- Códigos de operações possíveis:
		//--	"001" // Liberado
		//--	"002" // Estornar
		//--	"003" // Superior
		//--	"004" // Transferir Superior
		//--	"005" // Rejeitado
		//--	"006" // Bloqueio
		//--	"007" // Visualizacao 

		//-- Seta operação de aprovação de
documentos
   A094SetOp
 documentos
		A094SetOp('001')
   


		//
Pegando
-- Carrega o modelo
de dados, setando a operação de aprovação
   oModel094 :=
 de dadoss e seta a operação de aprovação (UPDATE)
		oModel094 := FWLoadModel('MATA094')

   oModel094

		oModel094:SetOperation( MODEL_OPERATION_UPDATE
)
   oModel094
 )
		oModel094:Activate()

   //Se conseguir validar as informações
   If oModel094:VldData()
      oModel094:CommitData()
      lErroAuto := .T.
   EndIf   If !lErroAuto.
      //Busca o Erro do Modelo de Dados
     aErro := oModel094:GetErrorMessage()
     
     //Monta o Texto que será mostrado na tela
     AutoGrLog("Id do formulário de origem:" + ' [' +


		//-- Valida o formulário
		lOk := oModel094:VldData()

		If lOk
			//-- Se validou, grava o formulário
			lOk := oModel094:CommitData()
		EndIf

		//-- Avalia erros
		If !lOk
			//-- Busca o Erro do Modelo de Dados
			aErro := oModel094:GetErrorMessage()
			     
			//-- Monta o Texto que será mostrado na tela
			AutoGrLog("Id do formulário de origem:" + ' [' + AllToChar(aErro[01]) + ']')

     AutoGrLog

			AutoGrLog("Id do campo de origem:     + ' [' + AllToChar(aErro[02]) + ']')

     AutoGrLog

			AutoGrLog("Id do formulário de erro: 
   
 + ' [' + AllToChar(aErro[03]) + ']')

     AutoGrLog

			AutoGrLog("Id do campo de erro:     
 
  
 
+ ' [' + AllToChar(aErro[04]) + ']')

     AutoGrLog

			AutoGrLog("Id do erro:             
              + '
   + ' [' + AllToChar(aErro[05]) + ']')

     AutoGrLog

			AutoGrLog("Mensagem do erro:         
   
 + ' [' + AllToChar(aErro[06]) + ']')

     AutoGrLog

			AutoGrLog("Mensagem da solução:"       
 
 + ' [' + AllToChar(aErro[07]) + ']')

     AutoGrLog

			AutoGrLog("Valor atribuído:         
 
  
     
+ ' [' + AllToChar(aErro[08]) + ']')

     AutoGrLog

			AutoGrLog("Valor anterior:           
         
 + ' [' + AllToChar(aErro[09]) + ']')

     


			//-- Mostra a mensagem de
Erro
     MostraErro()
   EndIf
EndIf//Desativa o modelo de dados
oModel094:DeActivate()return
 Erro
			MostraErro()
		EndIf

		//-- Desativa o modelo de dados
		oModel094:DeActivate()

	Else
		MsgInfo("Documento não encontrado!", "MyExec094")
	EndIf

Return Nil
Observação:Para maiores informações consultar as informações contidas no documento "ADVPL utilizando MVC"

...