Boa tarde, não encontrei uma categoria para o módulo do EIC, mas como o PO do EIC grava no Compras, acho que se encaixaria aqui.
Estou tentando fazer uma alteração via execauto na rotina EICPO400, como inclusão funciona 100%, porem como alteração dá uma mensagem:
AJUDA:AVISO
Erro ao montar a chave do registro da tabela WORK. Verifique se todos os campos da chave WKCC+WKSI_NUM+WKPOSIT foram informados.
Estou fazendo um bem simples para testar, preciso apenas atualizar a data do embarque (W3_DT_EMB). Com base no código abaixo, o que mais esta faltando?
WKCC = W3_CC
WKSI_NUM = W3_SI_NUM
WKPOSIT = W3_POSICAO
#Include 'Protheus.ch'
#Include 'Totvs.ch'
#Include 'Tbiconn.ch'
User Function PO400Auto()
Local aCab := {} //Array com os dados da Capa do Purchase Order
Local aItem := {} //Array com os dados dos Itens do Purchase Order
Local nOpc:= 4 //Opção a ser executada. 3-Inclusão; 4-alteração; 5=exclusao
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
FWAlertInfo("TESTE PO: 100675","ATENÇÃO")
//Capa do Purchase Order
AADD(aCab,{"W2_PO_NUM" , "100675 " , NIL})
//Dados para os Itens do Purchase Order
aAdd(aItem,{;
{"W3_COD_I" , "3968616 " , NIL},;
{"W3_CC" , "01 " , NIL},;
{"W3_POSICAO", "0001" , NIL},;
{"W3_DT_EMB" , DDATABASE+20 , NIL},;
{"W3_REG" , 1 , NIL},;
{"W3_SI_NUM" , "349260" , NIL}})
MSExecAuto({|a,b,c,d| EICPO400(a,b,c,d)}, NIL, aCab, aItem, nOpc)
If lMsErroAuto
MostraErro()
Else
MsgInfo("Ok - P.O.")
EndIf
Return Nil
Desde já agradeço!