pessoal alguém tem um exemplo do execauto da função atfa012, pois o site não mostra os exemplos....
https://tdn.engpro.totvs.com.br/pages/releaseview.action?pageId=551440375
pessoal alguém tem um exemplo do execauto da função atfa012, pois o site não mostra os exemplos....
https://tdn.engpro.totvs.com.br/pages/releaseview.action?pageId=551440375
Daniel,
Existem exemplos na página que você colocou, mas aparentemente, existe um problema no TDN. Se você inspecionar a página, vai conseguir ver que os exemplos estão lá... O ideal é entrar em contato com a TOTVS e reportar esse problema.
São os seguintes exemplos:
Inclusão:
#INCLUDE "Protheus.CH"
#include "rwmake.ch"
#include "TOTVS.ch"
#include "TBICONN.ch"
User Function MyAtfa012
Local aArea := GetArea()
Local cBase := "ATFX01"//"0000000000"
Local cItem := "0002"
Local nQtd := 1
Local cChapa := "AJEDS10"//"00000"
Local cPatrim := "N"
Local cTipo := "01"//"01"
Local cGrupo := ""
Local dAquisic //:= dDataBase //:= CTOD("01/06/20")//dDataBase
Local dIndDepr //:= RetDinDepr(dDataBase)
Local cDescric := "Teste 01"
Local cHistor := "TESTE "
Local cContab := "11101"
Local cCusto := "CDL"
Local cSubCon := "000000001"
Local cClvlCon := "000000000"
Local nValor := 1000
Local nTaxa := 10
Local nTamBase //:= TamSX3("N3_CBASE")[1]
Local nTamChapa //:= TamSX3("N3_CBASE")[1]
Local aParam := {}
Local aCab := {}
Local aItens := {}
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "ATF" TABLES "SN1","SN3"
dAquisic := dDataBase //:= CTOD("01/06/20")//dDataBase
dIndDepr := RetDinDepr(dDataBase)
DBSelectArea(aArea)
nTamBase := TamSX3("N3_CBASE")[1]
nTamChapa := TamSX3("N3_CBASE")[1]
aCab := {}
AAdd(aCab,{"N1_CBASE" , cBase ,NIL})
AAdd(aCab,{"N1_ITEM" , cItem ,NIL})
AAdd(aCab,{"N1_AQUISIC", dDataBase ,NIL})
AAdd(aCab,{"N1_DESCRIC", cDescric ,NIL})
AAdd(aCab,{"N1_QUANTD" , nQtd ,NIL})
AAdd(aCab,{"N1_CHAPA" , cChapa ,NIL})
AAdd(aCab,{"N1_PATRIM" , cPatrim ,NIL})
AAdd(aCab,{"N1_GRUPO" , cGrupo ,NIL})
//Coloque os campos desejados aqui
aItens := {}
//-- Preenche itens
AAdd(aItens,{;
{"N3_CBASE" , cBase ,NIL},;
{"N3_ITEM" , cItem ,NIL},;
{"N3_TIPO" , cTipo ,NIL},;
{"N3_BAIXA" , "0" ,NIL},;
{"N3_HISTOR" , cHistor ,NIL},;
{"N3_CCONTAB" , cContab ,NIL},;
{"N3_CUSTBEM" , cCusto ,NIL},;
{"N3_CDEPREC" , cContab ,NIL},;
{"N3_CDESP" , cContab ,NIL},;
{"N3_CCORREC" , cContab ,NIL},;
{"N3_CCUSTO" , cCusto ,NIL},;
{"N3_DINDEPR" , dIndDepr ,NIL},;
{"N3_VORIG1" , nValor ,NIL},;
{"N3_TXDEPR1" , nTaxa ,NIL},;
{"N3_VORIG2" , nValor ,NIL},;
{"N3_TXDEPR2" , nTaxa ,NIL},;
{"N3_VORIG3" , nValor ,NIL},;
{"N3_TXDEPR3" , nTaxa ,NIL},;
{"N3_VORIG4" , nValor ,NIL},;
{"N3_TXDEPR4" , nTaxa ,NIL},;
{"N3_VORIG5" , nValor ,NIL},;
{"N3_SUBCCON" , cSubCon ,NIL},;
{"N3_CLVLCON" , cClvlCon ,NIL},;
{"N3_TXDEPR5" , nTaxa ,NIL};
})
//Coloque os campos desejados aqui
Begin Transaction
MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,aItens,3,aParam)
If lMsErroAuto
MostraErro()
DisarmTransaction()
Endif
End Transaction
RestArea(aArea)
RESET ENVIRONMENT
Return
Múltiplas inclusões:
#include "rwmake.ch"
#include "TOTVS.ch"
#include "TBICONN.ch"
User Function MyA012
Local aArea
Local cBase, cItem ,cGrupo, cChapa , cDescric:= " "
Local cTipo := "13"
Local cPatrim := "N"
Local dIndDepr
Local cHistor := "TESTE EXEC"
Local cContab := "PLANODECONTA00000000"
Local cCusto := "CENTR0001"
Local cSubCon :="000000001"
Local cClvlCon:="000000000"
Local nQtd := 1
Local nValor := 10
Local nTaxa := 1
Local nTaxa2:= 1
Local nX
Local aParam := {}
Local aCab := {}
Local aItens := {}
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "ATF" TABLES "SN1","SN3"
/*lançamento para inclusao de mais Ativos
----------------------------------------------*/
For nX :=1 To 2//Quantos registros serão incluídos
aArea := GetArea()
cBase :=PadR("AG"+cValToChar(nX),TamSX3("A3_COD")[1])
cItem :=PadR("AG"+cValToChar(nX),TamSX3("N1_ITEM")[1],"")
cChapa :=PadR("AG"+cValToChar(nX),TamSX3("N1_CHAPA")[1])
cDescric:=PadR("EXECAUT : "+ cValToChar(nX), TamSX3("N1_CHAPA")[1])
dIndDepr := RetDinDepr(dDataBase)
aCab := {}
AAdd(aCab,{"N1_CBASE" , cBase ,NIL})
AAdd(aCab,{"N1_ITEM" , cItem ,NIL})
AAdd(aCab,{"N1_AQUISIC" , dDataBase ,NIL})
AAdd(aCab,{"N1_DESCRIC" , cDescric ,NIL})
AAdd(aCab,{"N1_QUANTD" , nQtd ,NIL})
AAdd(aCab,{"N1_CHAPA" , cChapa ,NIL})
AAdd(aCab,{"N1_PATRIM" , cPatrim ,NIL})
AAdd(aCab,{"N1_GRUPO" , cGrupo ,NIL})
AAdd(aCab,{"N1_MARGEM" ,"000000" ,NIL})
//adicione aqui os campos desejados
aItens := {}
//-- Preenche item 1
AAdd(aItens,{;
{"N3_CBASE" , cBase ,NIL},;
{"N3_ITEM" , cItem ,NIL},;
{"N3_TIPO" , cTipo ,NIL},;
{"N3_BAIXA" , "0" ,NIL},;
{"N3_HISTOR" , cHistor ,NIL},;
{"N3_CCONTAB" , cContab ,NIL},;
{"N3_CUSTBEM" , cCusto ,NIL},;
{"N3_CDEPREC" , cContab ,NIL},;
{"N3_CDESP" , cContab ,NIL},;
{"N3_CCORREC" , cContab ,NIL},;
{"N3_CCUSTO" , cCusto ,NIL},;
{"N3_DINDEPR" , dIndDepr ,NIL},;
{"N3_VORIG1" , nValor ,NIL},;
{"N3_TXDEPR1" , nTaxa ,NIL},;
{"N3_VORIG2" , nValor ,NIL},;
{"N3_TXDEPR2" , nTaxa ,NIL},;
{"N3_VORIG3" , nValor ,NIL},;
{"N3_TXDEPR3" , nTaxa ,NIL},;
{"N3_VORIG4" , nValor ,NIL},;
{"N3_TXDEPR4" , nTaxa ,NIL},;
{"N3_VORIG5" , nValor ,NIL},;
{"N3_TXDEPR5" , nTaxa ,NIL},;
{"N3_VRDACM1" , nTaxa2 ,NIL},;
{"N3_SUBCCON" , cSubCon ,NIL},;
{"N3_SEQ" , SN3->N3_SEQ ,NIL},;
{"N3_CLVLCON" , cClvlCon ,NIL};
})
//adicione acima os campos desejados
//Controle de transacao
Begin Transaction
conOut('Inicio da rotina Automatica '+ Time())
MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,aItens,3,aParam)
conOut('FIM' +Time())
If lMsErroAuto
MostraErro()
DisarmTransaction()
else
ConfirmSx8()
conOut('INCLUIDO ATIVO N3_CBASE: '+ cBase + ", N3_ITEM : "+cItem+ ", N3_CUSTBEM : "+cCusto+ ", N3_SUBCCON : "+cSubCon+ ", N3_CLVLCON : "+cClvlCon)
ENDIF
RestArea(aArea)
End Transaction
//Modificando campos para segunda execução
cCusto :="CENTR0002"
cSubCon :="000000002"
cClvlCon:="000000002"
Next nX
RESET ENVIRONMENT
Return
Alteração:
#INCLUDE "Protheus.CH"
User Function AltAtfa012()
Local aArea := GetArea()
Local nQtd := 1
Local dAquisic := dDataBase
Local dIndDepr := RetDinDepr(dDataBase)
Local nQtd := 2
Local nValor := 1000
Local nTaxa := 10
Local nTamBase := TamSX3("N3_CBASE")[1]
Local nTamChapa := TamSX3("N3_CBASE")[1]
Local cGrupo := "0001"
Local aParam := {}
Local aCab := {}
Local aItens := {}
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
SN1->(DbSetOrder(1)) //N1_FILIAL+N1_CBASE+N1_ITEM
If SN1->(DbSeek(xFilial("SN1")+"0000000000"+"0001"))
aCab := {}
AAdd(aCab,{"N1_CBASE" , SN1->N1_CBASE ,NIL})
AAdd(aCab,{"N1_ITEM" , SN1->N1_ITEM ,NIL})
AAdd(aCab,{"N1_AQUISIC", SN1->N1_AQUISIC ,NIL})
AAdd(aCab,{"N1_DESCRIC", "TESTE MYAATF012 2" ,NIL})
AAdd(aCab,{"N1_QUANTD" , SN1->N1_QUANTD ,NIL})
AAdd(aCab,{"N1_CHAPA" , SN1->N1_CHAPA ,NIL})
AAdd(aCab,{"N1_PATRIM" , SN1->N1_PATRIM ,NIL})
AAdd(aCab,{"N1_GRUPO" , SN1->N1_GRUPO ,NIL})
aItens := {}
//-- Preenche itens
SN3->(DbSetOrder(1))//N3_FILIAL+N3_CBASE+N3_ITEM+N3_TIPO+N3_BAIXA+N3_SEQ
If SN3->(DbSeek(xFilial("SN3")+"0000000000"+"0001"+"01"+"0"+"001"))
AAdd(aItens,{;
{"N3_CBASE" , SN3->N3_CBASE ,NIL},;
{"N3_ITEM" , SN3->N3_ITEM ,NIL},;
{"N3_TIPO" , SN3->N3_TIPO ,NIL},;
{"N3_BAIXA" , SN3->N3_BAIXA ,NIL},;
{"N3_HISTOR" , "TESTE MYAATF012 2" ,NIL},;
{"N3_CCONTAB" , SN3->N3_CCONTAB ,NIL},;
{"N3_CUSTBEM" , SN3->N3_CUSTBEM ,NIL},;
{"N3_CDEPREC" , SN3->N3_CDEPREC ,NIL},;
{"N3_CDESP" , SN3->N3_CDESP ,NIL},;
{"N3_CCORREC" , SN3->N3_CCORREC ,NIL},;
{"N3_CCUSTO" , SN3->N3_CCUSTO ,NIL},;
{"N3_DINDEPR" , SN3->N3_DINDEPR ,NIL},;
{"N3_VORIG1" , SN3->N3_VORIG1 ,NIL},;
{"N3_TXDEPR1" , SN3->N3_TXDEPR1 ,NIL},;
{"N3_VORIG2" , SN3->N3_VORIG2 ,NIL},;
{"N3_TXDEPR2" , SN3->N3_TXDEPR2 ,NIL},;
{"N3_VORIG3" , SN3->N3_VORIG3 ,NIL},;
{"N3_TXDEPR3" , SN3->N3_TXDEPR3 ,NIL},;
{"N3_VORIG4" , SN3->N3_VORIG4 ,NIL},;
{"N3_TXDEPR4" , SN3->N3_TXDEPR4 ,NIL},;
{"N3_VORIG5" , SN3->N3_VORIG5 ,NIL},;
{"N3_TXDEPR5" , SN3->N3_TXDEPR5 ,NIL}})
EndIf
Begin Transaction
MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,aItens,4,aParam)
If lMsErroAuto
MostraErro()
DisarmTransaction()
Endif
End Transaction
EndIf
RestArea(aArea)
Return
Exclusão:
#INCLUDE "Protheus.CH"
User Function Exc012
Local aArea := GetArea()
Local nQtd := 1
Local dAquisic := dDataBase
Local dIndDepr := RetDinDepr(dDataBase)
Local nQtd := 2
Local nValor := 1000
Local nTaxa := 10
Local nTamBase := TamSX3("N3_CBASE")[1]
Local nTamChapa := TamSX3("N3_CBASE")[1]
Local cGrupo := "0001"
Local aParam := {}
Local aCab := {}
Local aItens := {}
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
SN1->(DbSetOrder(1)) //N1_FILIAL+N1_CBASE+N1_ITEM
If SN1->(DbSeek(xFilial("SN1")+"0000000000"+"0001"))
aCab := {}
AAdd(aCab,{"N1_CBASE" , SN1->N1_CBASE ,NIL})
AAdd(aCab,{"N1_ITEM" , SN1->N1_ITEM ,NIL})
AAdd(aCab,{"N1_AQUISIC", SN1->N1_AQUISIC ,NIL})
AAdd(aCab,{"N1_DESCRIC", "TESTE MYAATF012" ,NIL})
AAdd(aCab,{"N1_QUANTD" , SN1->N1_QUANTD ,NIL})
AAdd(aCab,{"N1_CHAPA" , SN1->N1_CHAPA ,NIL})
AAdd(aCab,{"N1_PATRIM" , SN1->N1_PATRIM ,NIL})
AAdd(aCab,{"N1_GRUPO" , SN1->N1_GRUPO ,NIL})
EndIf
Begin Transaction
MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,Nil,5,aParam)
If lMsErroAuto
MostraErro()
DisarmTransaction()
Endif
End Transaction
RestArea(aArea)
Return
Excelente. Obrigado pelo exemplo.
— aldo santos 30 de Jun de 2023Só completando os exemplos levantados, gostaria que se atentasse a incluir o Array de aItens a um array antes de chamar o execauto, ficado assim: aAdd(aItem,aItens)
Caso contrário corre o erro de não tratar o aItens, pois o execauto aguarda um array com arrays de intens.