Pessoal bom dia, preciso fazer um programa que requisite a materia prima para dentro do ordem, (mesma funcionalidade do cp0309), como vou ter um grande volume para fazer, será necessário criar um prg pra isso.. Porem não consigo fazer isso funcionar e a docto da api, como sempre, não é muito clara, Alguem ja precisou fazer algo? vi umas mensagens aqui no grupo bem antiga, mais não deu certo tambem def var l-deleta-erros as log NO-UNDO INIT YES. def var h-handle as handle no-undo. {cpp/cpapi012.i1} {cdp/cd0666.i} {cpp/cpapi001.i} {cpp/cpapi002.i} {cpp/cpapi012.i} {cpp/cpapi301.i} Def Temp-table tt-erro-req Field i-sequen As Integer Field cd-erro As Integer Field mensagem As character. find first ord-prod where ord-prod.nr-ord-prod = 17325 no-lock no-error. if available ord-prod then do: find first estrutura where estrutura.it-codigo = ord-prod.it-codigo /* and estrutura.tipo-sobra = 4 */ no-lock no-error. create tt-requis. assign tt-requis.tipo-trans = 1 /* 1 - Requisição - 2 - Devoluçao */ tt-requis.nr-ord-produ = ord-prod.nr-ord-prod tt-requis.quantidade = 500 tt-requis.data = today tt-requis.item-ini = '' tt-requis.item-fim = 'zzzzzzzzz' tt-requis.deposito-ini = '' tt-requis.deposito-fim = 'ZZZ' tt-requis.op-codigo-ini = 0 tt-requis.op-codigo-fim = 9999 /* tt-requis.cod-localiz-ini = as character tt-requis.cod-localiz-fim = as character */ tt-requis.procura-saldos = NO tt-requis.carrega-reservas = NO tt-requis.prog-seg = 'CP0309' /* tt-requis.time-out = as integer tt-requis.tentativas = as integer */ tt-requis.cod-versao-integracao = 001 /* tt-requis.nro-docto = as character tt-requis.serie-docto = as character */ . run cpp/cpapi012.p persistent set h-handle (input table tt-requis, input-output table tt-erro-req, input l-deleta-erros). DEF VAR c-erro AS CHAR. DEF VAR c-texto AS CHAR. /* RUN pi-valida-requis IN h-handle (input YES, input ord-prod.nr-ord-prod, input 'cp0309', output c-erro, output c-texto). */ run pi-processa-requis in h-handle (input table tt-requis, input-output table tt-erro-req, input yes). end. for each tt-erro-req. DISP tt-erro-req WITH 1 COL WIDTH 300. end. output close.
Se eu executar a api tt-requis.procura-saldos = no tt-requis.carrega-reservas = no enão apresenta nenhum erro.. se eu mudo para tt-requis.procura-saldos = YES tt-requis.carrega-reservas = YES ele da o erro 1246 "o item SLP033 não possui saldo em estoque" nesse programa eu vou precisar de fato selecionar o Lote e quantidade que vai ser requisitada, mais pelo docto da api, não entendi como fazer isso.
E o CP0309 funciona perfeitamente? tu já pensou em usar o client log e ver se ele usa essa API ou outra?