Hello ABAPers,
I have a scenario that I have almost figured out that I could use some guidance with:
I have two optional import parameters in a remote function. I want to return data from a view based on a user entering either one of the Import Parameters. I can get the function to work for one of the parameters but not both. I am using 'IS SUPPLIED' statements and either an 'IF-ELSEIF' statement or two IF statements but neither way works for both Import Parameters.
If I code the function using an IF-ELSEIF statement it works for Import Parameter 1 (IV_1), but returns erroneous data for parameter 2 (IV_2):
FUNCTION Z_EQUIP_INFO .
*"--------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_1) TYPE U_30099-SERNR OPTIONAL
*" VALUE(IV_2) TYPE U_30099-INVNR OPTIONAL
*" EXPORTING
*" VALUE(EQUIP_NUM) TYPE U_30099-EQUNR
*" VALUE(MATERIAL_NUM) TYPE U_30099-MATNR
*" VALUE(OBJECT_TYPE) TYPE U_30099-EQART
*" VALUE(DESCRIPTION) TYPE U_30099-EQKTX
*"--------------------------------------------------------------------
IF IV_1 IS SUPPLIED.
SELECT SINGLE EQUNR MATNR EQART EQKTX
FROM U_30099
INTO (EQUIP_NUM, MATERIAL_NUM, OBJECT_TYPE, DESCRIPTION)
WHERE SERNR = IV_1.
ELSEIF IV_2 IS SUPPLIED.
SELECT SINGLE EQUNR MATNR EQART EQKTX
FROM U_30099
INTO (EQUIP_NUM, MATERIAL_NUM, OBJECT_TYPE, DESCRIPTION)
WHERE INVNR = IV_2.
ENDIF.
ENDFUNCTION.
******************************************************************************************
If I code the function using two IF statements it returns accurate data for Import Parameter 2 (IV_2), but wrong data for Import Variable 1 (IV_1):
FUNCTION Z_EQUIP_INFO.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_1) TYPE U_30099-SERNR OPTIONAL
*" VALUE(IV_2) TYPE U_30099-INVNR OPTIONAL
*" EXPORTING
*" VALUE(EQUIP_NUM) TYPE U_30099-EQUNR
*" VALUE(MATERIAL_NUM) TYPE U_30099-MATNR
*" VALUE(OBJECT_TYPE) TYPE U_30099-EQART
*" VALUE(DESCRIPTION) TYPE U_30099-EQKTX
*"----------------------------------------------------------------------
IF IV_1 IS SUPPLIED.
SELECT SINGLE EQUNR MATNR EQART EQKTX
FROM U_30099
INTO (EQUIP_NUM, MATERIAL_NUM, OBJECT_TYPE, DESCRIPTION)
WHERE SERNR = IV_1.
ENDIF.
IF IV_2 IS SUPPLIED.
SELECT SINGLE EQUNR MATNR EQART EQKTX
FROM U_30099
INTO (EQUIP_NUM, MATERIAL_NUM, OBJECT_TYPE, DESCRIPTION)
WHERE INVNR = IV_2.
ENDIF.
ENDFUNCTION.
******************************************************************************************
What should I change to make this work for either optional Import Parameter? Thank you very much!