MATA094 - Liberação de Documentos MVC
Produto: | Microsiga Protheus |
Versões: | A partir da Versão 12 |
Ocorrência: | Rotina Automática - MATA094 |
Ambiente: | SIGACOM - Compras |
Descrição: | Rotina automática no modelo MVC |
Passo a passo: | Exemplo de rotina automática MATA094 #INCLUDE 'RWMAKE.CH' #INCLUDE 'TBICONN.CH' #INCLUDE 'PROTHEUS.CH' #INCLUDE 'FWMVCDEF.CH' User Function MyExec094() Local oModel094 := 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 Local aErro := {} //-- Recebe msg de erro de processamento //-- Inicializa o ambiente PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER "Administrador" PASSWORD "*" MODULO "COM" nLenSCR := TamSX3("CR_NUM")[1] //-- Obtem tamanho do campo CR_NUM DbSelectArea("SCR") SCR->(DbSetOrder(3)) //-- CR_FILIAL+CR_TIPO+CR_NUM+CR_APROV If SCR->(DbSeek(xFilial("SCR") + cTipo + Padr(cNum, nLenSCR) + cAprov)) //-- Códigos de operações possíveis: //-- "001" // Liberado //-- "002" // Estornar //-- "003" // Superior //-- "004" // Transferir Superior //-- "005" // Rejeitado //-- "006" // Bloqueio //-- "007" // Visualizacao //-- Seleciona a operação de aprovação de documentos A094SetOp('001') //-- Carrega o modelo de dados e seleciona a operação de aprovação (UPDATE) oModel094 := FWLoadModel('MATA094') oModel094:SetOperation( MODEL_OPERATION_UPDATE ) oModel094:Activate() //-- 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("Id do campo de origem: " + ' [' + AllToChar(aErro[02]) + ']') AutoGrLog("Id do formulário de erro: " + ' [' + AllToChar(aErro[03]) + ']') AutoGrLog("Id do campo de erro: " + ' [' + AllToChar(aErro[04]) + ']') AutoGrLog("Id do erro: " + ' [' + AllToChar(aErro[05]) + ']') AutoGrLog("Mensagem do erro: " + ' [' + AllToChar(aErro[06]) + ']') AutoGrLog("Mensagem da solução:" + ' [' + AllToChar(aErro[07]) + ']') AutoGrLog("Valor atribuído: " + ' [' + AllToChar(aErro[08]) + ']') AutoGrLog("Valor anterior: " + ' [' + AllToChar(aErro[09]) + ']') //-- Mostra a mensagem de Erro MostraErro() EndIf //-- Desativa o modelo de dados oModel094:DeActivate() Else MsgInfo("Documento não encontrado!", "MyExec094") EndIf //-- Finaliza o ambiente RESET ENVIRONMENT Return Nil Exemplo de estorno para a rotina MATA094 #INCLUDE 'RWMAKE.CH' #INCLUDE 'TBICONN.CH' #INCLUDE 'PROTHEUS.CH' User Function MyExec094() 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 //-- Inicializa o ambiente PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER "Administrador" PASSWORD "*" MODULO "COM" nLenSCR := TamSX3("CR_NUM")[1] //-- Obtem tamanho do campo CR_NUM DbSelectArea("SCR") SCR->(DbSetOrder(3)) //-- CR_FILIAL+CR_TIPO+CR_NUM+CR_APROV If SCR->(DbSeek(xFilial("SCR") + cTipo + Padr(cNum, nLenSCR) + cAprov)) lOk := A094VldEst() If lOk MsgInfo("O documento "+cNum+" foi estornado com sucesso.") Else MsgInfo("Ocorreu um erro ao estornar o documento "+cNum) EndIf Else MsgInfo("Documento não encontrado!", "MyExec094") EndIf //-- Finaliza o ambiente RESET ENVIRONMENT Return Nil Exemplo de rejeição para a rotina MATA094 #INCLUDE 'TBICONN.CH' #INCLUDE 'PROTHEUS.CH' #INCLUDE 'FWMVCDEF.CH' User Function MyExec094() Local oModel094 := Nil //-- Objeto que receberá o modelo da MATA094 Local cNum := "000000000000001" //-- Recebe o número do documento a ser avaliado Local cTipo := "CT" //-- Recebe o tipo do documento a ser avaliado Local cAprov := "000003" //-- Recebe o código do aprovador do documento Local cJustif := "Rejeição de contrato" //-- Recebe a justificativa para rejeição Local nLenSCR := 0 //-- Controle de tamanho de campo do documento Local lOk := .T. //-- Controle de validação e commit Local aErro := {} //-- Recebe msg de erro de processamento //-- Inicializa o ambiente PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER "Administrador" PASSWORD "*" MODULO "COM" nLenSCR := TamSX3("CR_NUM")[1] //-- Obtem tamanho do campo CR_NUM DbSelectArea("SCR") SCR->(DbSetOrder(3)) //-- CR_FILIAL+CR_TIPO+CR_NUM+CR_APROV If SCR->(DbSeek(xFilial("SCR") + cTipo + Padr(cNum, nLenSCR) + cAprov)) //-- Códigos de operações possíveis: //-- "001" // Liberado //-- "002" // Estornar //-- "003" // Superior //-- "004" // Transferir Superior //-- "005" // Rejeitado //-- "006" // Bloqueio //-- "007" // Visualizacao //-- Seleciona a operação de rejeição de documentos A094SetOp('005') //-- Carrega o modelo de dados e seleciona a operação de aprovação (UPDATE) oModel094 := FWLoadModel('MATA094') oModel094:SetOperation( MODEL_OPERATION_UPDATE ) oModel094:Activate() //-- Preenche justificativa oModel094:GetModel('FieldSCR'):SetValue('CR_OBS', cJustif) //-- 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("Id do campo de origem: " + ' [' + AllToChar(aErro[02]) + ']') AutoGrLog("Id do formulário de erro: " + ' [' + AllToChar(aErro[03]) + ']') AutoGrLog("Id do campo de erro: " + ' [' + AllToChar(aErro[04]) + ']') AutoGrLog("Id do erro: " + ' [' + AllToChar(aErro[05]) + ']') AutoGrLog("Mensagem do erro: " + ' [' + AllToChar(aErro[06]) + ']') AutoGrLog("Mensagem da solução:" + ' [' + AllToChar(aErro[07]) + ']') AutoGrLog("Valor atribuído: " + ' [' + AllToChar(aErro[08]) + ']') AutoGrLog("Valor anterior: " + ' [' + AllToChar(aErro[09]) + ']') //-- Mostra a mensagem de Erro MostraErro() EndIf //-- Desativa o modelo de dados oModel094:DeActivate() Else MsgInfo("Documento não encontrado!", "MyExec094") EndIf //-- Finaliza o ambiente RESET ENVIRONMENT Return Nil Exemplo de transferência superior para a rotina MATA094 #INCLUDE 'RWMAKE.CH' #INCLUDE 'TBICONN.CH' #INCLUDE 'PROTHEUS.CH' #INCLUDE 'FWMVCDEF.CH' User Function MyExec094() Local oModel094 := Nil //-- Objeto que receberá o modelo da MATA094 Local cNum := "PMSAM7" //-- Recebe o número do documento a ser avaliado Local cTipo := "PC" //-- Recebe o tipo do documento a ser avaliado Local cAprov := "SALC14" //-- Recebe o código do aprovador do documento Local cProxApr := "000451" //superior Local cGrupoAp := "ROM049" Local cJustif := "Teste" Local nLenSCR := 0 //-- Controle de tamanho de campo do documento Local lOk := .T. //-- Controle de validação e commit Local aErro := {} //-- Recebe msg de erro de processamento //-- Inicializa o ambiente PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER "Administrador" PASSWORD "*" MODULO "COM" nLenSCR := TamSX3("CR_NUM")[1] //-- Obtem tamanho do campo CR_NUM DbSelectArea("SCR") SCR->(DbSetOrder(3)) //-- CR_FILIAL+CR_TIPO+CR_NUM+CR_APROV If SCR->(DbSeek(xFilial("SCR") + cTipo + Padr(cNum, nLenSCR) + cAprov)) //-- Códigos de operações possíveis: //-- "001" // Liberado //-- "002" // Estornar //-- "003" // Superior //-- "004" // Transferir Superior //-- "005" // Rejeitado //-- "006" // Bloqueio //-- "007" // Visualizacao //-- Seleciona a operação de aprovação de documentos A094SetOp('004') //-- Carrega o modelo de dados e seleciona a operação de aprovação (UPDATE) oModel094 := FWLoadModel('MATA094') oModel094:SetOperation( MODEL_OPERATION_UPDATE ) oModel094:Activate() oModel094:GetModel("FieldSCR"):SetValue( 'CR_OBS' , cJustif ) //-- 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("Id do campo de origem: " + ' [' + AllToChar(aErro[02]) + ']') AutoGrLog("Id do formulário de erro: " + ' [' + AllToChar(aErro[03]) + ']') AutoGrLog("Id do campo de erro: " + ' [' + AllToChar(aErro[04]) + ']') AutoGrLog("Id do erro: " + ' [' + AllToChar(aErro[05]) + ']') AutoGrLog("Mensagem do erro: " + ' [' + AllToChar(aErro[06]) + ']') AutoGrLog("Mensagem da solução:" + ' [' + AllToChar(aErro[07]) + ']') AutoGrLog("Valor atribuído: " + ' [' + AllToChar(aErro[08]) + ']') AutoGrLog("Valor anterior: " + ' [' + AllToChar(aErro[09]) + ']') //-- Mostra a mensagem de Erro MostraErro() EndIf //-- Desativa o modelo de dados oModel094:DeActivate() Else MsgInfo("Documento não encontrado!", "MyExec094") EndIf //-- Finaliza o ambiente RESET ENVIRONMENT Return Nil |
Observação: | Para maiores informações consultar as informações contidas no documento "ADVPL utilizando MVC" |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas