if we give PO(ekko -ebeln) the its should fetch email addr (adr6-smtp_addr)
logic : Purchase order number and pass it to EKKO – EBELN, check if there is a value in EKKO – ADRNR, if yes then fetch the value and pass it to ADR6 table and get ADR6 - SMTP_ADDR. If EKKO – ADRNR is blank then get EKKO – LIFNR, pass it to LFA1 table to get LFA1 – ADRNR and then pass it to ADR6 to get the email address.
i did the code as shown below but it is not getting.
DATA : lv_ekko TYPE ekko,
lv_adr6 TYPE adr6,
lv_lfa1 TYPE lfa1.
SELECT SINGLE * INTO lv_ekko
FROM ekko
WHERE
ebeln EQ iv_po_number .
*CHECK sy-subrc EQ 0 .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_ekko-adrnr
IMPORTING
OUTPUT = lv_ekko-adrnr .
if lv_ekko-adrnr is NOT initial.
TYPES: BEGIN OF ty_email,
ebeln TYPE ebeln,
adrnr TYPE AD_ADDRNUM,
SMTP_ADDR type AD_SMTPADR,
END OF ty_email.
data: IT_email TYPE STANDARD TABLE OF ty_email.
SELECT L~ebeln L~ADRNR
A~SMTP_ADDR
INTO CORRESPONDING FIELDS OF TABLE IT_email
FROM ( EKKO AS L
INNER JOIN ADR6 AS A ON A~ADDRNUMBER = L~ADRNR )
WHERE L~ebeln = IV_PO_NUMBER.
SELECT SINGLE *
FROM adr6
INTO lv_adr6
WHERE
SMTP_ADDR eq lv_adr6-SMTP_ADDR.
else.
SELECT SINGLE * INTO lv_ekko
FROM ekko
WHERE
lifnr EQ lv_ekko-lifnr .
* lv_adr6-addrnumber = lv_lfa1-adrnr .
if lv_ekko-lifnr IS NOT INITIAL .
SELECT SINGLE * INTO lv_lfa1
FROM lfa1
WHERE
adrnr EQ lv_lfa1-adrnr .
endif.
if lv_lfa1-adrnr is NOT INITIAL .
SELECT SINGLE *
FROM adr6
INTO lv_adr6
WHERE
SMTP_ADDR eq lv_adr6-SMTP_ADDR.
endif.
endif.
an email should be send directly from the po no. as shown below.
l_email = iv_po_number. " l_st_email-name.
i am new to abap,