1 · D3_CODProduto de origem. No exemplo, SB1->B1_COD.
AdvPL GuiaMATA261 via MsExecAuto · estrutura posicional de aLinhaGuia de referência para desenvolver a chamada ExecAuto da rotina MATA261 em AdvPL, com atenção à estrutura posicional de aLinha.
Esta página documenta a rotina MATA261 sob o ponto de vista do desenvolvimento AdvPL: como preparar a estrutura enviada ao MsExecAuto, quais posições compõem aLinha e quais cuidados tomar ao validar o contrato da rotina automática. Em versões posteriores ao exemplo histórico 11.8, aLinha é posicional: cada valor precisa permanecer exatamente na posição esperada pela rotina, inclusive posições vazias. O objetivo é servir como guia de referência para programação; a explicação funcional de processos Protheus ficará para um site dedicado no futuro.
MATA261 via MsExecAuto · estrutura posicional de aLinha1 · D3_CODProduto de origem. No exemplo, SB1->B1_COD.
2 · D3_DESCRIDescrição do produto de origem.
3 · D3_UMUnidade de medida do produto de origem.
4 · D3_LOCALArmazém de origem. No exemplo: 07.
5 · D3_LOCALIZEndereço de origem. Mantenha a posição mesmo quando vazio.
6 · D3_CODProduto de destino. No exemplo é o mesmo código da origem.
7 · D3_DESCRIDescrição do produto de destino.
8 · D3_UMUnidade de medida do produto de destino.
9 · D3_LOCALArmazém de destino. No exemplo: 11.
10 · D3_LOCALIZEndereço de destino. Mantenha a posição mesmo quando vazio.
11 · D3_NUMSERINúmero de série, quando aplicável.
12 · D3_LOTECTLLote de controle da origem.
13 · D3_NUMLOTESublote/número de lote da origem, conforme o controle utilizado.
14 · D3_DTVALIDData de validade da origem. Use CTOD("") quando não aplicável.
15 · D3_POTENCIPotência. No exemplo é zero.
16 · D3_QUANTQuantidade transferida. No exemplo: aDados[nX][2].
17 · D3_QTSEGUMQuantidade na segunda unidade de medida. No exemplo é zero.
18 · D3_ESTORNOIndicador/informação de estorno.
19 · D3_NUMSEQNúmero sequencial relacionado à movimentação.
20 · D3_LOTECTLLote de controle na parte de destino. A posição é repetida intencionalmente.
21 · D3_DTVALIDData de validade na parte de destino. Use CTOD("") quando não aplicável.
22 · D3_ITEMGRDItem de grade, quando aplicável.
23 · D3_OBSERVAObservação da movimentação. No exemplo: OVHL.
A página documenta a montagem de cada linha do array de itens; o retorno e o tratamento de erro dependem do fluxo MsExecAuto utilizado pela rotina chamadora.
Local aLinha := {}
AAdd(aLinha, SB1->B1_COD) // D3_COD - origem
AAdd(aLinha, SB1->B1_DESC) // D3_DESCRI - origem
AAdd(aLinha, SB1->B1_UM) // D3_UM - origem
AAdd(aLinha, "07") // D3_LOCAL - origem
AAdd(aLinha, "") // D3_LOCALIZ - origem
AAdd(aLinha, SB1->B1_COD) // D3_COD - destino
AAdd(aLinha, SB1->B1_DESC) // D3_DESCRI - destino
AAdd(aLinha, SB1->B1_UM) // D3_UM - destino
AAdd(aLinha, "11") // D3_LOCAL - destino
AAdd(aLinha, "") // D3_LOCALIZ - destino
AAdd(aLinha, "") // D3_NUMSERI
AAdd(aLinha, "") // D3_LOTECTL - origem
AAdd(aLinha, "") // D3_NUMLOTE - origem
AAdd(aLinha, CTOD("")) // D3_DTVALID - origem
AAdd(aLinha, 0) // D3_POTENCI
AAdd(aLinha, aDados[nX][2]) // D3_QUANT
AAdd(aLinha, 0) // D3_QTSEGUM
AAdd(aLinha, "") // D3_ESTORNO
AAdd(aLinha, "") // D3_NUMSEQ
AAdd(aLinha, "") // D3_LOTECTL - destino
AAdd(aLinha, CTOD("")) // D3_DTVALID - destino
AAdd(aLinha, "") // D3_ITEMGRD
AAdd(aLinha, "OVHL") // D3_OBSERVAA linha contém 23 posições. Neste exemplo, o produto é transferido do armazém 07 para o 11.
// Referência histórica: estrutura identificada por campo
// { "D3_COD", <valor>, Nil }
//
// Versões posteriores deste guia: estrutura posicional
// AAdd(aLinha, <valor-da-posicao-1>)
// AAdd(aLinha, <valor-da-posicao-2>)
// ...Os dois formatos representam contratos diferentes. Para o formato posicional, a ordem e a quantidade de posições fazem parte do contrato.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso
Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.