cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamically passing selected value country to import parameter of Bapi

Former Member
0 Kudos

i have two input fileds in first one i am calling a Country bapi and displaying country code and country name, now depending on the selected country code i have to pass this code dynamically to inport parameter of second bapi that is region Bapi and excute this bapi then diplay region code and region name in second input filed .

i am abel to call country bapi, and select country bapi but if pass this to import of region bapi it throws array index out of bounds exception.

Rgeards

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Please post the stacktrace.

Armin

Former Member
0 Kudos

java.lang.ArrayIndexOutOfBoundsException: -1

at com.sap.mw.jco.JCO$MetaData.getType(JCO.java:9622)

at com.sap.aii.proxy.framework.core.JcoBaseTypeData.setElementValue(JcoBaseTypeData.java:731)

at com.sap.tc.webdynpro.modelimpl.dynamicrfc.DynamicRFCModelClass.setAttributeValueAsString(DynamicRFCModelClass.java:679)

at com.sap.bungeregion.Z_Bapi_Ca_Regio_Input.setI_Land1(Z_Bapi_Ca_Regio_Input.java:192)

at com.sap.bunge.DemoComp.setRegionValues(DemoComp.java:229)

at com.sap.bunge.wdp.InternalDemoComp.setRegionValues(InternalDemoComp.java:232)

at com.sap.bunge.DemoCompView.onActionselectRegion(DemoCompView.java:143)

at com.sap.bunge.wdp.InternalDemoCompView.wdInvokeEventHandler(InternalDemoCompView.java:220)

at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)

at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleAction(WebDynproMainTask.java:101)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:304)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)

at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:248)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)

Former Member
0 Kudos

Didn't this help?

Armin

Former Member
0 Kudos

This thread will not help

JCO connections are alredy steup other bapi's are working

i would like to know why at all this error i am getting when a string (country) is passed to import parameter of bapi.

Former Member
0 Kudos

<b>386</b> wdContext.currentContextElement().setCountry("US");[this statement has pick country from bapi actually i am hard coding]

[i am passing the country code to region bapi here]

<b>387</b> inputRegion.setI_Land1(wdContext.currentContextElement().getCountry());

[excuting the region bapi]

try {

wdContext

.currentZ_Bapi_Ca_Regio_InputElement()

.modelObject()

.execute();

//wdContext.nodeOutput().invalidate();

} catch (Exception ex) {

ex.printStackTrace();

}

Following is the stack trace

java.lang.NullPointerException

at com.sap.bunge.VendorSetupCustomController.selectRegion(VendorSetupCustomController.java:386)

at com.sap.bunge.wdp.InternalVendorSetupCustomController.selectRegion(InternalVendorSetupCustomController.java:741)

at com.sap.bunge.VendorSetupCustomController.wdDoInit(VendorSetupCustomController.java:164)

at com.sap.bunge.wdp.InternalVendorSetupCustomController.wdDoInit(InternalVendorSetupCustomController.java:691)

at com.sap.tc.webdynpro.progmodel.generation.DelegatingCustomController.doInit(DelegatingCustomController.java:73)

at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)

at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)

at com.sap.tc.webdynpro.progmodel.controller.Component.getCustomControllerInternal(Component.java:436)

at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:374)

at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:403)

at com.sap.tc.webdynpro.progmodel.context.MappedAttributeInfo.initAttributeMapping(MappedAttributeInfo.java:304)

at com.sap.tc.webdynpro.progmodel.context.MappedAttributeInfo.init(MappedAttributeInfo.java:263)

at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAttributes(NodeInfo.java:669)

at com.sap.tc.webdynpro.progmodel.context.DataNodeInfo.doInit(DataNodeInfo.java:233)

at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:654)

at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:40)

at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)

at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:540)

at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:422)

at com.sap.tc.webdynpro.progmodel.view.ViewManager.init(ViewManager.java:130)

at com.sap.tc.webdynpro.progmodel.view.InterfaceView.initController(InterfaceView.java:41)

at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)

at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.displayToplevelComponent(ClientComponent.java:135)

at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:392)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:608)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)

at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:248)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:48)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)

what may be the reason

Helpfull answers will be rewared suitably

Murali

Former Member
0 Kudos

Are you sure you get a NullPointerException in line 386 containing


wdContext.currentContextElement().setCountry("US");

I don't believe this.

Armin

Former Member
0 Kudos

Sorry it's in line 387

Former Member
0 Kudos

OK, the variable inputRegion contains NULL. Why?

Armin

Former Member
0 Kudos

That's what i am not getting, after all i am <b>passing</b> country code to import parameter of BAPI inputRegion.setI_Land1().

why at all it should throw null pointer here

is it error in R/3 side???

Former Member
0 Kudos

Kind of a dumb check but have u created an object for the reference inputRegion

inputRegion = new bapi()

I know its a dumb check but just thought cos ur getting inputRegion = null.

Former Member
0 Kudos

Can you show how the variable inputRegion is declared and assigned?

Armin

Former Member
0 Kudos

//@@begin others

Z_Bapi_Ca_Regio_Input inputRegion;

//@@end

and in Customcontroller wdInit(){

inputRegion = new Z_Bapi_Ca_Regio_Input();

wdContext.nodeZ_Bapi_Ca_Regio_Input().bind(inputRegion);

}

any suggestion

Former Member
0 Kudos

Can you select the variable "inputRegion" and do a Source -> Find Occurences in File?

Is there any place where you assign NULL to the variable?

Armin

Former Member
0 Kudos

nowhere i am assigning null to "inputRegion" .