Ejemplos de ejecución vía rutina automática en la rutina de asientos contables Extemporáneos (CTBS460), mostrando ejemplos de utilización y tablas relacionadas.
A continuación se muestran algunos ejemplos de utilización.
Las Ejecuciones automáticas mostradas a continuación solamente son un ejemplo. |
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "rwmake.ch" #include 'totvs.ch' #include 'tbiconn.ch' Static __oModelAut := NIL //variable oModel para sustituir msexecauto en MVC User Function MyCtbs460Inc() Local lNotFound := .F. Local oModelCSQ Local nX Local aLog Local cLog :="" Local lRet := .T. PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01' TABLES 'CSQ','CT2' MODULO 'CTB' While CT2->(!Eof()) .AND. lNotFound == .F. CSQ->(dbSetOrder(1)) lNotFound := !CSQ->(dbSeek(CT2->CT2_FILIAL+DTOS(CT2->CT2_DATA)+CT2->CT2_LOTE+CT2->CT2_SBLOTE+CT2->CT2_DOC+CT2->CT2_LINHA+CT2->CT2_EMPORI+CT2->CT2_FILORI)) If lNotFound Loop else CT2->( dbSkip() ) Endif Enddo If __oModelAut == Nil //solamente una única vez carga el modelo CTBS460 __oModelAut := FWLoadModel( 'CTBS460' ) EndIf __oModelAut:SetOperation(MODEL_OPERATION_INSERT) __oModelAut:Activate() oModelCSQ := __oModelAut:GetModel('CSQMASTER') oModelCSQ:SetValue("CSQ_FILIAL",CT2->CT2_FILIAL) oModelCSQ:SetValue("CSQ_DATA",CT2->CT2_DATA) oModelCSQ:SetValue("CSQ_LOTE",CT2->CT2_LOTE) oModelCSQ:SetValue("CSQ_SBLOTE",CT2->CT2_SBLOTE) oModelCSQ:SetValue("CSQ_DOC",CT2->CT2_DOC) oModelCSQ:SetValue("CSQ_LINHA",CT2->CT2_LINHA) oModelCSQ:SetValue("CSQ_EMPORI",CT2->CT2_EMPORI) oModelCSQ:SetValue("CSQ_FILORI",CT2->CT2_FILORI) oModelCSQ:SetValue("CSQ_DTEXT",Stod("20230723")) oModelCSQ:SetValue("CSQ_NATLCT","1") // 1 - Registro en Cuentas de patrimonio/ 2 - Registro en Cuentas de resultado If __oModelAut:VldData() //validación de los datos por el modelo __oModelAut:CommitData() //grabación de los datos Else aLog := __oModelAut:GetErrorMessage() //Recupera el error del model cuando no pasó en VldData //bucle para grabar en string cLog contenido del array aLog For nX := 1 to Len(aLog) If !Empty(aLog[nX]) cLog += Alltrim(aLog[nX]) + CRLF EndIf Next nX lMsErroAuto := .T. //flecha variable private como error AutoGRLog(cLog) //graba log para mostrar con función mostraerro mostraerro() lRet := .F. //devuelve false Endif __oModelAut:DeActivate() //desactiva modelo Return( lRet ) |
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "rwmake.ch" #include 'totvs.ch' #include 'tbiconn.ch' Static __oModelAut := NIL //variable oModel para sustituir msexecauto en MVC User Function MyCtbs460Alt() Local lFound := .F. Local oModelCSQ Local nX Local aLog Local cLog :="" Local lRet := .T. PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01' TABLES 'CSQ','CT2' MODULO 'CTB' While CT2->(!Eof()) .AND. lFound == .F. CSQ->(dbSetOrder(1)) lFound := CSQ->(dbSeek(CT2->CT2_FILIAL+DTOS(CT2->CT2_DATA)+CT2->CT2_LOTE+CT2->CT2_SBLOTE+CT2->CT2_DOC+CT2->CT2_LINHA+CT2->CT2_EMPORI+CT2->CT2_FILORI)) If lFound Loop else CT2->( dbSkip() ) Endif Enddo If __oModelAut == Nil //solamente una única vez carga el modelo CTBS460 __oModelAut := FWLoadModel( 'CTBS460' ) EndIf __oModelAut:SetOperation(MODEL_OPERATION_UPDATE) __oModelAut:Activate() oModelCSQ := __oModelAut:GetModel('CSQMASTER') oModelCSQ:SetValue("CSQ_DTEXT",Stod("20230823")) If __oModelAut:VldData() //validación de los datos por el modelo __oModelAut:CommitData() //grabación de los dados Else aLog := __oModelAut:GetErrorMessage() //Recupera el error del model cuando no pasó en VldData //bucle para grabar en string cLog contenido del array aLog For nX := 1 to Len(aLog) If !Empty(aLog[nX]) cLog += Alltrim(aLog[nX]) + CRLF EndIf Next nX lMsErroAuto := .T. //flecha variable private como error AutoGRLog(cLog) //graba log para mostrar con función mostraerro mostraerro() lRet := .F. //devuelve false Endif __oModelAut:DeActivate() //desactiva modelo Return( lRet ) |
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "rwmake.ch" #include 'totvs.ch' #include 'tbiconn.ch' Static __oModelAut := NIL //variable oModel para sustituir msexecauto en MVC User Function MyCtbs460Exl() Local lFound := .F. Local nX Local aLog Local cLog :="" Local lRet := .T. PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01' TABLES 'CSQ','CT2' MODULO 'CTB' While CT2->(!Eof()) .AND. lFound == .F. CSQ->(dbSetOrder(1)) lFound := CSQ->(dbSeek(CT2->CT2_FILIAL+DTOS(CT2->CT2_DATA)+CT2->CT2_LOTE+CT2->CT2_SBLOTE+CT2->CT2_DOC+CT2->CT2_LINHA+CT2->CT2_EMPORI+CT2->CT2_FILORI)) If lFound Loop else CT2->( dbSkip() ) Endif Enddo If __oModelAut == Nil //solamente una única vez carga el modelo CTBS460 __oModelAut := FWLoadModel( 'CTBS460' ) EndIf __oModelAut:SetOperation(MODEL_OPERATION_DELETE) __oModelAut:Activate() If __oModelAut:VldData() //validación de los datos por el modelo __oModelAut:CommitData() //grabación de los datos Else aLog := __oModelAut:GetErrorMessage() //Recupera el error del model cuando no pasó en VldData //bucle para grabar en string cLog contenido del array aLog For nX := 1 to Len(aLog) If !Empty(aLog[nX]) cLog += Alltrim(aLog[nX]) + CRLF EndIf Next nX lMsErroAuto := .T. //flecha variable private como error AutoGRLog(cLog) //graba log para mostrar con función mostraerro mostraerro() lRet := .F. //devuelve false Endif __oModelAut:DeActivate() //desactiva modelo Return( lRet ) |