Aglutinar Solicitações de Compras usando MSExecAuto MATA110
Outro dia me perguntaram como incluir registro na tabela SC1 – Solicitação de Compras (MATA110) e fazer com que os gatilhos funcionem e perguntaram se é possível aglutinar várias Solicitações em uma só.
Para isso é preciso utilizar o MsExecAuto do MATA110, a sua sintaxe é simples:
MSExecAuto({|X,Y,Z| Mata110(X,Y,Z)}, aCabecalho, aItens, nOpcao)
Onde:
aCabecalho – Array contendo as informações para o cabeçalho
aItens – Array contendo as informações dos itens que serão inseridos
nOpcao – é onde informa se será uma inclusão, alteração ou exclusão
3 – Incluir
4 – Alterar
5 – Excluir
Irei postar apenas uma parte do código, para vê-lo na integra, clique no botão “Baixar agora”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
lMsErroAuto := .f. aCabecalho := {} aCabecalho :={ ; { "C1_FILIAL" , xFilial("SC1") , NIL},; { "C1_SOLICIT" , UsrRetName(RetCodUsr()) , NIL},; { "C1_EMISSAO" , dDatabase , NIL},; { "C1_UNIDREQ" , "01" , NIL},; { "C1_CODCOMP" , aSC[01,11] , NIL}; } aItens := {} aAdd(aItens, { {"C1_ITEM" , "0001" , NIL},; // 13-Item da SC {"C1_PRODUTO" , aSC[nContador, 03], NIL},; // 03-Produto {"C1_LOCAL" , aSC[nContador, 10], NIL},; // 10-Local {"C1_DESCRI" , aSC[nContador, 04], NIL},; // 04-Descricao {"C1_QUANT" , aSC[nContador, 05], NIL},; // 05-Quantidade {"C1_ZZCLASS" , aSC[nContador, 08], NIL},; // 08-Class. Prod. {"C1_CC" , aSC[nContador, 09], NIL},; // 09-Centro de Custo {"C1_CODCOMP" , "1" , NIL},; // 11-Cod. Comprad {"C1_UNIDREQ" , "01" , NIL},; // 12-Unid. Requis {"C1_DATPRF" , aSC[nContador, 06], NIL},; // 06-Data Entrega {"C1_ZZAGLUT" , "S" , NIL},; // 07-SC Aglutinada? {"C1_IMPORT" , aSC[nContador, 15], NIL},; // 15-Produto Imp. {"C1_OP" , aSC[nContador, 16], NIL},; {"C1_CLVL" , aSC[nContador, 09], NIL}}) // 09-Cod. Funcionario MSExecAuto({|X,Y,Z| Mata110(X,Y,Z)}, aCabecalho, aItens, 3) //insere a SC no novo numero If lMsErroAuto MsgStop("Problemas na execucao da Rotina Automatica MATA110 [INCLUSAO].") MostraErro() DisarmTransaction() lRetorno := .f. Else ConfirmSx8() EndIf |
Você precisa fazer log in para comentar.