on 01-08-2014 11:06 AM
Bom dia,
Eu gostaria de gerar o DANFE em pdf e vi que existem algumas parametrizações standard.
No entanto eu gostaria de tirar algumas duvidas em relação à parametrização do Output Type de Nota fiscal:
1) No campo "Layout module", o que deverá ser preenchido ???
2) Na parte de "Processing 1",acredito que deva se manter o programa "J_1BNFPR",
3) No campo "Form routine", deveremos colocar ENTRY ???
4) No campo "Form", deveremos preencher com /XNFE/DANFE_PORTRAIT_FO ???
5) Se devemos gerar em PDF, acredito que o campo " PDF/Smartform form" deva ser preenchido. Em caso positivo, com que valor ?
6) O campo "Form Type", deve ser preenchido com a opção "2 - PDF", correto ?
Desde já agradeço,
Claudio Igarashi
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sim.
*&--------------------------------------------------------------------*
*& Form call_smartform
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM call_smartform.
DATA: lv_subject TYPE tdtitle.
output_options-tdimmed = nast-dimme.
output_options-tddest = '29ZK'.
control_parameters-no_dialog = 'X'.
DATA: cparam TYPE ssfctrlop,
outop TYPE ssfcompop,
file_size TYPE i,
bin_filesize TYPE i,
pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE,
tab_otf_data TYPE ssfcrescl.
control_parameters-getotf = 'X'.
CALL FUNCTION fm_name
EXPORTING
control_parameters = control_parameters
output_options = output_options
user_settings = ''
nota_fiscal = w_danfe
IMPORTING
job_output_info = tab_otf_data
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
ENDIF.
* Convert OTF data to PDF
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = bin_filesize
TABLES
otf = tab_otf_data-otfdata[]
lines = pdf_tab
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5.
IF sy-subrc NE 0.
ENDIF.
CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
EXPORTING
i_otf = tab_otf_data-otfdata
EXCEPTIONS
convert_otf_to_pdf_error = 1
cntl_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
ENDFORM. "call_smartform
Observação... No caso acima... ao fazer a impressão o sistema gera o preview do pdf na tela; ai o usuário define se quer imprimir, salvar ou enviar por email. veja que as configurações como a J1BG por exemplo você precisa configurar uma impressora mesmo que no seu programa diga que você irá gerar um pdf.
Abraço
Eduardo Chagas
Claudio,
Depende da maneira que você quer implementar. No cliente que estou atualmente eu implementei uma transação de consulta de NF-e e que extrai os DANFE's em PDF.
Ao selecionar a NF-e que deseja e clicar em um botão, eu aciono o programa de impressão:
PERFORM entry IN PROGRAM znfe_print_danfe USING lv_subrc lv_screen.
Internamente, o programa znfe_print_danfe sabe que o que está sendo solicitado é a versão OTF da impressão e não uma impressão normal (Quando se chama a função do smartform, no parâmetro control_parameters o campo getotf deve ter valor = X). Com isso, jogo o output em OTF p/ a memória e recupero o mesmo na transação de extração do PDF.
Com essa tabela contendo o OTF eu chamo a função CONVERT_OTF. Com o resultado dessa função você pode gravar um file local na máquina do usuário usando aclasse cl_gui_frontend_services metodo gui_download.
Procurando rapidamente no SCN encontrei esse blog que é mais ou menos igual a forma como eu implementei:
[]'s
JN
Boa tarde Claudio,
Montamos um porta em PHP para download de todos os documentos do SAP ECC utilizando o SAP PI. Utilizamos as seguintes funções utilizando a linguagem ABAP:
1. Chamamos o formulário SmartForm utilizando a função SSF_FUNCTION_MODULE_NAME
2. Utilizando a função CONVERT_OTF para gerar o arquivo PDF
3. A função SSFC_BASE64_ENCODE converte o arquivo PDF para binário
Existe uma função em PHP para converter a string binária do ABAP em PDF para que seja realizado o download, no Java existe a mesma função para realizar esta tarefa.
Espero ter ajudado.
Atenciosamente
Marcelo Macedo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
6 | |
5 | |
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.