on 09-14-2011 4:35 PM
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.
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ó
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
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!
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ó
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.
User | Count |
---|---|
13 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.