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

Urgente EPC Danf / xml

Discussão em 'Progress 4GL' iniciado por MARCOS PATRICIO SANFELICE, Março 7, 2024.

  1. MARCOS PATRICIO SANFELICE

    MARCOS PATRICIO SANFELICE Sem Pontuação

    Boa tarde pessoal estou precisando fazer uma upc ou algo do genero para incluir uma informacao nos dados complementares da DAnf, minha situacao e seguinte tenho uma tabela especifica, ex: ext-ped-venda, nessa tabela tenho dois campos, contrato e licitacoes, quando a nota for emitida e um desses campos estiverem preenchidos eu vou colocar o conteudo deles na informacoes complementares da Danf substituindo o que sai normalmente hoje, e nao faco a menor ideia de como comecar e como usar isso, agradeco a colaboracao.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tu vai precisar colocar uma trigger na tabela da nota fiscal, usando o programa do btb que esqueci o nome agora.

    Eu já fiz isso há uns 2 anos atrás mas não tenho o fonte mais e não lembro de cabeça o nome da tabela.

    O client-log mostra as tabelas e apis que rodam no momento de gerar a nota, aí seria um bom caminho e olhar a documentação dessas apis, é o que eu faria.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Boa tarde,
    Em uma das minhas aventuras, a ideia era pegar o XML da NFE, e transformar em NFC, e acabei achando esse caminho, uma upc no programa AXSEP027.p
    Me parece que dependendo da versão do layout do XML, pode ser um axsep outra coisa, mas segue ai ...
    Código:
    /*  ------------------------------------------------------------
        programa .: ems2/upc/upc-axsep027.p
        autor ....: richard edgar - imesul
        data .....: 20/02/2018
        descricao : Tratar situa‡Æo especial de nota fiscal para
                    gera‡Æo da NFCe
        ------------------------------------------------------------ */
        {grid2/error.i}
    
        using totvs.faturamento.NFCe.*.
    
        {utp/ut-glob.i}    
        {cdp/cdcfgdis.i}
        {include/i-epc200.i1}
    
        define input        parameter p-ind-event as character no-undo.
        define input-output parameter table for tt-epc.
    
        define variable error              as ExceptionControl   no-undo.
        define variable transformaParaNFCe as TransformaparaNFCe no-undo.
    
        define variable hBusinessContent as handle no-undo.
        define variable hRoot            as handle no-undo.
    
        delete object hBusinessContent no-error.
        delete object hRoot            no-error.
    
        if p-ind-event = 'AtualizaXML' then do:
            assign error = ExceptionControl:getInstance().
    
            for first tt-epc no-lock
                where tt-epc.cod-event     = 'AtualizaXML'
                  and tt-epc.cod-parameter = 'hBusinessContent':
                create x-document hBusinessContent.
                create x-noderef  hRoot.
                assign hBusinessContent = widget-handle(tt-epc.val-parameter).
            end.
    
            if valid-handle(hBusinessContent) then do:
                assign transformaParaNFCe = new TransformaParaNFCe().
                error:clearExceptions().
                do {&try}:
                    transformaParaNFCe:transformar(hBusinessContent).
                    assign hBusinessContent = transformaParaNFCe:getXML().
                {&catch}
                if not error:catchException() then do:
                    for each tt-epc
                        where tt-epc.cod-event = 'AtualizaXML'
                          and tt-epc.cod-parameter = 'hBusinessContentANFAVEA':
                        delete tt-epc no-error.
                    end.
    
                    create tt-epc.
                    assign tt-epc.cod-event     = 'AtualizaXML'
                           tt-epc.cod-parameter = 'hBusinessContentANFAVEA'
                           tt-epc.val-parameter = string(hBusinessContent).
                end.
                delete object transformaParaNFCe no-error.
            end.
        end.
    
    A ideia é simples, esse ponto de upc me entrega o XML, eu altero o XML e mando de volta e segue a vida.

Compartilhe esta Página