SAP 所用处清单(Where-Used List)更新

标准程序更新

        SAPRSEUB 更新所用处清单

        第一次运行需要很长时间(甚至以天计算),一般上线后在开发机定时运行,如果第一次运行,慎用。

        WBCROSSGT为所用处清单记录表

Z程序更新

        限定范围,减少资源消耗(将SAPRSEUB封装为Z程序使用)

* PLEASE RUN THIS PROGRAM IN BACKGROUND!
* The program will rebuild programs which belong to either:
*   - the entered software component and program names
*   - or the entered packages and program names
*   - or the entered programs only
* If none of them are entered, nothing happens

REPORT z_saprseui.
DATA g_dummyso_devc TYPE devclass.
DATA g_dummyso_prog TYPE progname_2.

* software component
PARAMETERS pa_dlvun TYPE dlvunit.
* package
SELECT-OPTIONS so_devc FOR g_dummyso_devc.
* program
SELECT-OPTIONS so_prog FOR g_dummyso_prog.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_prog-low.

START-OF-SELECTION.
  PERFORM main.

*
FORM main.
  DATA lt_tdevc TYPE TABLE OF tdevc.
  DATA ls_tdevc TYPE tdevc.
  DATA lt_tadir TYPE TABLE OF tadir.
  DATA ls_tadir TYPE tadir.
  DATA l_repid TYPE rsnewleng-programm.
  DATA lt_repid TYPE TABLE OF rsnewleng-programm.

  IF NOT pa_dlvun IS INITIAL.
    SELECT * FROM tdevc
              INTO TABLE lt_tdevc
              WHERE dlvunit = pa_dlvun
                AND devclass IN so_devc.
  ELSEIF so_devc[] IS NOT INITIAL.
    SELECT * FROM tdevc
              INTO TABLE lt_tdevc
              WHERE devclass IN so_devc.
  ELSEIF so_prog[] IS NOT INITIAL.
    SELECT name FROM trdir INTO TABLE lt_repid WHERE name IN so_prog.
  ENDIF.

* Pour chaque package, reconstruction des Object List de tous
* ses programmes
  LOOP AT lt_tdevc INTO ls_tdevc.
    SELECT * FROM tadir INTO TABLE lt_tadir
        WHERE pgmid = 'R3TR'
          AND object IN ('FUGR','FUGS','FUGX','PROG','TYPE','CLAS','INTF','LDBA','CNTX')
          AND devclass = ls_tdevc-devclass.
    LOOP AT lt_tadir INTO ls_tadir.
      CALL FUNCTION 'RS_TADIR_TO_PROGNAME'
        EXPORTING
          object   = ls_tadir-object
          obj_name = ls_tadir-obj_name
        IMPORTING
          progname = l_repid.
      IF l_repid IS NOT INITIAL AND l_repid IN so_prog.
        APPEND l_repid TO lt_repid.
      ENDIF.
    ENDLOOP.
  ENDLOOP.

  LOOP AT lt_repid INTO l_repid.
    SUBMIT saprseui
        WITH repname = l_repid
        AND RETURN.
    COMMIT WORK.
  ENDLOOP.

ENDFORM.                    "main

菜单路径更新

        在代码对象页面选择菜单如下路径可以更新当前程序中使用对象的所用处清单

 关联job

        EU_INIT:

           EU_INIT 用于完全重建索​​引,因此运行时间相应较长。它启动程序 SAPRSEUI。分析所有客户定义的程序(根据命名约定选择)并创建索引,这些索引在 ABAP 工作台中用于功能模块、错误消息、报告等​​的使用位置列表。这些索引在对话模式下自动更新。

        该作业终止后,自动安排在第二天;然后它从终止点开始。(因此,如果 EU_INIT 干扰了系统中的其他活动,则可以终止它。另见注释 759407。)

        EU_REORG:

           如上所述,索引由 ABAP Workbench 工具自动在线更新。为了尽可能降低更新这些索引的工作量,只记录更改,这意味着需要不时重组每个程序的整个索引。为了使这次重组不会干扰在线系统,EU_REORG 作业每晚运行并执行此任务。如果 EU_REORG 作业没有运行一晚,这仅仅意味着重组更频繁地在线进行。

        EU_PUT:

           EU_PUT 作业也每晚运行。它启动程序 SAPRSEUT。该程序检查客户定义的开发对象是否已通过 SAP 传输系统传输到 SAP 系统中,并在需要时生成或更新上述索引。

https://mp.csdn.net/mp_blog/creation/editor/125590232

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值