1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Como usar APIS?

Discussão em 'EMS , HCM e Totvs 11' iniciado por denismaster, Novembro 6, 2018.

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

    denismaster Membro Participativo

    Olá pessoal?

    Para muitos deve ser algo muito básico... mas eu NUNCA usei uma api e agora preciso utilizar.

    Vou usar meu problema para exemplificar e para que os mestres daqui possam me ajudar a usar uma api.

    Preciso pegar o valor do pis e cofins dos itens de uma nota fiscal.

    A TOTVS me indicou usar isso:

    DEF INPUT PARAM p-c-tabela AS CHAR NO-UNDO.
    DEF INPUT PARAM p-r-rowid AS ROWID NO-UNDO.
    DEF INPUT PARAM p-l-calcula AS LOGICAL NO-UNDO.
    DEF INPUT PARAM p-l-integr-tms AS LOGICAL NO-UNDO.
    DEF OUTPUT PARAM de-aliq-pis AS DECIMAL FORMAT ">>9.9999" NO-UNDO.
    DEF OUTPUT PARAM de-val-base-pis LIKE it-nota-fisc.vl-tot-item NO-UNDO.
    DEF OUTPUT PARAM de-val-pis LIKE it-nota-fisc.vl-tot-item NO-UNDO.
    DEF OUTPUT PARAM de-aliq-cofins AS DECIMAL FORMAT ">>9.9999" NO-UNDO.
    DEF OUTPUT PARAM de-val-base-cofins LIKE it-nota-fisc.vl-tot-item NO-UNDO.
    DEF OUTPUT PARAM de-val-cofins LIKE it-nota-fisc.vl-tot-item NO-UNDO.

    RUN piBuscaPisCofins IN h-cdapi995 (INPUT "it-nota-fisc",
    INPUT ROWID(it-nota-fisc),
    INPUT NO,
    INPUT l-integr-tms,
    OUTPUT de-aliq-pis,
    OUTPUT de-val-base-pis,
    OUTPUT de-vl-pis,
    OUTPUT de-aliq-cofins,
    OUTPUT de-val-base-cofins,
    OUTPUT de-vl-fins).


    Beleza... aí eu fiz o seguinte...

    Antes do RUN eu dei um for each na nota-fiscal e no final de tudo coloquei um end.
    Mas dava erro procurando h-cdapi995...
    Aí eu pensei em informar como se fosse uma include...
    Coloquei na primeira linha:
    {"ems2\cdp\cdapi995.r"} (coloquei o .r pq não encontrei nenhum .i ou .p)...

    Aí deu outro erro "Não entendi após: "ËVaaW" kkkk nem eu entendi....
    Ah e continuou dando erro procurando h-cdapi995...

    Realmente estou totalmente perdido sobre api...

    Alguém pode me dar uma luz?

    Obrigado pessoal.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    run ems2/cdp/cdapi995.r persistent set h-cdapi995.

    Esse é o comando, é que essa api é executada de forma persistente, então esse run vc faz antes de for each ou qualquer coisa, pra executar ele somente uma vez, e não pode esquecer de no final da rotina, quando for fechar o programa, vc fazer delete object h-cdapi995, se não ele fica na memoria até vc sair da sessão progress, e se vc rodar de novo, vai carregar de novo, e vai tomando memoria
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    sempre tem que olhar a documentação, sempre tem um .doc junto com a api, lá vc descobre se ela é persistente, pra fazer o run do jeito que te indiquei ou se vc faz um run direto passando parametros, e lá já tem os parametros também.
  4. denismaster

    denismaster Membro Participativo

    Obrigado bootstrapmaster.
    Abri chamado na totvs pq não achei essa documentação...

    Acho que ainda vou ter que esperar essa documentação.... pq ainda falta alguma coisa... coloquei o run na primeira linha e o delete object no final mas não funfou ainda...

    RUN ems2/cdp/cdapi995.r persistent set h-cdapi995.

    DEF INPUT PARAM p-c-tabela AS CHAR NO-UNDO.
    DEF INPUT PARAM p-r-rowid AS ROWID NO-UNDO.
    DEF INPUT PARAM p-l-calcula AS LOGICAL NO-UNDO.
    DEF INPUT PARAM p-l-integr-tms AS LOGICAL NO-UNDO.
    DEF OUTPUT PARAM de-aliq-pis AS DECIMAL FORMAT ">>9.9999" NO-UNDO.
    DEF OUTPUT PARAM de-val-base-pis LIKE it-nota-fisc.vl-tot-item NO-UNDO.
    DEF OUTPUT PARAM de-val-pis LIKE it-nota-fisc.vl-tot-item NO-UNDO.
    DEF OUTPUT PARAM de-aliq-cofins AS DECIMAL FORMAT ">>9.9999" NO-UNDO.
    DEF OUTPUT PARAM de-val-base-cofins LIKE it-nota-fisc.vl-tot-item NO-UNDO.
    DEF OUTPUT PARAM de-val-cofins LIKE it-nota-fisc.vl-tot-item NO-UNDO.

    FOR EACH it-nota-fisc WHERE it-nota-fisc.nr-nota-fis = "0038823" no-lock:
    RUN piBuscaPisCofins IN h-cdapi995 (INPUT "it-nota-fisc",
    INPUT ROWID(it-nota-fisc),
    INPUT NO,
    INPUT l-integr-tms,
    OUTPUT de-aliq-pis,
    OUTPUT de-val-base-pis,
    OUTPUT de-vl-pis,
    OUTPUT de-aliq-cofins,
    OUTPUT de-val-base-cofins,
    OUTPUT de-vl-fins).
    END.
    delete object h-cdapi995.

    Obrigado.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    mas pra tirar essas informações, vc não precisa de API, principalmente se já integrou com OF, que normalmente é automatico, leia as tabelas doc-fiscal e item-doc-fis, os valores estão todos lá já calculados.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página