ÍNDICE
01. VISIÓN GENERAL
Ejemplos de ejecución por medio de la rutina automática en la rutina de asientos contables automáticos(CTBA102), mostrando ejemplos de utilización y tablas relacionadas.
A continuación mostraremos ejemplos de utilización.
La ejecución automática está disponible solamente para la inclusión de asientos contables. |
En la utilización de execAuto considere los siguientes critérios:
|
Para garantizar la grabación correcta de los campos Logs y Auditoría (CT2_USERGI y CT2_USERGA) al utilizarlos, esw necesario informar el Usuario y la Contraseña del Protheus durante la preparación del entorno, para saber más, acceda a: |
#INCLUDE "PROTHEUS.CH"
//-------------------------------------------------------------------
/*/{Protheus.doc} MyCTBA102Inc
Inclusión de Asiento automático CTBA102
@author Totvs
@since 23/06/2022
@version 2.0
/*/
//-------------------------------------------------------------------
User Function MyCTBA102Inc()
Local aArea := GetArea()
Local aCab := {}
Local aItens := {}
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
Private CTF_LOCK := 0
Private lSubLote := .T.
RpcSetEnv( 'T1', 'D MG 01 ',,,'CTB')
aAdd(aCab, {'DDATALANC' ,dDataBase ,NIL} )
aAdd(aCab, {'CLOTE' ,'333333' ,NIL} )
aAdd(aCab, {'CSUBLOTE' ,'001' ,NIL} )
aAdd(aCab, {'CPADRAO' ,'' ,NIL} )
aAdd(aCab, {'NTOTINF' ,0 ,NIL} )
aAdd(aCab, {'NTOTINFLOT' ,0 ,NIL} )
aAdd(aItens,{ {'CT2_FILIAL' ,xFilial('CT2'), NIL},;
{'CT2_LINHA' , '001' , NIL},;
{'CT2_MOEDLC' ,'01' , NIL},;
{'CT2_DC' ,'3' , NIL},;
{'CT2_DEBITO' ,'101010100' , NIL},;
{'CT2_CREDIT' ,'201010100' , NIL},;
{'CT2_VALOR' , 3000 , NIL},;
{'CT2_ORIGEM' ,'MSEXECAUT' , NIL},;
{'CT2_HP' ,'' , NIL},;
{'CT2_CONVER' ,'11' , NIL},;
{'CT2_HIST' ,'MSEXECCT2' , NIL} } )
MSExecAuto({|x, y,z| CTBA102(x,y,z)}, aCab ,aItens, 3)
If lMsErroAuto
lMsErroAuto := .F.
MostraErro()
Endif
RestArea(aArea)
Return |
El ítem CPADRAO del encabezado (aCab) se utiliza para alimentar la variable Al informar, el sistema valida el Asiento estándar y completa automáticamente los campos previstos en su configuración, si no fueran informados en
⚠️ IMPORTANTE
Cumplimentación del campo CT2_LP El campo CT2_LP necesaariamente debe estar marcado como “usado” en el diccionario de datos.
OBS: En el siguiente ejemplo, los campos CT2_DEBITO, CT2_CREDIT y CT2_HIST se retiraron, pues serán completados automáticamente por el Asiento estándar 001. |
#INCLUDE "PROTHEUS.CH"
//-------------------------------------------------------------------
/*/{Protheus.doc} MyCTBA102Inc
Inclusión de asiento automático CTBA102
@author Totvs
@since 23/06/2022
@version 2.0
/*/
//-------------------------------------------------------------------
User Function MyCTBA102Inc()
Local aArea := GetArea()
Local aCab := {}
Local aItens := {}
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
Private CTF_LOCK := 0
Private lSubLote := .T.
RpcSetEnv( 'T1', 'D MG 01 ',,,'CTB')
aAdd(aCab, {'DDATALANC' ,dDataBase ,NIL} )
aAdd(aCab, {'CLOTE' ,'333333' ,NIL} )
aAdd(aCab, {'CSUBLOTE' ,'001' ,NIL} )
aAdd(aCab, {'CPADRAO' ,'' ,NIL} )
aAdd(aCab, {'NTOTINF' ,0 ,NIL} )
aAdd(aCab, {'NTOTINFLOT' ,0 ,NIL} )
aAdd(aItens,{ {'CT2_FILIAL' ,xFilial('CT2'), NIL},;
{'CT2_LINHA' , '001' , NIL},;
{'CT2_MOEDLC' ,'01' , NIL},;
{'CT2_DC' ,'3' , NIL},;
{'CT2_DEBITO' ,'101010100' , NIL},;
{'CT2_CREDIT' ,'201010100' , NIL},;
{'CT2_VALOR' , 3000 , NIL},;
{'CT2_ORIGEM' ,'MSEXECAUT' , NIL},;
{'CT2_HP' ,'' , NIL},;
{'CT2_CONVER' ,'11' , NIL},;
{'CT2_HIST' ,'MSEXECCT2' , NIL} } )
MSExecAuto({|x, y,z| CTBA102(x,y,z)}, aCab ,aItens, 3)
If lMsErroAuto
lMsErroAuto := .F.
MostraErro()
Endif
RestArea(aArea)
Return |
#INCLUDE "PROTHEUS.CH"
//-------------------------------------------------------------------
/*/{Protheus.doc} MyCTBA102Inc
Inclusión de asiento automático CTBA102
@author Totvs
@since 23/06/2022
@version 2.0
/*/
//-------------------------------------------------------------------
User Function MyCTBA102Inc()
Local aArea := GetArea()
Local aCab := {}
Local aItens := {}
Local nLinha := 2
Local nX := 0
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
Private CTF_LOCK := 0
Private lSubLote := .T.
RpcSetEnv( 'T1', 'D MG 01 ',,,'CTB')
aAdd(aCab, {'DDATALANC' ,dDataBase ,NIL} )
aAdd(aCab, {'CLOTE' ,'333333' ,NIL} )
aAdd(aCab, {'CSUBLOTE' ,'001' ,NIL} )
aAdd(aCab, {'CPADRAO' ,'' ,NIL} )
aAdd(aCab, {'NTOTINF' ,0 ,NIL} )
aAdd(aCab, {'NTOTINFLOT' ,0 ,NIL} )
For nX := 1 To nLinha
aAdd(aItens, {;
{'CT2_FILIAL' , xFilial('CT2') , NIL},;
{'CT2_LINHA' , StrZero(nX,3) , NIL},;
{'CT2_MOEDLC' ,'01' , NIL},;
{'CT2_DC' ,'3' , NIL},;
{'CT2_DEBITO' ,'101010100' , NIL},;
{'CT2_CREDIT' ,'201010100' , NIL},;
{'CT2_VALOR' , 3000 , NIL},;
{'CT2_ORIGEM' ,'MSEXECAUT' , NIL},;
{'CT2_HP' ,'' , NIL},;
{'CT2_CONVER' ,'11' , NIL},;
{'CT2_HIST' ,'MSEXECCT LANCAMENTO '+cValtoChar(nX) , NIL} })
Next nX
MSExecAuto({|x, y,z| CTBA102(x,y,z)}, aCab ,aItens, 3)
If lMsErroAuto
lMsErroAuto := .F.
MostraErro()
EndIf
RestArea(aArea)
Return |
03. TABLAS UTILIZADAS