on 12-15-2005 9:48 AM
Hi,
I worked myself through a tutorial which explains how to user external Services in Composite Applications (I used a connection to an ABAP system via RFC). -> I received the Functions that I needed. (BAPI_USER-GETDETAIL)
I used SAP Logon to verify that my login Data is correct.
After building and deploying my app I switched to the administator view for external Services and set up "Self defined RFC destinations" as explained in that tutorial.
BUT, when I use the service browser to test my operation that I set up in NWDS (getDetailByLastName) I get the following error message when I click on "Excecute Query":
ERROR. No business object instance found
If I use the predefined operation called "findByMultipleParameters" I get another error message...
ERROR. Exception thrown in method findByMultipleParameters. The transaction is marked for rollback.
I should have enogh rights to access the BAPIs, so there must be another problem...
Has anybody an idea???
Greetings
Sascha
Hi Sascha,
It seems that your system is not configured properly.
You can make next steps to resolve this problem:
- look into the detailed stack trace of this problem in the log file from server0/log/...;
- check availability of ABAP module by SAP GUI.
Regards,
Andrei Smolkin
EPAM Systems
<a href="http://www.netweaverteam.com/">http://www.netweaverteam.com/</a>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Andrei,
tahnk you for that fast answer...
Which log-File do you think I could see the stack trace?
In the folder "..\j2ee\cluster\server0\log\" there are 3 files and some DIRs.
The file "defaultTrace.0.trc" looks interesting, but it's full of trash... do you think it is possible to delete it, so it will be created again?
Regarding your 2nd Point:
I imported those BAPI-Functions via the "Import"-Tool which can be found in the NWDS in the Composite Application View. (Right-Click on External Services -> Import). I entered all the data needed and got access to the SAP-System, so it was possible to choose the BAPI I wanted to have... Which means, that the connection was working!
Sascha
Message was edited by: Sascha Sambale
Hi,
looking at the trace log I see the following lines, which might be important:
#1.[...] ##0#0#Info#1#/System/Server#Plain###StructureFactory registered successfully.#
#1.[...] ##0#0#Info#1#/System/Server#Plain###BusinessObjectManager registered successfully.#
#1.[...] ##0#0#Info#1#/System/Server#Plain###EndpointAliasManager registered successfully.#
#1.[...] ##0#0#Info#1#/System/Server#Plain###Additional manager registered successfully.#
But seems to crash with this stack trace:
#1.5#00300594D2EF00600000001800000C30000407F4EC2D27F3#1134648422640#com.sap.engine.services.ejb#sap.com/caf~mp~mmr~adapter~ear#com.sap.engine.services.ejb#Administrator#516#SAP J2EE Engine JTA Transaction : [c6f26220001]#Sambale45P.siller_DW2_208610850#Guest#f50922106d6211da928c00300594d2ef#ID#(J2EE208610800)ID208610850DB776732215131769504End.fd4263616d6211dab43500300594d2ef##0#0#Error##Java###
[EXCEPTION]
{0}#1#com.sap.engine.services.ejb.exceptions.BaseTransactionRolledbackLocalException: Exception thrown in method readMappingRule. The transaction is marked for rollback.
at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.readMappingRule(MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.java:570)
at com.sap.caf.mp.core.data.service.DataServiceBridge.getMappingRuleIds(DataServiceBridge.java:472)
at com.sap.caf.mp_mmr_bridge.rt.impl.RuntimeHelper.getExternalOperationConfig(RuntimeHelper.java:141)
at com.sap.caf.mp_mmr_bridge.rt.IRuntimeHelper.getExternalOperationConfig(IRuntimeHelper.java:57)
at com.sap.caf.rt.bol.da.remote.RemoteDataAccessService.queryWithoutEntityRefs(RemoteDataAccessService.java:784)
at com.sap.caf.rt.bol.da.remote.RemoteDataAccessService.query(RemoteDataAccessService.java:718)
at com.sap.user_example.besrv.user.UserServiceBean.findByMultipleParameters(UserServiceBean.java:240)
at com.sap.user_example.besrv.user.UserServiceBean.getDetailsByName(UserServiceBean.java:202)
at com.sap.user_example.besrv.user.UserServiceLocalLocalObjectImpl0.getDetailsByName(UserServiceLocalLocalObjectImpl0.java:696)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.sap.caf.rt.services.serviceaccess.ServiceWrapper.findByDataObject(ServiceWrapper.java:267)
at com.sap.caf.rt.services.serviceaccess.CAFServiceAccessBeanImpl.findByDataObject(CAFServiceAccessBeanImpl.java:223)
at com.sap.caf.rt.services.serviceaccess.CAFServiceAccessLocalLocalObjectImpl20.findByDataObject(CAFServiceAccessLocalLocalObjectImpl20.java:747)
at com.sap.caf.rt.ui.cool.generic.AspectServiceAccess.findBy(AspectServiceAccess.java:269)
at com.sap.caf.rt.ui.cool.generic.Query.execute(Query.java:218)
at com.sap.caf.ui.servicebrowser.components.visualizer.controllers.TableViewCC.execute(TableViewCC.java:320)
at com.sap.caf.ui.servicebrowser.components.visualizer.controllers.wdp.InternalTableViewCC.execute(InternalTableViewCC.java:184)
at com.sap.caf.ui.servicebrowser.components.visualizer.views.TableViewCV.onActionExcuteQuery(TableViewCV.java:356)
at com.sap.caf.ui.servicebrowser.components.visualizer.views.wdp.InternalTableViewCV.wdInvokeEventHandler(InternalTableViewCV.java:351)
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.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:417)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132)
at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:415)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:101)
at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:650)
at com.sap.tc.webdynpro.clientserver.cal.ClientManager.processRequest(ClientManager.java:155)
at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:105)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:63)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:50)
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:159)
Caused by: java.lang.NullPointerException
at com.sap.caf.mp.mmr.adapter.MMServiceRetrievalAdapter.readMappingRule(MMServiceRetrievalAdapter.java:232)
at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerBean.readMappingRule(MMServiceRetrievalAdapterCallerBean.java:125)
at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.readMappingRule(MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.java:553)
... 48 more
java.lang.NullPointerException
at com.sap.caf.mp.mmr.adapter.MMServiceRetrievalAdapter.readMappingRule(MMServiceRetrievalAdapter.java:232)
at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerBean.readMappingRule(MMServiceRetrievalAdapterCallerBean.java:125)
at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.readMappingRule(MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0.java:553)
at com.sap.caf.mp.core.data.service.DataServiceBridge.getMappingRuleIds(DataServiceBridge.java:472)
at com.sap.caf.mp_mmr_bridge.rt.impl.RuntimeHelper.getExternalOperationConfig(RuntimeHelper.java:141)
at com.sap.caf.mp_mmr_bridge.rt.IRuntimeHelper.getExternalOperationConfig(IRuntimeHelper.java:57)
at com.sap.caf.rt.bol.da.remote.RemoteDataAccessService.queryWithoutEntityRefs(RemoteDataAccessService.java:784)
at com.sap.caf.rt.bol.da.remote.RemoteDataAccessService.query(RemoteDataAccessService.java:718)
at com.sap.user_example.besrv.user.UserServiceBean.findByMultipleParameters(UserServiceBean.java:240)
at com.sap.user_example.besrv.user.UserServiceBean.getDetailsByName(UserServiceBean.java:202)
at com.sap.user_example.besrv.user.UserServiceLocalLocalObjectImpl0.getDetailsByName(UserServiceLocalLocalObjectImpl0.java:696)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.sap.caf.rt.services.serviceaccess.ServiceWrapper.findByDataObject(ServiceWrapper.java:267)
at com.sap.caf.rt.services.serviceaccess.CAFServiceAccessBeanImpl.findByDataObject(CAFServiceAccessBeanImpl.java:223)
at com.sap.caf.rt.services.serviceaccess.CAFServiceAccessLocalLocalObjectImpl20.findByDataObject(CAFServiceAccessLocalLocalObjectImpl20.java:747)
at com.sap.caf.rt.ui.cool.generic.AspectServiceAccess.findBy(AspectServiceAccess.java:269)
at com.sap.caf.rt.ui.cool.generic.Query.execute(Query.java:218)
at com.sap.caf.ui.servicebrowser.components.visualizer.controllers.TableViewCC.execute(TableViewCC.java:320)
at com.sap.caf.ui.servicebrowser.components.visualizer.controllers.wdp.InternalTableViewCC.execute(InternalTableViewCC.java:184)
at com.sap.caf.ui.servicebrowser.components.visualizer.views.TableViewCV.onActionExcuteQuery(TableViewCV.java:356)
at com.sap.caf.ui.servicebrowser.components.visualizer.views.wdp.InternalTableViewCV.wdInvokeEventHandler(InternalTableViewCV.java:351)
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.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:417)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132)
at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:415)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:101)
at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:650)
at com.sap.tc.webdynpro.clientserver.cal.ClientManager.processRequest(ClientManager.java:155)
at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:105)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:63)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:50)
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:159)
So what is going wrong...?
Hi,
Yes this log related to your problem.
From it I can say, for sure, that problem in the mapping between your business entity and external service. You can try to recreate it through the configuration application for external services mentioned by you earlier.
Did you create this mapping before through the configuration application or you create it in the CAF Designer ? In any case you can try to create mapping using this application.
Andrei Smolkin
EPAM Systems
<a href="http://www.netweaverteam.com/">http://www.NetWeaverTeam.com/</a>
Message was edited by: Andrei Smolkin
Hi Deepa,
I'm really new to SAP (R3, Netweaver,...)... Could you give me a short guide where I can map my users?
As explained before I conntected my system with my user account on our SAP-System. (with client ID, username, PW, language,...) So NWDS got the access to the BAPI list of our SAP-System. So I picked the BAPI "BAPI_USER_GETDETAL". And the connection was created.
So my connection setup was working!!!
So why do I need that user mapping then when I want to test my external service?
Greets
Sascha
Message was edited by: Sascha Sambale
Hi Sascha,
You have to map your users against R3 users using User mapping in Portal. For this first you have to goto
portal -> System configuration -> System Landscape and
in the portal content view right click -> create a new system -> R/3 System. After creating the system, open the objet and give some important properties like "connector"
where you need to give your client id,etc and etc.Then select property "DQE parameters"(not sure but will start with DQE),enter your R/3 user id and password. Similarly
select "User Management properties" and select "admin" or "user" or "admin+user" depending on whom you want to map.Create a System alias for this newly created R/3 System.You can do this using the combo at the top of system landscape editor. Thats it and ur system is ready.
Test the connection from portal itself.
Now jumping into user mapping, goto portal->user administration -> user mapping. Select a user whom u r going to use in ur application -> click edit and map him to your system.For mapping , to your right you will find a combo displaying a list of systems. Select ur R/3 system which u created, and give user/pwd information and "Save".
And yeap!!! u r done with User Mapping.
Test your application now!!!!!! It works!! Isnt it?
For further assistance, refer to this link.
http://help.sap.com/saphelp_nw04/helpdata/en/02/04b03f93fd6d3fe10000000a114084/frameset.htm
Hope this helps.
Please reward points for helpful answers.
Thanks and regards
Deepa
Ok... I didn't stand to try it BEFORE 2006.
I created a System using a Template for a dedicated webserver. I entered all data except the SNC fields in connector, Distributed Query Engine (username and pw? -> J2EE_ADMIN?) and I created my System alias.
Then I clicked on Connection Tests:
Here's what it says when I click on "Connection Test for Connectors"...
Test Details:
The test consists of the following steps:
1. Retrieve the default alias of the system
2. Check the connection to the backend application using the connector defined in this system object
Results
Retrieval of default alias successful
<b>Connection failed. Make sure user mapping is set correctly and all connection properties are correct</b>.
What could be wrong??? My connector data should be right...
Sascha
Hi Sascha,
Nice that you tried!!!!
>>Results
>>* Retrieval of default alias successful
>>* Connection failed. Make sure user mapping is set >>correctly and all connection properties are correct.
>>What could be wrong??? My connector data should be >>right...
Yes, you r right.I guess two possible reasons for your connection failure.
a) connection data should be wrong somewhere. Check the user name and password you have specied in DQE.Check whether it is the same as your user name and password for
getting authenticated to your webservice?
Apart from this check other parameters also again..
b) Have you set the user mapping for the system before
testing the connection? If not please set the user mapping for the system and try. Even in user mapping test whether the user name and password you have given is the same as web service is using to authenticate.
Hope this helps.
Please reward points if my suggestion helped you.
Thanks and regards
Deepa
This is getting worser and worser... I tried everysthing know, but I'm still getting that error message...
Which Template should I use?
SAP system using connection string?
SAP system using dedicated application server?
SAP system with load balancing?
If I use the first one, they want a connection String from me in those "Connector" settings? How does it look like?
I used the second one... I entered the following data:
Application Host: <the host where the external WAS runs>
Gateway Host: <the host where the external WAS runs>
Gateway Service: <name of the gw-service>
Logical System Name: ??? What should be here?
Remote Host Type: 3
SAP Client: 100
SAP System ID: Our System ID
SAP System Number: 00
Server Port: 3200
SystemType: SAP_R3
Could this data be right?
And under DQE, I entered the login data of my user in the external SAP-System. I did use that data for user mapping, also.
If you tell me how to set up that connection string thing, that would be cool...
Hope you can help me,
Sascha
Hi Sascha,
While trying to connect to external R/3 system,
it is okay if you give the following parameters alone.
Application Host:<Your R/3 Host name>
Remote Host Type:
SAP Client: 100(Verify the user u mentioned have access for this client)
SAP System ID: ur System ID
SAP System Number: 00
Server Port: 3200 (Verify the port)
SystemType: SAP_R3
Try connecting using SAP logon pad(GUI), whether the credentials u have given is correct. For this try login to
logon pad with the same information u gave for creating a system. I guess Gateway Host, Gateway service and Logical system name are preferred parameters and not mandatory, because I have tried connecting even without these 3 parameters.
Hope this helps you.
Please reward points for helpful answers.
Thanks and regards
Deepa
Hi,
where can I see, which port is used for the connection to the SAP System? Cause I took that 3200 from an older enterprise-internal guide. Don't know if this is still correct...!?
My Logon via SAP GUI works with the settings for the client ID, SID, USERNAME, PASSWORD. So that data MUST be right.
I'm becoming desperate.
Sascha
Hi Sascha,
Can u telnet and see with this port, if you can connect
to the server through that port. Can you try 3201 or 3208?
Please contact your R/3 system administrator and get the port id. Along with this u can also refer your other params like gateway,host and gateway service as u have mentioned previously that u r not sure about that.
Then do a telnet and verify whether the connection is succeeding through the port?
I think there is no firewall issue as u r able to login through logon pad.So try getting the port id.
That should solve your problem.
I think, you will award points for my effort.
Thanks and regards
Deepa
Mmmhhh... the Port ID is right... as it is: sapdp00 (SAP Dispatcher 00 -> Port ID: 3200).
I even don't think that this is a domain- or firewall problem, because it was possible to log in via SAP Logon GUI.
My User Mapping must be right, also.
My connection data is right. (hosts & ports)
Why do I have to face this before christmas and before New Year's Eve??? It's grim.
Sascha
User | Count |
---|---|
85 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.