CONTENIDO

  1. Visión general
  2. Ejemplo de utilización
    1. Inclusión
    2. Inclusión con más de un asiento
    3. Modificación
  3. Tablas utilizadas


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.


02. EJEMPLO DE UTILIZACIÓN

A continuación mostraremos ejemplos de utilización.

Aviso

La ejecución automática está disponible solamente para incluir y modificar los asientos contables.

Importante

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

 - Para modificar el registro pase nuevamente el aCab



Inclusión:


myctba102inc
#INCLUDE "PROTHEUS.CH"

//-------------------------------------------------------------------
/*/{Protheus.doc} MyCTBA102Inc    

 Inclusão de Lançamento Automático CTBA102

@author Totvs
@since 29/11/2013
@version 1.0

/*/
//-------------------------------------------------------------------

User Function MyCTBA102Inc()

Local nX
Local aArea         := GetArea()
Local nDoc            := 1
Local lRet            := .T.
Local aCab            := {}
Local aItens        := {}
Local aLinha         := {}
Local dDataLanc     := ctod("28/11/2013")  
Local nLinha        := '001'


Private lMsErroAuto     := .F.
Private lMsHelpAuto     := .T.
Private CTF_LOCK        := 0
Private lSubLote         := .T.


PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "CTB" TABLES "CT2"

    aCab := {}
    aItem := {}



    aAdd(aCab,  {'DDATALANC'     ,dDataBase        ,NIL} )
    aAdd(aCab,  {'CLOTE'         ,'333333'         ,NIL} )
    aAdd(aCab,  {'CSUBLOTE'         ,'001'         ,NIL} )
    aAdd(aCab,  {'CDOC'             ,'000001'         ,NIL} )
    aAdd(aCab,  {'CPADRAO'         ,''             ,NIL} )
    aAdd(aCab,  {'NTOTINF'         ,0                 ,NIL} )
    aAdd(aCab,  {'NTOTINFLOT'     ,0                 ,NIL} )

    

    aAdd(aItens,{  {'CT2_FILIAL'      ,'0101   '     , NIL},;
                   {'CT2_LINHA'      , nLinha        , 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.
        MsgAlert("ERRO Lançamento" , "Teste Carga CT2")
		mostraErro()
        Exit
    Endif
RestArea(aArea)

RESET ENVIRONMENT

Return


Inclusión con más de un asiento :


MyCTBA102Inc()
User Function MyCTBA102Inc() 

Local nX
Local aArea := GetArea()
Local nDoc := 1
Local lRet := .T.
Local aCab := {}
Local aItens := {}
Local aLinha := {}
Local dDataLanc := ctod("28/11/2013") 


Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
Private CTF_LOCK := 0
Private lSubLote := .T.


PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "CTB" TABLES "CT2"

aCab := {}


aAdd(aCab, {'DDATALANC' ,dDataBase ,NIL} )
aAdd(aCab, {'CLOTE' ,'333333' ,NIL} )
aAdd(aCab, {'CSUBLOTE' ,'001' ,NIL} )
aAdd(aCab, {'CDOC' ,'000001' ,NIL} )
aAdd(aCab, {'CPADRAO' ,'' ,NIL} )
aAdd(aCab, {'NTOTINF' ,0 ,NIL} )
aAdd(aCab, {'NTOTINFLOT' ,0 ,NIL} )

//lançamento 1
aAdd(aItens,  { {'CT2_FILIAL' ,'0101 ' , 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} } )

//lançamento 2
aAdd(aItens, { {'CT2_FILIAL' ,'0101 ' , NIL},;
{'CT2_LINHA' , '002' , NIL},;
{'CT2_MOEDLC' ,'01' , NIL},;
{'CT2_DC' ,'3' , NIL},;
{'CT2_DEBITO' ,'101010100' , NIL},;
{'CT2_CREDIT' ,'201010100' , NIL},;
{'CT2_VALOR' , 4000 , NIL},;
{'CT2_ORIGEM' ,'MSEXECAUT' , NIL},;
{'CT2_HP' ,'' , NIL},;
{'CT2_CONVER' ,'11' , NIL},;
{'CT2_HIST' ,'MSEXECCT2LINHA2' , NIL} })

//adicionar ao array aItens a quantidade necessária de lançamentos que deseja efetuar

MSExecAuto({|x, y,z| CTBA102(x,y,z)}, aCab ,aItens, 3)

If lMsErroAuto
lMsErroAuto := .F.
MsgAlert("ERRO Lançamento" , "Teste Carga CT2")
mostraErro()
Exit
Endif
RestArea(aArea)

RESET ENVIRONMENT

Return


Modificación:

myctba102Alt
#INCLUDE "PROTHEUS.CH"

//-------------------------------------------------------------------
/*/{Protheus.doc} MyCTBA102Alt    
 Inclusão de Lançamento Automático CTBA102

@author Totvs
@since 29/11/2013
@version 1.0
/*/
//-------------------------------------------------------------------

User Function MyCTBA102Alt()

Local nX
Local aArea         := GetArea()
Local nDoc            := 1
Local lRet            := .T.
Local aCab            := {}
Local aItens        := {}
Local aLinha         := {}
Local dDataLanc     := ctod("28/11/2013")  
Local nLinha        := '001'


Private lMsErroAuto     := .F.
Private lMsHelpAuto     := .T.
Private CTF_LOCK        := 0
Private lSubLote         := .T.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "CTB" TABLES "CT2"

	aCab     := {}
    aItens     := {}
    aLinha := {}

    aAdd(aCab,  {'DDATALANC'     ,dDataBase        ,NIL} )
    aAdd(aCab,  {'CLOTE'         ,'333333'         ,NIL} )
    aAdd(aCab,  {'CSUBLOTE'         ,'001'         ,NIL} )
    aAdd(aCab,  {'CDOC'             ,'000001'         ,NIL} )
    aAdd(aCab,  {'CPADRAO'         ,''             ,NIL} )
    aAdd(aCab,  {'NTOTINF'         ,0                 ,NIL} )
    aAdd(aCab,  {'NTOTINFLOT'     ,0                 ,NIL} )

   

    aAdd(aItens,{      {'CT2_FILIAL'      ,'0101   '           , NIL},;
                       {'CT2_LINHA'      , nLinha              , NIL},;
                       {'CT2_MOEDLC'      ,'01'               , NIL},;
                       {'CT2_DC'          ,'3'               , NIL},;
                       {'CT2_DEBITO'      ,'101010100'         , NIL},;
                       {'CT2_CREDIT'      ,'201010100'         , NIL},;
                       {'CT2_VALOR'      , 6000              , NIL},;
                       {'CT2_ORIGEM'     ,'MSEXECAUT'        , NIL},;
                       {'CT2_HP'          ,''                   , NIL},;
                       {'CT2_EMPORI'     ,'01'                 , NIL},;
                       {'CT2_FILORI'      ,'0101001'            , NIL},;                       
                       {'CT2_HIST'       ,'MSEXECCT2-1'    , NIL},;
                       {'LINPOS'            ,'CT2_LINHA'        ,nLinha}})  
                   

    MSExecAuto({|x, y,z| CTBA102(x,y,z)}, aCab ,aItens, 4)



    If lMsErroAuto
        lMsErroAuto := .F.
        MsgAlert("ERRO Lançamento" , "Teste Carga CT2")
        Exit
    Endif

RestArea(aArea)
RESET ENVIRONMENT
Return