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!
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.
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!
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...