Skip to Content
0
Former Member
Nov 05, 2012 at 09:11 PM

IS SUPPLIED with Optional Import Parameters

480 Views

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!