Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

ÍNDICE

Í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.

...

Informações
titleImportante

En la utilización de execAuto considere los siguientes critérios:

  •  - Pasar el campo CT2_CONVER como 15555, demás monedas se deben hacer por la inclusión de un nuevo aItens
  •  - Pasar el campo CT2_CRITER, a las otras monedas solamente incluye como conversión, no permitiendo la inclusión de CT2_VALOR en cero.
  •  - Para modificación del registro pase nuevamente el aCab.
  •  - El sistema no bloquea el asiento por medio del execauto cuando el débito y el crédito están diferentes, respetando los parámetros MV_CONTBAT = S y MV_CONTSB = N, cuando esto ocurre, este genera los asientos como tipo 9 Asiento previo para que ocurra posteriormente una verificación.
  • En la cumplimentación del campo CT2_FILIAL, la ejecución considera automáticamente la sucursal definida en la preparación del entorno (RpcSetEnv). Aunque se atribuya un valor para CT2_FILIAL en el array aItens, esta información no se considerará, pues la ejecución siempre utilizará la sucursal abierta en la thread en el momento de la ejecución.
Dica
titleImportante

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:

Logs y Auditoría

RpcSetEnv

Prepare Environment

...

Bloco de código
languagepy
themeMidnight
titleMyCTBA102Inc()
linenumberstrue
collapsetrue
#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},;
 ,0                ,NIL} )
 
    aAdd(aItens,{  {'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

...

Bloco de código
languagepy
themeMidnight
titlemyctba102inc
linenumberstrue
collapsetrue
#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

...

02.2. Inclusión con más de un asiento:


Bloco de código
languagepy
themeMidnight
titleMyCTBA102Inc()
collapsetrue
#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

  • CT2- Asientos contables