如何为BEQUI和BTPLN字段实现用户退出“ EXIT_SAPLIQS0_017”?

时间:2019-06-04 11:21:10

标签: sap abap netweaver

更新通知后,我想在表VIQMEL中插入受影响的设备(BEQUI)和功能位置(BTPLN)。我读了一些提到用户出口EXIT_SAPLIQS0_017的主题。但是,我从未见过它的实现,而我的也不起作用。

这是到目前为止尝试过的;我知道这是非常基础的,但是我对用户出口没有任何经验。

  data: ls_notif  type viqmel.
  data: lt_qmfe   type table of wqmfe.
  data: lt_qmur   type table of wqmur.
  data: lt_qmma   type table of wqmma.
  data: lt_qmsm   type table of wqmsm.

  select single * from viqmel into @data(ls_viqmel) where qmnum eq '000010000719'.
  select single * from tq80 into @data(ls_tq80) where qmart eq @ls_viqmel-qmart.

  ls_viqmel-bequi = '1000069'.
  ls_viqmel-btpln = '1010'.

  call function 'EXIT_SAPLIQS0_017'
    exporting
      i_viqmel = ls_viqmel
      i_tq80   = ls_tq80
    importing
      e_viqmel = ls_notif
    tables
      t_viqmfe = lt_qmfe
      t_viqmur = lt_qmur
      t_viqmma = lt_qmma
      t_viqmsm = lt_qmsm.

我恢复了viqmel结构,但是当我检查VIQMEL表时似乎什么都没有改变。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

正如Sandra正确指出的那样,您不直接调用出口而是执行它们。

  1. 创建ZXWOCU21包括仅编写这两行代码的地方

    e_viqmel-bequi = '1000069'.
    e_viqmel-btpln = '1010'.
    

您不应该手动填充参数(例如tq80),默认情况下,它们是系统预先填充的。

  1. 使用CMOD tcode(如果不存在)为包含您的用户出口的增强组件QQMA0025创建项目并激活它。这是手册

Create Enhancement Project for SAP User Exit Function using CMOD in ABAP

答案 1 :(得分:1)

您可以检查EXIT_SAPLIQS0_017中的Z“包含文件”。如果有人已经实现了它(或将其分配给他(她)),则最好在注释行中添加原因以及放置逻辑的位置。

从ABAP角度来看,基本上是在程序包中实现此Z包含。当您双击它时,GUI(或Eclipse)将导航它或弹出一个窗口(您将创建它吗?)

查找方法很简单,您可以使用cmodsmod作为标准,但是您已经知道出口名称,请尝试交易代码SE37。填写EXIT_SAPLIQS0_017并检查其中的INCLUDE z...