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