Tiempo aproximado de lectura 00:03:00 min
Duda
¿Es posible realizar la modifcación por Execauto en la MATA123 Purchase Order?
Entorno
Cross Segmentos - TOTVS BackOffice (Línea Protheus) - MI - Compras (SIGACOM) - A partir de la versión 12
Solución
Si, es posible realizar la modificación por Execauto en la MATA123 tomando como base estándar el siguiente ejemplo:
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
// Ejemplo Modificación Pursache Order MATA123 //
User Function xMata123_4()
//Variables
Local aCab := {} // Array con datos de encabezado
Local aLin := {} // Array con datos de Ítem
Local aItem := {} // Array de Ítems
Local cDoc := " "
Local nOpc := 4 // Opción a realizar en este caso inclusión
Private lMsErroAuto := .F. // Control de ejecución de rutina
cDoc := FWInputBox("Número de Purchase Order a modificar", "")
// Encabezado
AAdd( aCab, { "C7_NUM" , cDoc , Nil })
AAdd( aCab, { "C7_FORNECE" , "MI9075" , Nil })
AAdd( aCab, { "C7_LOJA" , "01" , Nil })
AAdd( aCab, { "C7_EMISSAO" , dDataBase , Nil })
AAdd( aCab, { "C7_COND" , "001" , Nil })
AAdd( aCab, { "C7_FILIAL" , xFilial("SC7") , Nil })
AAdd( aCab, { "C7_DT_IMP" , dDataBase , Nil })
AAdd( aCab, { "C7_IMPORT" , "001" , Nil })
AAdd( aCab, { "C7_MOEDA" , 1 , Nil })
AAdd( aCab, { "C7_TXMOEDA" , 0 , Nil })
AAdd( aCab, { "C7_COMPRA" , "001" , Nil })
AAdd( aCab, { "C7_DESP" , "001" , Nil })
AAdd( aCab, { "C7_AGENTE" , "001" , Nil })
AAdd( aCab, { "C7_TIPO_EM" , "001" , Nil })
AAdd( aCab, { "C7_ORIGIMP" , "V" , Nil })
AAdd( aCab, { "C7_DEST" , "V" , Nil })
AAdd( aCab, { "C7_INCOTER" , "001" , Nil })
AAdd( aCab, { "C7_CONTATO" , " " , Nil })
AAdd( aCab, { "C7_FILENT" , xFilial("SC7") , Nil })
AAdd( aCab, { "C7_NATUREZ" , "" , Nil })
// Items
// Item existente en la PO
AAdd( aLin, { "C7_ITEM" , "0001" , Nil })
AAdd( aLin, { "C7_PRODUTO" , " PRD01 " , Nil })
AAdd( aLin, { "C7_UM" , "UN" , Nil })
AAdd( aLin, { "C7_QUANT" , 1 , Nil })
AAdd( aLin, { "C7_PRECO" , 100.00 , Nil })
AAdd( aLin, { "C7_TOTAL" , 100.00 , Nil })
AAdd( aLin, { "C7_ITEMSC" , "0001" , Nil })
AAdd( aLin, { "C7_NUMSC" , "000002" , Nil })
AAdd( aLin, { "C7_QTDSOL" , 1 , Nil })
AAdd( aLin, { "C7_MOEDA" , 1 , Nil })
AAdd( aLin, { "C7_TXMOEDA" , 0 , Nil })
AAdd( aLin, { "C7_TES" , "001" , Nil })
AAdd( aLin, { "LINPOS" , "C7_ITEM" , "0001" })
aAdd( aLin, { "AUTDELETA" , "N" , Nil })
AAdd( aItem, aLin)
aLin := {}
// Item nuevo a incluir en la PO
AAdd( aLin, { "C7_ITEM" , "0002" , Nil })
AAdd( aLin, { "C7_PRODUTO" , "PRD02 " , Nil })
AAdd( aLin, { "C7_UM" , "UN" , Nil })
AAdd( aLin, { "C7_QUANT" , 1 , Nil })
AAdd( aLin, { "C7_PRECO" , 100.00 , Nil })
AAdd( aLin, { "C7_TOTAL" , 100.00 , Nil })
AAdd( aLin, { "C7_ITEMSC" , "0002" , Nil })
AAdd( aLin, { "C7_NUMSC" , "000002" , Nil })
AAdd( aLin, { "C7_QTDSOL" , 1 , Nil })
AAdd( aLin, { "C7_MOEDA" , 1 , Nil })
AAdd( aLin, { "C7_TXMOEDA" , 0 , Nil })
AAdd( aLin, { "C7_TES" , "001" , Nil })
AAdd( aItem, aLin)
// Ejecuta Rutina Automática
MSExecAuto( { |x,y,z| MATA123(x,y,z) }, aCab, aItem, nOpc )
If lMsErroAuto
MsgStop("Error en la modificación de la purchase order!")
MostraErro()
Else
msgInfo("Purchase Order modificada: " + cDoc, "MsExecAuto MATA123")
EndIf
Return
Para mayor detalle siga el enlace: Rutina Automática de Purchase Order (Mata123) - ExecAuto - CHI
0 Comentarios