Thursday, April 10, 2014

ABAP - User Exit_Master Data





  *&---------------------------------------------------------------------*
*&  Include           ZXRSAU02_0PM_MAINTPOS_ATTR
*&---------------------------------------------------------------------*
************************************************************************
* CR-A02996 WIKKER II
* 16/08/2013       MYSKOT       RT          Enhance 0PM_MAINTPOS_ATTR
*
************************************************************************

TYPES : BEGIN OF S_MPOS,
          WAPOS   TYPE WAPOS,
          OBKNR   TYPE OBJKNR,
          PRIOK   TYPE PRIOK,
          STATUS  TYPE MPSTAT,
          AENAM   TYPE AENAM,
          AEDAT   TYPE AEDAT,
          ERNAM   TYPE ERNAM,
          ERSDT   TYPE ERSDT,
        END OF S_MPOS.

DATA: IT_MAINTP_ATTR TYPE STANDARD TABLE OF BWE_0PM_MAINTPOS,
      IT_MPOS TYPE SORTED TABLE OF S_MPOS WITH UNIQUE KEY WAPOS,
      W_MPOS LIKE LINE OF IT_MPOS.

FIELD-SYMBOLS : <FS_MAINTP_ATTR> TYPE BWE_0PM_MAINTPOS.

FREE: IT_MAINTP_ATTR.
IT_MAINTP_ATTR[] = I_T_DATA[].
FREE: I_T_DATA.

IF IT_MAINTP_ATTR[] IS NOT INITIAL.

  SELECT WAPOS OBKNR PRIOK STATUS AENAM AEDAT ERNAM ERSDT
    INTO TABLE IT_MPOS
     FROM MPOS
     FOR ALL ENTRIES IN IT_MAINTP_ATTR
     WHERE WAPOS = IT_MAINTP_ATTR-WAPOS.

ENDIF.

IF IT_MPOS[] IS NOT INITIAL.
  LOOP AT IT_MAINTP_ATTR ASSIGNING <FS_MAINTP_ATTR>.
    READ TABLE IT_MPOS INTO W_MPOS
         WITH KEY WAPOS = <FS_MAINTP_ATTR>-WAPOS
         BINARY SEARCH.
    IF SY-SUBRC = 0.
      <FS_MAINTP_ATTR>-OBKNR  = W_MPOS-OBKNR.
      <FS_MAINTP_ATTR>-PRIOK  = W_MPOS-PRIOK.
      <FS_MAINTP_ATTR>-STATUS = W_MPOS-STATUS.
      <FS_MAINTP_ATTR>-AENAM  = W_MPOS-AENAM.
      <FS_MAINTP_ATTR>-AEDAT  = W_MPOS-AEDAT.
      <FS_MAINTP_ATTR>-ERNAM  = W_MPOS-ERNAM.
      <FS_MAINTP_ATTR>-ERSDT  = W_MPOS-ERSDT.
    ENDIF.
  ENDLOOP.
ENDIF.

I_T_DATA[] = IT_MAINTP_ATTR[].

No comments:

Post a Comment