SAP Smartform转成PDF方法汇总

本文详细介绍了在SAP中将Smartform转换为PDF的四种方法:通过代码开发、打印池假脱机请求、打印预览界面直接保存以及使用PDF虚拟打印机。每种方法都提供了具体的步骤和示例,帮助用户实现Smartform到PDF的转换。
摘要由CSDN通过智能技术生成

SAP里常常要画各种smartform,并且用户还希望保存至本地PDF文件,下面就详细说明smartform转成PDF的四种方法,如果还有其他方法欢迎留言补充。

一、代码开发

1)先调用smartform函数获取OTF格式数据

2)后调用函数CONVERT_OTF转换成PDF格式数据

3)再调用GUI_DOWNLOAD函数下载

示例代码如下(本示例中需下载四个smartform对应的四个PDF文件)

  METHOD DOWNLOAD_PDF.
    DATA: LT_FORMNAME           TYPE STANDARD TABLE OF /PICM/ADOBEFORM_STR,
          LT_OTF                TYPE STANDARD TABLE OF ITCOO,
          LT_LINES              TYPE STANDARD TABLE OF TLINE,
          LT_DATA               TYPE STANDARD TABLE OF ZSSD042,
          LS_DATA               TYPE ZSSD042,
          LS_CONTROL_PARAMETERS TYPE SSFCTRLOP,
          LS_OUTPUT_OPTIONS     TYPE SSFCOMPOP,
          LS_JOB_OUTPUT_INFO    TYPE SSFCRESCL,
          LV_FILENAME           TYPE STRING,
          LV_PATH               TYPE STRING.

    DATA(LV_TIME) = SY-DATUM && SY-UZEIT.

    DATA(LT_VBELN) = T_ALV[].
    DELETE LT_VBELN WHERE CHOOSE IS INITIAL.
    SORT LT_VBELN BY VBELN.
    DELETE ADJACENT DUPLICATES FROM LT_VBELN COMPARING VBELN.
    IF LT_VBELN[] IS INITIAL.
      MESSAGE TEXT-E03 TYPE 'E'.
    ENDIF.

    CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
      CHANGING
        SELECTED_FOLDER      = LV_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.
    IF LV_PATH IS INITIAL.
      RETURN.
    ENDIF.

    "  LS_OUTPUT_OPTIONS-TDDEST   = 'LP01'.
    LS_OUTPUT_OPTIONS-TDIMMED  = 'X'.
    LS_OUTPUT_OPTIONS-TDDELETE = 'X'.
    LS_OUTPUT_OPTIONS-TDNOPREV = 'X'.

    LS_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
    LS_CONTROL_PARAMETERS-GETOTF    = 'X'.

    LT_FORMNAME = VALUE #(
     ( FORMNAME = 'ZSD001_FORM' FUGRNAME = 'despatchlist_&1_&2.pdf'     ) "DespatchList
     ( FORMNAME = 'ZSD002_FORM' FUGRNAME = 'EDIDoc_&1_&2.pdf'           ) "EDIDoc
     ( FORMNAME = 'ZSD003_FORM' FUGRNAME = 'shippingorder_&1_&2.pdf'    ) "ShippingOrder
     ( FORMNAME = 'ZSD004_FORM' FUGRNAME = 'SO_DELIVERY_NOTE_&1_&2.pdf' ) "SO_DELIVERY_NOTE
    ).

*   获取SMARTFORM对应函数名
    LOOP AT LT_FORMNAME INTO DATA(LS_FORMNAME).
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          FORMNAME           = LS_FORMNAME-FORMNAME
        IMPORTING
          FM_NAME            = LS_FORMNAME-FUNCNAME
        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.
      MODIFY LT_FORMNAME FROM LS_FORMNAME.
    ENDLOOP.

    LOOP AT LT_VBELN INTO DATA(LS_VBELN).
      CLEAR LT_DATA[].
      LOOP AT T_ALV INTO DATA(LS_ALV) WHERE VBELN = LS_VBELN-VBELN.
        MOVE-CORRESPONDING LS_ALV TO LS_DATA.
        APPEND LS_DATA TO LT_DATA.
      ENDLOOP.

      LOOP AT LT_FORMNAME INTO LS_FORMNAME WHERE FUNCNAME IS NOT INITIAL.
        CLEAR: LT_OTF[], LT_LINES[], LS_JOB_OUTPUT_INFO, LV_FILENAME.

*       编辑文件名
        LV_FILENAME = LS_FORMNAME-FUGRNAME.
        DATA(LV_VBELN) = |{ LS_VBELN-VBELN ALPHA = OUT }|.
        REPLACE '&1' WITH LV_TIME INTO LV_FILENAME.
        REPLACE '&2' WITH LV_VBELN INTO LV_FILENAME.
        CONDENSE LV_FILENAME NO-GAPS.
        CONCATENATE LV_PATH LV_FILENAME INTO LV_FILENAME SEPARATED BY '\'.

*       调用SMARTFORM
        CALL FUNCTION LS_FORMNAME-FUNCNAME
          EXPORTING
            CONTROL_PARAMETERS = LS_CONTROL_PARAMETERS
            OUTPUT_OPTIONS     = LS_OUTPUT_OPTIONS
            USER_SETTINGS      = 'X'
          IMPORTING
            JOB_OUTPUT_INFO    = LS_JOB_OUTPUT_INFO
          TABLES
            IT_DATA            = LT_DATA
          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.

*       转换PDF
        LT_OTF[] = LS_JOB_OUTPUT_INFO-OTFDATA[].
        CALL FUNCTION 'CONVERT_OTF'
          EXPORTING
            FORMAT                = 'PDF'
          TABLES
            OTF                   = LT_OTF
            LINES                 = LT_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.

*       下载文件
        CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
            FILENAME                = LV_FILENAME
            FILETYPE                = 'BIN'
          TABLES
            DATA_TAB                = LT_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.
      ENDLOOP.
    ENDLOOP.

  ENDMETHOD.

二、 通过打印池假脱机请求转成PDF文件

1)打印smartform输出假脱机请求

2)SP01查看假脱机请求,选择菜单中 假脱机请求->转发->导出为PDF 进行下载,或者执行SAP标准程序RSTXPDFT4输入假脱机请求号进行下载

 执行程序RSTXPDFT4

三、在打印预览界面输入Tcode PDF!预览PDF,点击保存按钮进行下载

四、使用PDF虚拟打印机,本电脑使用的是微软自带的Microsoft Print to PDF虚拟打印机

SPAD配置输出设备

1)如果 主机假脱机访问方法 选择了 G:使用控制技术的前台打印,则先设置smartform打印选项后选择打印机

 打印smartform

 选择打印机

 2)如果 主机假脱机访问方法 选择了 F:计算机前台打印,则设置smartform打印选项时可同时选择打印机

 设置smartform打印选项并选择打印机

### 回答1: SAP Workflow 是一种工作流管理工具,用于自动化和管理企业内部流程。它可以帮助企业建立、管理和控制各种业务流程,提高工作效率和准确性。 SAP Workflow 可以创建和管理多个工作流,每个工作流可以包含多个步骤和不同的参与者。它提供了一个可视化的设计工具,使用户能够轻松地定义工作流程、设置条件和规则,并指定审批人员和通知方式。通过这种方式,企业可以根据自身需求和组织结构,建立个性化、高效的工作流程。 PDF 是一种通用的电子文档格式,可以在不同的操作系统和设备上保持文件格式的一致性。在 SAP Workflow 中,可以将工作流程以 PDF 格式导出,并与相关人员共享和传阅。这对于审批过程中的授权、复核和记录非常有用,因为 PDF 格式不易修改,并且可以复制和打印。 SAP Workflow PDF 还可以与其他 SAP 模块集成,如人力资源管理、采购和销售。通过与其他系统的连接,工作流程中的各个步骤可以自动触发相关操作和通知,并实时更新工作流程的状态。这种集成能够加快业务流程的执行速度,减少人工干预和错误的发生。 总之,SAP Workflow PDF 是一种功能强大的工作流管理工具,可以帮助企业实现业务流程的自动化和优化。它提供了方便的设计和管理界面,支持与其他系统的集成,并以可靠的 PDF 格式记录工作流程的每一步骤和决策。 ### 回答2: SAP Workflow PDFSAP系统中用于处理业务流程的工具,它能够帮助企业提高业务流程的效率和可管理性。SAP Workflow PDF可以将SAP系统中的业务流程以PDF格式导出,供用户查阅和审批。 SAP Workflow PDF具有以下功能和特点: 1. 流程可视化:通过将业务流程导出为PDF格式,用户可以清晰地了解整个流程的各个环节和步骤,便于审批人员进行查阅和了解。 2. 可操作性:SAP Workflow PDF不仅可以用于查阅,还可以进行审批和反馈。用户可以在PDF中进行相关操作,例如批准、拒绝、评论等,提高工作效率。 3. 审批历史记录:SAP Workflow PDF能够记录每一次审批的详细信息,包括日期、审批人、审批意见等,方便用户回溯和查询。 4. 自定义设置:用户可以根据自身需求定制SAP Workflow PDF的展示方式和内容,以便更好地适应企业的工作流程。 5. 高度可靠性:SAP Workflow PDF是以SAP系统为基础构建的,其数据安全性和稳定性得到了充分保障,确保用户信息的机密性和完整性。 总之,SAP Workflow PDF是一种功能强大的工具,能够帮助企业实现业务流程的可视化、简化和加速,提高工作效率和管理水平。同时,它也是一种安全可靠的业务管理工具,被广泛应用于各个行业和企业中。 ### 回答3: SAP Workflow是SAP公司开发的一种流程管理工具,可以帮助企业自动化和优化业务流程。PDF(Portable Document Format)是一种通用的电子文档格式,可以跨平台和设备进行共享和查看。 SAP Workflow PDF即是指将SAP Workflow相关的信息和文档导出为PDF格式的功能。通过将工作流程中的任务,审批流程和相关文档导出为PDF,可以实现更方便的共享和查看。 使用SAP Workflow PDF,用户可以将工作流程中的任务发送给相关人员,在任务中添加审批人并附上相关的文档,使用者可以将这些信息导出为PDF格式。导出的PDF文件可以通过电子邮件或共享平台发送给相关人员,这样他们就能更容易地查看任务、审批流程和相关文档,无需安装SAP Workflow系统。 SAP Workflow PDF还可以用于审计和归档目的。通过将工作流程中的任务和文档导出为PDF格式,企业可以轻松地存档和保留工作流程的完整性,并在需要时进行审计和验证。 总而言之,SAP Workflow PDF提供了一种更方便和灵活的方式来共享、查看和存档工作流程和相关文档。它使得任务的管理、审批和归档变得更加高效和便捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值