Duda
Como generar la Rutina de solicitud de transferencia automática (MATA311)?
Ambiente
Cross Segmentos - TOTVS Backoffice (Línea Protheus) MI - Stock y Costos (SIGAEST) – A partir de la versión 12
Solución
U_M311RAUT ()
El Modelo demuestra la opción de incluir un registro basado en información fija en la fuente, donde la base de datos es compatible con los datos fijos.
Ejemplo de inclusión
#include 'protheus.ch'
#include 'parmtype.ch'
#INCLUDE "AUTODEF.CH"
#INCLUDE "TBICONN.CH"
#INCLUDE "FWMVCDEF.CH"
user function M311RAUT()
Local oModel
Local aLog
Local cLog := ''
Local nX
PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01' USER 'admin' PASSWORD '' MODULO "EST"
oModel := FWLoadModel("MATA311") //Carrega o modelo
oModel:SetOperation(MODEL_OPERATION_INSERT) // Seta operação de inclusão
oModel:Activate() // Ativa o Modelo
//Cabeçalho do contrato
oModel:SetValue( 'NNSMASTER' , 'NNS_FILIAL' , 'D MG 01' )
oModel:SetValue( 'NNSMASTER' , 'NNS_COD' , '0000000141' )
oModel:SetValue( 'NNSMASTER' , 'NNS_DATA' , CTOD('13/01/2020') )
oModel:SetValue( 'NNSMASTER' , 'NNS_SOLICT' , '000000' )
oModel:SetValue( 'NNSMASTER' , 'NNS_CLASS' , '1' )
oModel:SetValue( 'NNSMASTER' , 'NNS_ESPECI' , ' ' )
//Cliente/Fornecedor do Contrato
oModel:SetValue( 'NNTDETAIL' , 'NNT_FILIAL' , 'D MG 01' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_FILORI' , 'D MG 01' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_PROD' , '24455PA' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_LOCAL' , '01' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_LOCALI' , 'AA1' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_FILDES' , 'D MG 01' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_PRODD' , '24455PA' )
oModel:SetValue( 'NNTDETAIL' , 'NNT_QUANT' , 1 )
oModel:SetValue( 'NNTDETAIL' , 'NNT_LOCLD' , '02' )
//Validação e Gravação do Modelo
If oModel:VldData()
oModel:CommitData()
Else
aLog := oModel:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
//laco para gravar em string cLog conteudo do array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cLog += Alltrim(aLog[nX]) + CHR(13)+CHR(10)
EndIf
Next nX
lMsErroAuto := .T. //seta variavel private como erro
AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
mostraerro()
lRet := .F. //retorna false
EndIf
oModel:DeActivate() //desativa modelo
Return( lRet )
0 Comentarios