cancel
Showing results for 
Search instead for 
Did you mean: 

Problema na impressão automática do danfe - método CALL_RSNAST00

Former Member
0 Kudos

Olá galera,

Estou implementando a impressão automática do danfe, eu realizei o procedimento descrito nessa outra thread

Mas não funcionou, qdo vou na SM58 do ECC, apresenta um erro(Erro no Control Framework) para a função 'Z'.

Código da badi:

method IF_EX_CL_NFE_PRINT~CALL_RSNAST00.

if i_active-code eq '100' and "Nfe autorizada

i_active-printd eq space and "Nfe não impressa

i_active-CONTING_S eq space and "Nfe não comutada para contingência

i_active-cancel eq space. "Nfe não cancelada

call function 'ZJ_1BNFE_CALL_RSNAST00' IN BACKGROUND TASK

exporting

i_active = i_active

exceptions

no_printer = 1

others = 2.

commit work.

endif.

endmethod.

method IF_EX_CL_NFE_PRINT~SET_COMMIT.

e_commitcall = 'X'.

endmethod

Código da função Z:

CALL FUNCTION 'J_1BNFE_CALL_RSNAST00'

EXPORTING

i_active = I_ACTIVE

I_NFDOC = I_NFDOC

I_KAPPL = I_KAPPL

I_NACHA = I_NACHA

I_DIMME = I_DIMME

I_PRINTER = I_PRINTER

EXCEPTIONS

NO_PRINTER = 1

PRINT_ERROR = 2

OTHERS = 3

.

IF sy-subrc <> 0.

call function 'J_1B_NFE_ERROR_PROTOKOLL'

exporting

i_docnum = i_active-docnum.

ENDIF.

O ECC está atualizado até o SAPKH60019

Alguém teria alguma dica?

vlw.

Accepted Solutions (1)

Accepted Solutions (1)

former_member182114
Active Contributor
0 Kudos

Bom dia Luis,

Pode ser que o usuário da RFC entrante no ERP não permite esta chamada.

Faça um teste de tirar o IN BACKGROUND TASK, só para garantir que a função/codificação está ok.

Em funcionando, crie uma SM59 apontando para o próprio sistema ERP e com um outro usuário mais power (acho que o tipo de usuário influencia, ex.: Serviço, ou dialog... faça testes para saber o que vai resolver) e na chamado mude para:

IN BACKGROUND TASK

DESTINATION 'ERPRFCDUMMY'

Atenciosamente, Fernando Da Ró

Former Member
0 Kudos

Fernando, esse negócio ta estranho...

eu criei a rfc na sm59 do ecc para o mesmo ambiente, porém coloquei o usuário que utilizo para logar no ambiente.

Coloquei na chamada da função 'Z' na badi o destination 'RFC'.

Criei uma nova Nfe e não funcionou...

Porém não apareceu erro na sm58.

Rodei então a function J_1B_NFE_XML_IN no ecc com os dados da última Nfe gerada, tbm não imprimiu a Nfe.

Então eu retirei o IN BACKGROUD TASK e o DESTINATION.

E rodei novamente a function J_1B_NFE_XML_IN, ai imprimiu a Nfe.

Mas gerando nova Nfe não imprime.

former_member182114
Active Contributor
0 Kudos

Bom dia João Luis,

O conteúdo do destination é o nome da RFC destination que você criou na SM59, foi RFC o nome?

destination 'RFC'

Rodei então a function J_1B_NFE_XML_IN no ecc com os dados da última Nfe gerada, tbm não imprimiu a Nfe.

Faça o teste da nova nota com o sistema chamando a Z sem destination e sem in background task.

Se ainda não funcionar, coloque um break-point na chamada do CALL_RSNAST00 e execute a J_1B_NFE_XML_IN, com o IN BACKGROUND e DESTINATION debugando e veja o que acontece.

Observação Importante: Após o call function IN BACKGROUND TASK você precisa de um COMMIT WORK... se não não dispara.

Atenciosamente, Fernando Da Rós

Edited by: Fernando Ros on Sep 14, 2011 11:54 PM

Li novamente, e vi o commit work no seu código, ignora a observação importante.

Edited by: Fernando Ros on Sep 14, 2011 11:55 PM

Former Member
0 Kudos

Boa noite, Fernando!

O conteúdo do destination é o nome da RFC destination que você criou na SM59, foi RFC o nome?

Sim coloquei o nome da rfc criana na SM59.

Faça o teste da nova nota com o sistema chamando a Z sem destination e sem in background task.

Sem o destination e o in backgroud, rodando a Z do ecc funciona.

Só não funciona qdo retorna do GRC.

Hj fiquei o dia inteiro nesse problema, to ficando doido..rs

Obrigado pela ajuda!

Former Member
0 Kudos

Bom dia, Fernando!

Descobrimos o erro!

O problema é que no programa Z da impressão do danfe, tem um desenvolvimento para gerar o pdf do msm e esse desenvolvimento usa a GUI_DOWNLOAD, e dá exceção 21 na função.

Agora tenho que ver um método para contornar isso..

obrigado pela forç

former_member182114
Active Contributor
0 Kudos

Bom dia Luis,

Entendi, isto independe da implementação pois nunca funcionaria na impressão automática (retorno do GRC).

Este download é o que o PDF? Talvez guardar no servidor, num diretório compartilhado.

Sobre o processo, sabe o que fazem com este PDF?

Atenciosamente, Fernando Da Ró

Former Member
0 Kudos

Fernando,

É o PDF do DANFE, o motivo que eles querem esse arquivo eu não sei...

former_member182114
Active Contributor
0 Kudos

Bom dia Luis,

Então, isso deve ter tido alguma necessidade e para implementar o automatismo este download para a estação do usuário não pode ser continuar, se não puder gravar em disco no servidor, pelo menos colocar um IF par anão chama o download do PDF para a estação quando em background.

Discute com o cliente sobre essa necessidade, acho que é só conversar e ver o que se quer ter.. E fazer, claro.

Atenciosamente, Fernando Da Ró

Former Member
0 Kudos

Boa tarde, Fernando!

Fiz isso, coloquei uma verificação no programa de impressão para verificar se está em backgroud ou se o usuário for o da RFC.

Se aterder a essa verificação, ao invés de chamar a GUI_DOWNLOAD, uso o OPEN DATASET, para salvar o arquivo no servidor.

Com isso a impressão funcionou muit bem...rs

Obrigado pela ajuda.

Answers (0)