SM58报错处理-自定义程序重启任务

以下是关于SAP事务代码SM58的详细说明,结合其在系统中的功能、应用场景及操作方法:


一、SM58的核心功能

SM58是SAP系统中用于管理和监控异步RFC(Remote Function Call)错误日志的关键事务代码。其主要功能包括:

  1. 错误日志查看​:显示异步RFC调用的执行状态(成功/失败)及相关错误信息。
  2. 手动重试处理​:允许用户针对失败的RFC条目逐条或批量重新执行。
  3. 状态管理​:支持重置RFC作业状态(如取消挂起的任务或标记已完成的任务)。

二、常见应用场景与操作步骤

1. 数据传输异常排查

当系统间数据传输失败(例如WMS收货凭证未同步到SAP时),通过以下步骤排查:

  1. 输入查询条件​:在SM58界面中指定时间范围、目标系统(Destination)、用户或状态筛选失败条目。
  2. 分析错误日志​:查看具体报错信息(如Commit faultHTTP访问异常),定位问题根源。
  3. 执行重试​:
    • 单个条目​:选中条目后点击 ​Execute LUW​ 手动重试。
    • 批量处理​:使用事务代码 ​RSARFCEX​ 批量执行失败任务。
2. 错误类型与处理建议
  • 临时性错误​(如网络中断):直接重试。
  • 数据一致性错误​(如IDoc结构异常):需检查源系统数据格式。
  • 系统配置问题​(如RFC目标未激活):通过 ​SM59​ 检查目标系统配置。

三、相关事务代码与工具

SM58通常需与其他RFC管理工具配合使用:

  • SM59​:维护RFC目标系统配置。
  • SMQ1/SMQ2​:监控出站/入站队列的RFC任务。
  • ST22​:查看ABAP运行时错误日志,辅助分析复杂问题。

四、最佳实践

  1. 定期监控​:在高峰期或关键业务节点后检查SM58日志。
  2. 错误分类​:根据错误频率和类型制定处理优先级(如高频错误优先排查配置问题)。
  3. 自动化处理​:通过后台作业或脚本定期调用 ​RSARFCEX​ 减少人工干预。

五、注意事项

  • 权限控制​:SM58涉及系统间通信,需限制敏感操作权限。
  • 日志保留​:定期归档旧日志(通过SM58界面删除或归档功能)以避免性能问题。

如需进一步了解RFC机制或配置细节,可参考事务代码 ​SM59​ 或系统文档。

六、程序实现自动重启任务:

TABLES:arfcsstate.

DATA: BEGIN OF acttid.
        INCLUDE STRUCTURE arfctid.
DATA: END OF acttid.

DATA:
  td_arfc      TYPE TABLE OF arfcsstate,
  th_arfc      TYPE arfcsstate.

获得有错误的队列

  SELECT *
    INTO TABLE td_arfc
    FROM arfcsstate
   WHERE arfcstate IN ('SYSFAIL','CPICERR')
     AND arfcuser  IN benutzer
     AND arfcdatum IN zeitraum.

  IF sy-subrc <> 0.
    MESSAGE '没有查询到队列' TYPE 'S'.
    RETURN.
  ENDIF.

然后执行

    LOOP AT td_arfc INTO th_arfc WHERE arfcuser = th_arfc_user-arfcuser.
*--  T 使用 TCP/IP 启动外部程序 这种处理不了,继续下一条
      SELECT COUNT(*)
        FROM rfcdes
       WHERE rfcdest = th_arfc-arfcdest
         AND rfctype = 'T'.

      IF sy-dbcnt = 1.
        CONTINUE.
      ENDIF.

      acttid = th_arfc(24).
      SUBMIT rsarfcse AND RETURN WITH tid    = acttid
                                 WITH forced = 'X'.

      IF sy-subrc = 0.
        "处理成功
      ENDIF.

    ENDLOOP.
 

设置后台作业定时执行即可。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值