Ajuda com API

Discussão em 'Progress 4GL' iniciado por turks, Novembro 23, 2010.

  1. turks

    turks Membro Participativo

    Pessoal, tenho que fazer uma API que exclua do sistema um range de ordens de compra de um determinado fornecedor.
    Porem, nunca fiz API, nem sei por onde começar.

    Já descobri que o DOCAPI que é usado para ordens de compra é o CCAPI302.

    Por favor, me instruam pra ver se estou no caminho correto:

    Código:
    DEF TEMP-TABLE tt-ordem
        FIELD ttm-numer-ordem   LIKE ordem-compra.numero-ordem.
    
    INPUT FROM C:\ordens-para-cancelar.csv.
    OUTPUT TO C:\itens-completos.csv.
    
    REPEAT:
        CREATE tt-ordem.
        IMPORT DELIMITER ';' ttm-numer-ordem.
    END.
    
    FOR EACH tt-ordem NO-LOCK:
    
        FIND FIRST ordem-compra NO-LOCK WHERE ordem-compra.numero-ordem = tt-ordem.ttm-numer-ordem NO-ERROR.
        /*
        PUT 
             tt-ordem.ttm-numer-ordem ";"
             ordem-compra.cod-maq-origem ";"
             ordem-compra.num-processo-mp  ";"
             ordem-compra.num-seq-item ";"
             ordem-compra.it-codigo  SKIP. */
    END.
    
    {ccp/ccapi202.i}
    {ccp/ccapi207.i}
    {cdp/cd7301.i1}
    
    FOR EACH tt-ordem-compra EXCLUSIVE-LOCK:
        DELETE tt-ordem-compra.
    
    END.
    Agora vou ter que criar a tabela de tt-ordem-compra e passar os parametros da tabela ordem-compra para a tt-ordem-compra, correto?

    Obrigado!
  2. turks

    turks Membro Participativo

    Pessoal, ninguem consegue me explicar meio por cima como se usa uma API?

    Obrigado!
  3. muertebr

    muertebr Membro Participativo

    Vou lhe dizer algumas coisas que eu sei vendo o forum, pois ainda não precisei trabalhar com api.

    Peli que vi deve (não tenho certeza de nada) ser definida uma temp-table ou varias temp-table (verificar documentação da api desejada) e com isso passar os campos obrigatorios para a tabela que quer fazer a inclusão, dar um run na api passando como parametro tabelas temporarias e outras como por exemplo de erros.

    Não sei se ajudei alguma coisa, mais tentei.
  4. turks

    turks Membro Participativo

    Olá, obrigado pela resposta, acho que foi mais ou menos isso que eu andei fazerndo...
    Não executei ainda, pois estou com medoo. rsrsrsrs..

    Asim que terminar mando o código pra vcs virem.
    Obrigado!
  5. muertebr

    muertebr Membro Participativo

    Vc não tem base teste, para fazer essas loucuras??
    ^^
  6. CarlosNobrega

    CarlosNobrega Membro Participativo

    API nada mais é do que uma procedure progress que faz rotinas no modulo sem que o desenvolvedor tenha o completo conhecimento das tabelas envolvidas.

    Execute conforme diz no documento DOCAPI..passe os parametros e receba os retornos quando houver.

    coloque a chamada no seu programa e teste da seguinte maneira.

    do trans:
    run teuprograma.w.
    /*antes de fechar o seu programa rode outros para consultar o que foi feito*/
    undo, leave.
    end.

    desta forma tudo que vc executa é desfeito com o comando undo dentro de uma transacao...

    se estais com medo de rodar pq nao sabe o que faz o jeio mais facil de perder este medo é assim...hehehe

    um abraço...

Compartilhe esta Página