...
MATA094 - Liberação de
...
Documentos MVC
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 |
---|
language | java |
---|
title | Exemplo de rotina automática MATA094 |
---|
linenumbers | true |
---|
| #INCLUDE 'RWMAKE. |
|
chchProtheuschFWMVCDefch Myexec094 NilLocal cNum := "PMSA02"Local cTipo := "PC"Local cAprov := "000003"Local nLenSCR := 0Local lErroAuto := .F.PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 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
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") |
|
If //-- CR_FILIAL+CR_TIPO+CR_NUM+CR_APROV
If SCR->(DbSeek(xFilial("SCR") + cTipo + Padr(cNum, nLenSCR) + |
|
cAprov)) //-- Seta operação de aprovação de documentos
A094SetOp( '001' )
//Pegando o modelo de dados, setando a operação de aprovação oModel094 := FWLoadModel('MATA094') oModel094:SetOperation( MODEL_OPERATION_UPDATE ) 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:" + ' [' + 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() EndIfEndIf 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 |
Bloco de código |
---|
language | java |
---|
title | Exemplo de estorno para a rotina MATA094 |
---|
linenumbers | true |
---|
| #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 |
Bloco de código |
---|
language | java |
---|
title | Exemplo de rejeição para a rotina MATA094 |
---|
linenumbers | true |
---|
| #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
|
Bloco de código |
---|
language | java |
---|
title | Exemplo de transferência superior para a rotina MATA094 |
---|
linenumbers | true |
---|
| #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
|
|
//Desativa o modelo de dadosoModel094:DeActivate()return |
Observação: | Para maiores informações consultar as informações contidas no documento "ADVPL utilizando MVC" |