简体   繁体   中英

How to implement user-exit 'EXIT_SAPLIQS0_017' for fields BEQUI and BTPLN?

After updating a notification, I want to insert both an affected equipment (BEQUI) and functional location (BTPLN) in table VIQMEL. I read some topics that mentioned user exit EXIT_SAPLIQS0_017. However, I never saw an implementation of it and mine doesn't work.

This is what have tried so far; I know it is very basic but I'm very inexperienced with user exits.

  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.

I get the viqmel structure back, but nothing seems to have changed when I check the VIQMEL table. Any ideas?

As it correctly noted by Sandra, you do not call exits directly but rather implement them.

  1. Create ZXWOCU21 include where just write only these two lines of code

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

You shouldn't fill parameters manually (like tq80 ), they are pre-populated by system by default.

  1. Create the project in CMOD tcode (if not exists) for the enhancement component QQMA0025 which contains your user-exit and activate it. Here is the manual

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

You may check the Z "include file" from EXIT_SAPLIQS0_017 . If someone already implemented it (or assigned it to his(her), it is better to make a comment line why you add and where you put your logic.

From ABAP side, basically you implement this Z include in your package. When you double click it, and GUI (or Eclipse) will navigate it or give you a popup (will you create it ?)

How to find is simple, you can use cmod or smod as standard, but as you know already the exit name, try transaction code SE37 . Fill out EXIT_SAPLIQS0_017 and check the INCLUDE z... inside.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM