You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FMS系统中自动发送后台作业B假脱机文件的方案求助

解决方案建议

方案1:编写自定义ABAP程序发送指定作业的假脱机文件

开发一个轻量ABAP程序,通过SAP标准函数直接发送作业B的假脱机请求,再将程序绑定到作业B的完成事件实现自动触发。

核心实现步骤:

  • 获取作业B的最新假脱机号:调用标准函数 RSPO_FIND_SPOOL_REQUESTS,传入作业名'B'、创建者等筛选条件,定位目标假脱机请求。
  • 调用发送函数:使用 RSPO_SEND_SPOOL_REQUEST 传入假脱机号、收件人、主题等参数,完成自动发送。

简化代码示例:

REPORT ZSEND_SPOOL_JOBB.

DATA: lv_spool_id TYPE tsp01-rqident,
      lt_spool    TYPE TABLE OF tsp01,
      ls_spool    LIKE LINE OF lt_spool.

* 查找作业B的最新假脱机请求
CALL FUNCTION 'RSPO_FIND_SPOOL_REQUESTS'
  EXPORTING
    rqowner = SY-UNAME
    rqjobname = 'B'
  TABLES
    spoolrequests = lt_spool
  EXCEPTIONS
    no_spoolrequests_found = 1
    OTHERS = 2.

IF sy-subrc = 0.
  SORT lt_spool BY rqcretime DESCENDING.
  READ TABLE lt_spool INTO ls_spool INDEX 1.
  lv_spool_id = ls_spool-rqident.

  * 发送假脱机文件
  CALL FUNCTION 'RSPO_SEND_SPOOL_REQUEST'
    EXPORTING
      spoolid                = lv_spool_id
      recipient              = 'target_user@domain.com'
      subject                = '作业B自动发送的假脱机输出'
    EXCEPTIONS
      spool_not_found        = 1
      no_recipient_specified = 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.
ENDIF.

自动化配置:

  1. 在SM36中创建新作业(如SEND_JOBB_SPOOL),步骤选择上述自定义程序。
  2. 作业开始条件选择「事件触发」,事件设为BTC_JOB_FINISHED,参数指定作业B的名称B,确保作业B完成后自动触发发送。

方案2:通过作业链串联执行

使用SM36的作业链功能,将作业A、作业B、发送假脱机步骤按顺序绑定:

  • 事务码SM36进入作业链维护,添加三个步骤:执行作业A → 执行作业B → 执行自定义发送程序。
  • 配置步骤依赖:仅当前序步骤成功完成时,才启动下一环节。
  • 为作业链设置定时触发规则,替代单独作业调度。

方案3:利用SAP自带报告实现半自动化

无需开发自定义程序,可使用事务码SE38运行RS_SPOOL_MAIL报告:

  • 在报告选择界面指定作业B的假脱机筛选条件(作业名、创建时间等),直接发送。
  • 若需自动化,将RS_SPOOL_MAIL配置为后台作业,定期筛选作业B的最新假脱机并发送。

内容的提问来源于stack exchange,提问作者DNASCI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:31:14