requisição cpapi012

Discussão em 'EMS , HCM e Totvs 11' iniciado por Marcos Gomes, Outubro 24, 2024.

  1. Marcos Gomes

    Marcos Gomes Membro Participativo

    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.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Que erros apresenta pra vc?
  3. Marcos Gomes

    Marcos Gomes Membro Participativo

    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.
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    E o CP0309 funciona perfeitamente? tu já pensou em usar o client log e ver se ele usa essa API ou outra?
    bootstrapmaster curtiu isso.

Compartilhe esta Página