cancel
Showing results for 
Search instead for 
Did you mean: 

Flag de NFe impressa no monitor

Former Member
0 Kudos

Bom dia!

Pessoal,

ao analisar os campos do monitor, verifiquei que o campo Imprimida fica em branco, mesmo que a nota ja tenha sido impressa.

Verifiquei que esse campo fica na tabela j_1bnfe_active e não é o mesmo campo que esta na J_1BNFDOC-PRINTD.

Portanto depois de ser autorizada e impressa, ao consultar a nota na J1B3N é possivel ver o flag assinalado, enquanto no monitor fica em branco.

Alguem ja passou por essa situação?

Porque esse campo não é atualizado.

Estou usando a 6.0 SP. Ja apliquei todas as notas com xx-csc-br-nfe que estavam disponiveis na SAP. Portanto acho que o sistema está no ultimo nivel de atualização.

Agradeço imensamente qualquer dica ou informação sobre esse assunto.

Att

Márcia Verro

Accepted Solutions (1)

Accepted Solutions (1)

former_member182114
Active Contributor
0 Kudos

Bom dia Márcia,

Tente o seguinte: Colocar um COMMIT WORK dentro do método CALL_RSNAST00, logo após a chamada da função de impressão.

Atenciosamente, Fernando Da Ró

Former Member
0 Kudos

Boa tarde!

Fernando

inclui o comando conforme sua orientação. Veja codigo abaixo.

Mas não funcionou.

O monitor ainda não mostra que a nota foi impressa.

Esse flag não deveria ser atualizado no mesmo momento em que o flag da J_1BNFDOC é atualizado?

grata

Márcia Verro

___________

METHOD if_ex_cl_nfe_print~call_rsnast00.

DATA vl_prnter TYPE RSPONAME.

IF i_active-code EQ '100'. "NF-e autorizada

  • AND i_active-printd IS INITIAL "só imprimir automaticamente se ainda não foi impressa

  • AND i_active-cancel IS INITIAL "não faz sentido imprimir autom. se ela foi cancelada

  • AND i_active-conting_s IS INITIAL. "não faz sentido imprimir autom. se ela foi alternada p/conting.

"pois deverá ser cancelada

SELECT SINGLE prnter

INTO vl_prnter

FROM j_1bb2

WHERE bukrs = i_active-bukrs

AND branch = i_active-branch

AND form = i_active-form.

IF vl_prnter IS INITIAL.

vl_prnter = 'LOCL'.

ENDIF.

CALL FUNCTION 'J_1BNFE_CALL_RSNAST00'

EXPORTING

i_active = i_active

i_printer = vl_prnter

EXCEPTIONS

no_printer = 1

OTHERS = 3.

COMMIT WORK.

IF sy-subrc <> 0.

CALL FUNCTION 'J_1B_NFE_ERROR_PROTOKOLL'

EXPORTING

i_docnum = i_active-docnum.

ENDIF.

ENDIF.

___________

former_member182114
Active Contributor
0 Kudos

Bom dia Márcia,

Você está utilizando o programa de impressão standard (J_1BNFPR) ou fez cópia ?

Faça um teste usando o programa de impressão standard J_1BNFPR.

Além disso, procure por notas para este objeto (seu sistema pode estar defasado).

Estando ou não estando defasado, se você estiver utilizando um Z, o que é comum, então talvez as notas tenham atualizado o standard e faltou vocês sincronizarem as modificações no Z. Faça uma revisão quanto a isso:

No include J_1BNFPR_SF, deve ter este código para atualizar corretamente a J_1BNFE_ACTIVE:


FORM smart_sub_printing.
.......
      IF retcode IS INITIAL.
        PERFORM financial_doc_update.    " update in database
        PERFORM nota_fiscal_update.      " update in database
        IF NOT gs_nfeactive IS INITIAL.
          PERFORM active_update ON COMMIT.
        ENDIF.
      ENDIF.

Se tudo estiver Ok em relação às notas, recorra ao bom e velho debug. Verifique se está passando por aqui.

Atenciosamente, Fernando Da Ró

Former Member
0 Kudos

Fernando,

verifiquei os pontos recomendados.

Estamos usando o programa ZNFE_PRINT_DANFE, disponibilizado na nota referente ao DANFE.

Fiz o debugging do programa e esta com a mesma codificação do programa standard.

Acompanhei os comandos e o flag é posicionado no tanto no cabeçalho do documento qto na tabela

J_1BNFE_Active.

Mas quando sai da rotina a area da J_1BNFE_Active some. E pelo que pude ver essa tabela é lida, o X é movido para flag, mas mesmo com o comit no metodo CALL>RSNAST00, no final o campo fica em branco.

Agora, me diz uma coisa, depois de impressa a nota (o danfe esta sendo impresso automaticamente), esse campo deve ficar marcado mesmo? E nesse momento que o mesmo é atualizado no monitor?

Alguem do grupo ja passou por essa situação?

agradeço a atenção

Márcia Verro

former_member182114
Active Contributor
0 Kudos

Bom dia Márcia,

O campo J_1BNFE_ACTIVE-PRINTD (J1BNFE) deve estar impresso, uma coisa que acontece é que muitos usuários nem percebem que não está sendo preenchido pois estão acostumados, e inclusive tem desenvolvimentos feitos ao, J_1BNFDOC-PRINTD (J1B3N) marcado.

O ponto de atualização é exatamente este, sugiro uma nova análise para descobrir o por que de em marcando, por que é desmarcado ou porque não grava ? Será que tem outras modificações à tabela ACTIVE ?

Faça este levantamento e atualize aqui o motivo de não gravar em se marcando com o flag, conforme você confirmou ?

Por último, remove a instrução ON COMMIT do perform. Isto irá realizar a gravação imediata.

Atenciosamente, Fernando Da Rós

Edited by: Fernando Da Ros on May 29, 2009 3:09 PM - Del ON COMMIT

Former Member
0 Kudos

Olá, boa tarde,

Verifiquei que a sua implementação da BADI tem um select para determinar a impressora. Estou com um problema, que quando ocorre a impressão pela BADI, o dispositivo de saída é apagado da tabela NAST, e a impressão não ocorre. Quando eu seto alguma impressora para o usuário de chamada das RFC, a impressão ocorre na impressora setada, e não na impressora cadastrada na J1BG.

A impressão no dispositivo cadastrado na J1BG não ocorre de forma standard? Tenho que fazer como foi feito por você? Outra coisa, você usou a j_1bb2. Não seria a tabela de mensagens?

Obrigado.

Fernando Fussi

Former Member
0 Kudos

OLa

O Abap criou uma funcao Z copia da funcao BR_J_CALL_RSNAST0 para a impressao automatica.

ai ele vai na Nast par abuscar a impressora da J1BG

Select single *

from NAST

where kappl = i_kappl and

objky = i_active-docnum and

kschl = i_active-form and

nacha = i_nacha and

vstat = '0'.

Renata

Answers (1)

Answers (1)

Former Member
0 Kudos

Márcia,

você encontrou a causa deste problema?

Estou tendo o mesmo erro..

Atc.

Sahira

ClifordMendes
Newcomer
0 Kudos

Olá Márcia,

Como o programa de impressão que eu utilizo também é Z (ZNFE_PRINT_DANFE). Eu retirei o ON COMMIT da chamada do FORM active_update como sugerido pelo Fernando, e dentro do form inseri o UPDATE na tabela j_1bnfe_active:

UPDATE j_1bnfe_active SET printd = 'X'

WHERE docnum = wk_header-docnum.

Funcionou violento!