Boa tarde. Pessoal estou dando entrada em algumas notas que tem a finalidade-4 e e que geram nota fiscal de faturamento. Muitas notas nossas, são emitidas e acaba passando o prazo para cancelamento, acontece alguma avaria ou problema logistico. Para estes casos, conseguimos devolver a nota, mas dando entrada e ao mesmo tempo gerando um faturamento. Quando a natureza de operação de entrada tem uma mensagem a tag infadfisco gera certo, mas se eu através da axsep037(upc) tento colocar mais alguma coisa na mensagem, não consigo de jeito nenhum. Parece que a mensagem que esta na natureza é colocada no xml algum ponto mais a frente. e apaga o que coloquei via axsep037. Se a natureza de operação não tem mensagem cadastrada, ai não sai mensagem na tag, mas eu consigo colocar o que quiser na tag e sai no xml com a observação que eu coloquei no axsep037. O mais interessante que dentro da upc do axsep037, a tag infadfisco sempre aparece vazia. Abaixo o trecho da upc: FOR FIRST tt-epc NO-LOCK WHERE tt-epc.cod-event = "AtualizaDadosNFe" AND tt-epc.cod-parameter = "ttInfAdic" : ASSIGN h-ttdet = widget-handle(tt-epc.val-parameter) hQueryBuffer = h-ttdet:default-buffer-handle. MESSAGE "valid handle = " valid-handle(hQueryBuffer) VIEW-AS ALERT-BOX. if valid-handle(hQueryBuffer) then do: create query h-query. h-query:set-buffers(hQueryBuffer). h-query:query-prepare('for each ' + h-ttdet:name + ' no-lock'). h-query:query-open(). h-query:GET-FIRST() no-error. MESSAGE "query of end = " not h-query:QUERY-OFF-END SKIP v-programa-exec-mensagem VIEW-AS ALERT-BOX. IF not h-query:QUERY-OFF-END THEN DO: assign h-cod-estabel = hQueryBuffer:buffer-field('CodEstabelNF') no-error. assign h-serie = hQueryBuffer:buffer-field('SerieNF') no-error. assign h-nr-nota-fis = hQueryBuffer:buffer-field('NrNotaFisNF') no-error. MESSAGE h-cod-estabel:buffer-value h-serie:buffer-value h-nr-nota-fis:BUFFER-VALUE skip v-programa-exec-mensagem VIEW-AS ALERT-BOX. find first nota-fiscal no-lock where nota-fiscal.cod-estabel = h-cod-estabel:buffer-value and nota-fiscal.serie = h-serie:buffer-value and nota-fiscal.nr-nota-fis = h-nr-nota-fis:buffer-value no-error. IF AVAIL nota-fiscal THEN DO: assign h-campo = hquerybuffer:buffer-field('infAdFisco') no-error. IF h-campo:BUFFER-VALUE <> " " THEN DO: ASSIGN h-campo:BUFFER-VALUE = h-campo:BUFFER-VALUE + " | ". assign h-campo:buffer-value = h-campo:BUFFER-VALUE + replace(v-programa-exec-mensagem,"esp631",""). END. ELSE assign h-campo:buffer-value = replace(v-programa-exec-mensagem,"esp631",""). MESSAGE "h-campo " h-campo:BUFFER-VALUE VIEW-AS ALERT-BOX. END. END. h-query:query-close(). END. END. Se alguém já passou por isso e puder me ajudar, agradeço.
Já tentaste criando uma query para "correr" a temp-table, dentro do mesmo tt-epc "event" que está trabalhando, tenho algo assim para a ttDet (nesta regra tu consegue também descobrir se o registro já existe realmente neste ponto): Código: assign h-bo = widget-handle(tt-epc.val-parameter). assign h-buffer = h-bo:default-buffer-handle. create query h-query. h-query:set-buffers(h-buffer). h-query:query-prepare('for each ttDet'). h-query:query-open(). h-query:get-first(). do while h-buffer:available: assign h-buffer:buffer-field('xPed'):buffer-value = "XXXXXXXXXX" . h-query:get-next(). end. h-query:query-close(). Obs: tenho também uma regra como a sua e funciona sem problemas por aqui também, mas seria uma tentativa...