SAP ABAP SMARTFORMS保存为PDF到本地

财务应收 需要生产对账单 然后对账单发给客户  

需要smartforms 生成PDF(客户号命名)文件,然后rpa,配对微信备注 + 客户号发送文件

做下技术预研,

参考 SAP ABAP SMARTFORMS保存为PDF到本地_abap 下载pdf点击cancel还在下载-CSDN博客

优化一下代码后,我用我自己的模板 

设备在对应账户的默认参数3设定 


DATA: gv_formname   TYPE tdsfname VALUE 'ZFRM_MM_003',
      gv_fm_name    TYPE rs38l_fnam.
DATA: gwa_ssfcompop TYPE ssfcompop,
      gwa_control   TYPE ssfctrlop.
DATA: gv_devtype    TYPE rspoptype.
DATA: gv_job_output TYPE ssfcrescl.
DATA: gt_lines      TYPE TABLE OF tline.
DATA: gv_size       TYPE I.

*&---------------------------------------------------------------------*

*& START-OF-SELECTION

*&---------------------------------------------------------------------*

START-OF-SELECTION.

*Get the function module name using form name

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
  formname           = gv_formname
IMPORTING
  fm_name            = gv_fm_name
EXCEPTIONS
  no_form            = 1
  no_function_module = 2
  OTHERS             = 3.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.



*Suppress print dialog
gwa_control-no_dialog = 'X'.
gwa_control-getotf = 'X'.

DATA :
      itab TYPE TABLE OF zstr_mm_003 WITH HEADER  LINE,  "表项数据
      itab_wa LIKE LINE OF itab.
itab-EBELN = '1'.
append itab.

*Trigger the smartform
*gwa_control-DEVICE = 'LP01'.
CALL FUNCTION gv_fm_name

EXPORTING

  control_parameters = gwa_control

  output_options     = gwa_ssfcompop
  LGOBE = '1011'
  LIFNR = '1123132123'
  BLDAT = sy-datum
  NAME1 = 'asdf'
  MBLNR = '12313'
  CPUTM = '112111'
  WERNA = '1231321a567a'
  MJAHR = '2024'
  LGORT = '1123'
IMPORTING
  job_output_info    = gv_job_output

TABLES
  ITAB = ITAB[]

EXCEPTIONS

  formatting_error   = 1

  internal_error     = 2

  send_error         = 3

  user_canceled      = 4

  OTHERS             = 5.

IF sy-subrc <> 0.

  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

*Convert OTF to PDF

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

  FORMAT                = 'PDF'

IMPORTING

  bin_filesize          = gv_size

TABLES

  otf                   = gv_job_output-otfdata

  LINES                 = gt_lines

EXCEPTIONS

  err_max_linewidth     = 1

  err_format            = 2

  err_conv_not_possible = 3

  err_bad_otf           = 4

  OTHERS                = 5.

IF sy-subrc <> 0.

  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.



DATA:

      W_FILE_NAME TYPE string ,

      W_FILE_PATH TYPE  string,

      W_FULL_PATH TYPE string .
*
*CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
*EXPORTING
*  PROMPT_ON_OVERWRITE = 'X'
*CHANGING
*  FILENAME = W_FILE_NAME
*  PATH = W_FILE_PATH
*  FULLPATH = W_FULL_PATH
*EXCEPTIONS
*
*  CNTL_ERROR = 1
*
*  ERROR_NO_GUI = 2
*
*  NOT_SUPPORTED_BY_GUI = 3
*
*  OTHERS = 4 .

IF SY-SUBRC <> 0.

  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

W_FULL_PATH = 'C:\output\4.pdf'.

*Download PDF file to presentation server

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
  bin_filesize            = gv_size
  filename                =  W_FULL_PATH
  filetype                = 'BIN'
  NO_AUTH_CHECK = 'X'
TABLES
  data_tab                = gt_lines
EXCEPTIONS
  file_write_error        = 1
  no_batch                = 2
  gui_refuse_filetransfer = 3
  invalid_type            = 4
  no_authority            = 5
  unknown_error           = 6
  header_not_allowed      = 7
  separator_not_allowed   = 8
  filesize_not_allowed    = 9
  header_too_long         = 10
  dp_error_create         = 11
  dp_error_send           = 12
  dp_error_write          = 13
  unknown_dp_error        = 14
  access_denied           = 15
  dp_out_of_memory        = 16
  disk_full               = 17
  dp_timeout              = 18
  file_not_found          = 19
  dataprovider_exception  = 20
  control_flush_error     = 21
  OTHERS                  = 22.

IF sy-subrc <> 0.

  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gavin_gxh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值