cancel
Showing results for 
Search instead for 
Did you mean: 

Automatização Impressão do Danfe

Former Member
0 Kudos

Bom dia Srs e Sras,

Sou novo no desenvolvimento abap e atualmente estou passando por uma dificuldade na automatização da impressão do danfe.

O que ocorre: estou alterando uma classe na badi - CL_NFE_PRINT. Classe: CALL_RSNAST00. Nela estou chamando a função: J_1BNFE_CALL_RSNAST00. Até ai tudo bem, funcionando que é uma beleza, o problema é que ela esta abrindo a tela de seleção de impressora, debuguei o programa e é da função, existe alguma outra função? Ou procuro por ampliações na função?

Eu imagino que é coisa basica, mas como falei estou iniciando.

Muito obrigado!!!!

Accepted Solutions (1)

Accepted Solutions (1)

former_member182503
Active Contributor
0 Kudos

Jeferson,

normalmente encapsulamos a chamada da função J_1BNFE_CALL_RSNAST00 dentro de uma função Z, RFC-Enabled.

Crie uma Função Z, seguindo este modelo:


FUNCTION Z_SD_NFE_PRINT_DANFE.

*"----------------------------------------------------------------------

*"*"Local Interface:

*"  IMPORTING

*"     VALUE(I_ACTIVE) TYPE  J_1BNFE_ACTIVE

*"     VALUE(I_KAPPL) TYPE  NAST-KAPPL DEFAULT 'NF'

*"     VALUE(I_NACHA) TYPE  NAST-NACHA DEFAULT '1'

*"     VALUE(I_DIMME) TYPE  NAST-DIMME DEFAULT 'X'

*"     VALUE(I_PRINTER) TYPE  RSPONAME OPTIONAL

*"  EXCEPTIONS

*"      PRINT_ERROR

*"----------------------------------------------------------------------

CALL FUNCTION 'J_1BNFE_CALL_RSNAST00'

  EXPORTING

    i_active          = i_active

    I_KAPPL           = i_kappl

    I_NACHA           = i_nacha

    I_DIMME           = i_dimme

    I_PRINTER         = i_printer

  EXCEPTIONS

    PRINT_ERROR       = 1

    OTHERS            = 2.

IF sy-subrc <> 0.

  CALL FUNCTION 'J_1B_NFE_ERROR_PROTOKOLL'

          EXPORTING

            i_docnum = i_active-docnum.

ENDIF.

ENDFUNCTION.

Na aba atributos, marque ela como 'Remote-Enabled Module'.

No método CALL_RSNAST00, altere sua chamada para:


      CALL FUNCTION 'Z_SD_NFE_PRINT_DANFE'

        IN BACKGROUND TASK

        EXPORTING

          i_active   = i_active

        EXCEPTIONS

          no_printer = 1

          OTHERS     = 2.

[]'s

JN

Former Member
0 Kudos

Eu fiz exatamente como você compartilhou, mas ele não saiu na impressora, eu acompanhei se a impressão sairia ficaria no pool do sap, ou se apareceria na fila de impressão do windows.

Não aconteceu nada!

Fiz certo de verificar nesses 2 lugares?

former_member182503
Active Contributor
0 Kudos

Consegue ver se ficou alguma entrada na SM58?

Former Member
0 Kudos

Nada!

former_member182503
Active Contributor
0 Kudos

Coloca um COMMIT WORK. após executar a função em background task e tente novamente.

Former Member
0 Kudos

Show de bola! Foi para o pool, mas com erro. Ao mandar reprocessar pelo pool ele imprimi. Vou dar uma pesquisada na internet. Devo ter esquecido de algum detalhe.

==================================

CALL FUNCTION 'Z_SD_NFE_PRINT_DANFE'

   IN BACKGROUND TASK

   EXPORTING

     i_active    = active

   EXCEPTIONS

     print_error = 1

     OTHERS      = 2.

IF sy-subrc <> 0.

* Implement suitable error handling here

ENDIF.

COMMIT WORK.

Answers (3)

Answers (3)

Former Member
0 Kudos

Fiz alguns ajustes na transação SPAD.

Agora está ocorrendo outro erro.

- Front end não acessível

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

|Data      |Tempo   |Classe              |Área                |Stat.job            |Impressão           |Pos.|Págs. |Tmp.|Mensagem                                                                                            |

|22.09.2015|09:51:44|Informação          |Spool SAP           |                    |Não impresso        |    |      |    |Processamento através de processo operacional spool encerrado                                       |

|22.09.2015|09:51:44|Atrasado            |Transf.dados        |Adiado              |Não impresso        |    |      |    |A ordem é redefinida pela 1ª vez                                                                    |

|22.09.2015|09:51:44|Atrasado            |Transf.dados        |Adiado              |Não impresso        |    |      |    |Ordem diferida                                                                                      |

|22.09.2015|09:51:44|Informação          |Edição R/3          |Em edição           |Não impresso        |    |      |    |Edição encerrada através de processo operacional de spool                                           |

|22.09.2015|09:51:44|Informação          |Edição R/3          |Em edição           |Não impresso        |    |      |    |Edição iniciada através de processo operacional spool                                               |

|22.09.2015|09:51:44|Informação          |Spool SAP           |Em edição           |Não impresso        |    |      |    |Processamento iniciado através de processo operacional spool                                        |

|22.09.2015|09:51:43|Informação          |Spool SAP           |Espera pelo servidor|Não impresso        |    |      |    |Ordem de impressão 18967/1 gerada                                                                   |

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Former Member
0 Kudos

Eduardo Chagas

Alguem!!! por favor!! kkk

former_member182503
Active Contributor
0 Kudos

Jeferson,

Normalmente o funcional configura a J1BG para definir a impressora padrão a ser usada por Empresa + Local de Negócio.

Entre na J1BG, informe o Output Type usado (NF55 por ex.), selecione o Key Combination desejado e reveja a definição de impressora.

Só uma dica: use o search. Existem inúmeras questões similares a esta no SCN. Se você digitar no google a linha abaixo, você vai encontrar diversos tópicos sobre o assunto:

J1BG DANFE site: sap.com

[]'s

JN

Former Member
0 Kudos

COm isso a nota é emitida automaticamente, sem intervenção do usuario?

former_member182503
Active Contributor
0 Kudos

Sim.

O erro "front end não acessível" deve ocorrer pois a entrada na NAST é gerada como LOCL e a impressão é gerada em background, sem link com um front end (seu SAP GUI por ex.) para ele determinar em qual impressora vai ser impresso o DANFE (aqui ele usaria a impressora default do windows).

[]'s

JN

Former Member
0 Kudos

Já está no pool minha impressão só que está ocorrendo um erro.

paulocampos
Explorer
0 Kudos

Jeferson,

Como esta passando o parâmetro de importação I_DIMME da função?

Cole a chamada de sua função.

Att.

Paulo Campos

SAP Certified Professional

Former Member
0 Kudos

Passei com X sem X.

I_KAPPL                         NF

I_NACHA                         1

I_DIMME                         X

I_PRINTER                      LOCL