[RESOLVIDO] pdapi002.p

Discussão em 'EMS , HCM e Totvs 11' iniciado por m.heckler, Fevereiro 8, 2013.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. m.heckler

    m.heckler Sem Pontuação

    Estamos tentando desalocar pedidos via appserver, e neste caso estamos tentando utilizar a api pdapi002.p mas está ocorrendo o erro 1005, alguém poderia me ajudar neste caso?

    Arquivos Anexados:

    • 1005.JPG
      1005.JPG
      Tamanho:
      13.5 KB
      Visitas:
      137
  2. m.heckler

    m.heckler Sem Pontuação

    Este é o programa que estou tentando rodar.

    DEFINE INPUT PARAMETER p_nr-pedcli AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER p_nome-abrev AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER p_nr-sequencia AS INTEGER.
    DEFINE INPUT PARAMETER p_it-codigo AS CHAR.
    DEFINE OUTPUT PARAMETER p_erro AS CHAR NO-UNDO.

    DEFINE VAR desalocar AS INTEGER. /* 1-Mant‚m 2-Aloca 3-Desaloca */
    ASSIGN p_erro = "".
    desalocar = 3.
    /*Include com definicao de temp-tables para alocacao/desalocacao de itens do pedidos*/
    {pdp\pdapi002.i}

    /* CRIACAO DA Tabela Tempor ria*/
    EMPTY TEMP-TABLE tt-api-param.
    CREATE tt-api-param.
    ASSIGN tt-api-param.alocacao-pedidos = desalocar.


    EMPTY TEMP-TABLE tt-aloc-ped-venda.
    CREATE tt-aloc-ped-venda.
    ASSIGN tt-aloc-ped-venda.i-sequen = 1
    tt-aloc-ped-venda.nome-abrev = p_nome-abrev
    tt-aloc-ped-venda.nr-pedcli = p_nr-pedcli.


    EMPTY TEMP-TABLE tt-aloc-ped-ent.
    CREATE tt-aloc-ped-ent.
    ASSIGN tt-aloc-ped-ent.nr-pedcli = p_nr-pedcli
    tt-aloc-ped-ent.nome-abrev = p_nome-abrev
    tt-aloc-ped-ent.nr-sequencia = p_nr-sequencia
    tt-aloc-ped-ent.it-codigo = p_it-codigo.


    Run pdp/pdapi002.p (INPUT 1,
    INPUT TABLE tt-api-param,
    INPUT TABLE tt-aloc-ped-venda,
    INPUT TABLE tt-aloc-ped-ent,
    INPUT-OUTPUT TABLE tt-erro).


    FIND FIRST tt-erro NO-LOCK NO-ERROR.

    IF AVAIL tt-erro THEN DO:
    RUN pi-retorno-api.
    END.


    PROCEDURE pi-retorno-api:

    FOR EACH tt-erro:
    ASSIGN p_erro = STRING(cd-erro) + " - " + tt-erro.mensagem.
    END.
    END.
  3. lima

    lima Membro Participativo

    Bom dia amigo,

    Este erro é porque a API não recebe parâmetros diretamente, ou seja, é preciso você executar a API de forma persistente e depois chamar a procedure necessária. Abaixo segue um exemplo.

    Código:
    DEFINE VARIABLE h-pdapi002 AS HANDLE      NO-UNDO.
    
    RUN pdp\pdapi002.p PERSISTENT SET h-pdapi002.
    
    RUN pi-alocacao IN h-pdapi002(INPUT 1,
                                  INPUT TABLE tt-api-param,
                                  INPUT TABLE tt-aloc-ped-venda,
                                  INPUT TABLE tt-aloc-ped-ent, 
                                  INPUT-OUTPUT TABLE tt-erro).
    
    DELETE PROCEDURE h-pdapi002.            
     
    Espero ter ajudado.

    Abraços.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página