Tiempo aproximado de lectura: 00:05:00 min
Duda
Como ejecutar el Execauto de la rutina MATA410 para mas de 99 ítems ?
Ambiente
Cross Segmentos - TOTVS Backoffice (Línea Protheus) MI - Facturación (SIGAFAT) - Todas las versiones 12
Solución
El presente Execauto esta derivado de la construcción estándar expresada en el TDN:
https://tdn.totvs.com/pages/releaseview.action?pageId=6784012
--------------------------------------------------------------------------------------------------------------------
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
User Function MyMata410()
Local cDoc := "" // Número do Pedido de Vendas
Local cA1Cod := "000001" // Código do Cliente
Local cA1Loja := "01" // Loja do Cliente
Local cB1Cod := "000000000000000000000000000061" // Código do Produto
Local cF4TES := "501" // Código do TES
Local cE4Codigo := "001" // Código da Condição de Pagamento
Local cMsgLog := ""
Local cLogErro := ""
Local cFilSA1 := ""
Local cFilSB1 := ""
Local cFilSE4 := ""
Local cFilSF4 := ""
Local nOpcX := 0
Local nX := 0
Local nCount := 0
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local aErroAuto := {}
Local lOk := .T.
Private lMsErroAuto := .F.
Private lAutoErrNoFile := .F.
//****************************************************************
//* Abertura do ambiente
//****************************************************************
ConOut("Inicio: " + Time())
ConOut(Repl("-",80))
ConOut(PadC("Teste de inclusao / alteração / exclusão de 01 pedido de venda com 02 itens", 80))
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "SC5","SC6","SA1","SA2","SB1","SB2","SF4"
SA1->(dbSetOrder(1))
SB1->(dbSetOrder(1))
SE4->(dbSetOrder(1))
SF4->(dbSetOrder(1))
cFilAGG := xFilial("AGG")
cFilSA1 := xFilial("SA1")
cFilSB1 := xFilial("SB1")
cFilSE4 := xFilial("SE4")
cFilSF4 := xFilial("SF4")
// Neste RDMAKE (Exemplo), o mesmo número do Pedido de Venda é utilizado para a Rotina Automática (Modelos INCLUSÃO / ALTERAÇÃO e EXCLUSÃO).
cDoc := GetSxeNum("SC5", "C5_NUM")
//****************************************************************
//* Inclusao - INÍCIO
//****************************************************************
aCabec := {}
aItens := {}
aLinha := {}
aadd(aCabec, {"C5_NUM", cDoc, Nil})
aadd(aCabec, {"C5_TIPO", "N", Nil})
aadd(aCabec, {"C5_CLIENTE", "000001", Nil})
aadd(aCabec, {"C5_LOJACLI", "01", Nil})
aadd(aCabec, {"C5_LOJAENT", "01", Nil})
aadd(aCabec, {"C5_CONDPAG", "001", Nil})
cItem := "01"
For nX := 1 To 110
If nX > 1
cItem := Soma1(cItem,2)
EndIf
//--- Informando os dados do item do Pedido de Venda
aLinha := {}
aadd(aLinha,{"C6_ITEM", cItem, Nil})
aadd(aLinha,{"C6_PRODUTO", " COM00000000000000000000000011", Nil})
aadd(aLinha,{"C6_QTDVEN", 1, Nil})
aadd(aLinha,{"C6_PRCVEN", 10, Nil})
aadd(aLinha,{"C6_PRUNIT", 10, Nil})
aadd(aLinha,{"C6_VALOR", 10, Nil})
aadd(aLinha,{"C6_TES", "501", Nil})
aadd(aItens, aLinha)
Next nX
nOpcX := 3
MSExecAuto({|a, b, c, d| MATA410(a, b, c, d)}, aCabec, aItens, nOpcX, .F.)
If !lMsErroAuto
ConOut("Incluido com sucesso! " + cDoc)
Else
ConOut("Erro na inclusao!")
aErroAuto := GetAutoGRLog()
For nCount := 1 To Len(aErroAuto)
cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " "
ConOut(cLogErro)
Next nCount
EndIf
//****************************************************************
//* Inclusao - FIM
//****************************************************************
RESET ENVIRONMENT
Return(.T.)
--------------------------------------------------------------------------------------------------------------------
0 Comentarios