cancel
Showing results for 
Search instead for 
Did you mean: 

Populate values in multiple dropdowns

Former Member
0 Kudos

Hi All,

The following is the Model defined and mapped in Custom and View controllers.

+ZField_Value_Request_Input

+Input_Tab

-KeyFld

-Ordertxt

-Tabname

-ValFld

+Output

+Return_Tab1

-KeyFld

-Ordertxt

-Tabname

-ValFld

+Return_Tab2

-KeyFld

-Ordertxt

-Tabname

-ValFld

I use this model to populate values in the 2 dropdownbykey ui elements.

I need to pass some input values like keyfld, Tabname, valfld as a structure.

If I want to populate values in 2 different dropdowns, I have to pass 2 records as input parameters in the Input_Tab.

Then Return_Tab1 has values for the first dropdown and Return_Tab2 has values for the 2nd dropdown.

I test this RFC in SAP GUI, it works fine.

Z_Field_Value_Request_Input input = new Z_Field_Value_Request_Input();

IPrivateWorkOrderProcessView.IZ_Field_Value_Request_InputNode valueNode = wdContext.nodeZ_Field_Value_Request_Input();

IPrivateWorkOrderProcessView.IZ_Field_Value_Request_InputElement valueElement = valueNode.createZ_Field_Value_Request_InputElement(input);

//To retrieve first dropdown values

Zf4_Help objDropdown1 = new Zf4_Help();

objDropdown1.setKey_Fld("bname");

objDropdown1.setVal_Fld("bname");

objDropdown1.setTabname("USR01");

objDropdown1.setOrdertxt("bname");

valueElement.modelObject().addInput_Tab(objDropdown1);

//To retrieve second dropdon values

Zf4_Help objDropdown2 = new Zf4_Help();

objDropdown2.setKey_Fld("PSPNR");

objDropdown2.setVal_Fld("PSPNR");

objDropdown2.setTabname("PRPS");

objDropdown2.setOrdertxt("PSPNR");

valueElement.modelObject().addInput_Tab(objDropdown2);

wdThis.wdGetWorkOrderCustomControllerController().executeZ_Field_Value_Request_Input();

int size = wdContext.nodeZ_Field_Value_Request_Input().nodeOutput().nodeReturn_Tab().size();

After execute this code, size is 0 but it should be 20.

What's wrong in this code?

Can anyone help me to resolve this?

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Sundar,

At very first point:

There could be two options for this.

1. Change Z RFC, and make only one output table. So, whatever field you have provided return dropdown values for that. Then, call this RFC once again for another field. It is very simple.....

2. If at all, you want to pass two fields and want result in two output tables then,

use following code.

Z_Field_Value_Request_Input input = new Z_Field_Value_Request_Input();

IPrivateWorkOrderProcessView.IZ_Field_Value_Request_InputNode valueNode = wdContext.nodeZ_Field_Value_Request_Input();

valueNode.bind(input);

//To retrieve first dropdown values

Zf4_Help objDropdown1 = new Zf4_Help();

objDropdown1.setKey_Fld("bname");

objDropdown1.setVal_Fld("bname");

objDropdown1.setTabname("USR01");

objDropdown1.setOrdertxt("bname");

input.addInput_Tab(objDropdown1);

//To retrieve second dropdon values

Zf4_Help objDropdown2 = new Zf4_Help();

objDropdown2.setKey_Fld("PSPNR");

objDropdown2.setVal_Fld("PSPNR");

objDropdown2.setTabname("PRPS");

objDropdown2.setOrdertxt("PSPNR");

input.addInput_Tab(objDropdown2);

wdThis.wdGetWorkOrderCustomControllerController().executeZ_Field_Value_Request_Input();

You should get values with above code.

Also check executing RFC in R3 system.

Regards,

Bhavik

Former Member
0 Kudos

Bhavik,

I have changed the code as you said.

And I have added this code,

int size = input.getOutput().getReturn_Tab().size();

I'm getting an error:

java.lang.NullPointerException

I tested this RFC in R/3 it is working fine and returns 20 records.

Thanks

Sundar

Former Member
0 Kudos

Hi Sundar,

To check the size of the output, check with the same code:

int size = wdContext.nodeZ_Field_Value_Request_Input().nodeOutput().nodeReturn_Tab().size();

It should give you results.

Let me know still you are not getting values.

Regards,

Bhavik