Business requirement : - For VENDOR_ATTR get the vendor Emil ID
But vendor Email id stores the table ADR6 but this table don’t have vendor.
First give the vender id in LFA1 table now you will get the address number.
Ex – 00000001 and address number - 1234567
Go to the ADR6 table
Give the address no 1234567
now you will get the E-mali address
- But user want see the in VENDOR_ATTR related the reports.
according to user requirment wrtie the code in the CMOD
Then go to 0VENDOR_ATTR
extract structure and then creae the append structure ex- ZBW_EMAIL
Function exit – EXIT_SAPLRSAP_002 – Master data attribute
CMOD CODE
WHEN'0VENDOR_ATTR'.
FIELD-SYMBOLS : <FS_VEND> TYPE BIW_LFA1_S.
DATA : IT_VENDOR TYPESTANDARDTABLEOF BIW_LFA1_S.
TYPES : BEGINOF LS_LFA1,
LIFNR TYPE LIFNR,
ADRNR TYPE ADRNR,
ENDOF LS_LFA1.
DATA : IT_LFA1 TYPESTANDARDTABLEOF LS_LFA1,
WA_LFA1 LIKELINEOF IT_LFA1.
TYPES : BEGINOF LS_ADR6,
ADDRNUMBER TYPE AD_ADDRNUM,
SMTP_ADDR TYPE AD_SMTPADR,
ENDOF LS_ADR6.
DATA : IT_ADR6 TYPESTANDARDTABLEOF LS_ADR6,
WA_ADR6 LIKELINEOF IT_ADR6.
IT_VENDOR[] = I_T_DATA[].
IF IT_VENDOR[] ISNOTINITIAL.
SELECT LIFNR ADRNR FROM LFA1
INTOTABLE IT_LFA1 FORALL ENTRIES IN IT_VENDOR
WHERE LIFNR = IT_VENDOR-LIFNR.
IF SY-SUBRC = 0.
SORT IT_LFA1 BY ADRNR.
SELECT ADDRNUMBER SMTP_ADDR FROM ADR6
INTOTABLE IT_ADR6 FORALL ENTRIES IN IT_LFA1
WHERE ADDRNUMBER = IT_LFA1-ADRNR.
IF SY-SUBRC = 0.
SORT IT_ADR6 BY ADDRNUMBER.
ENDIF.
ENDIF.
ENDIF.
REFRESH IT_VENDOR[].
LOOPAT I_T_DATA ASSIGNING<FS_VEND>.
READTABLE IT_LFA1 INTO WA_LFA1
WITHKEY LIFNR = <FS_VEND>-LIFNR BINARYSEARCH.
IF SY-SUBRC = 0.
READTABLE IT_ADR6 INTO WA_ADR6
WITHKEY ADDRNUMBER = WA_LFA1-ADRNR BINARYSEARCH.
IF SY-SUBRC = 0.
<FS_VEND>-ZZSMTP_ADDR = WA_ADR6-SMTP_ADDR.
ENDIF.
ENDIF.
CLEAR : WA_LFA1, WA_ADR6.
ENDLOOP.
0VENDOR_ATTR output with Vendor Email id
Hope it will help.
Thanks,
Phani