Consuming External OData services from SAP
Hi All,
I am trying to sync up SAP to an external system. Using the SAP Netweaver Gateway I am able to expose the SAP Objects as OData service so that the external system can sync with SAP data.
Now when SAP needs to consume the OData services of the external system can it do through Netweaver gateway ?
How do we build a bi-directional interface keeping both the systems in sync.
Thanks
Ravijeet
NW Gateway cannot do that. But you can do it with simple ABAP.
check here.
Implementing the REST Client - Connectivity - SAP Library
Similar Messages
-
ERROR Consuming external Web Services from JDE E1
Hello everybody,
I am trying to consume external web services from JD Edwards Enterprise One. For that, I have followed "Consuming External Web Services Tutorial".
I have followed all the steps successfully, but when the final test called from an interactive application to the business function that I had created in C get the following error messages in the log file:
[WARN ] JDE - [RUNTIME] *ERROR CallObject@13d346d: CallObject.executeRequest(): Problem executing function [consumingWS] lib [CALLBSFN] GetProcAddress failed. Please see Enterprise Server log for details. Business function cannot be found user:JDE Env:DV900*
[SEVERE] JDE - [RUNTIME] FormEngine.doEvent(): BSFN failed and need roll back!! | Form Name : P5500055_W5500055A com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function consumingWs.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function consumingWs.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
at com.jdedwards.runtime.engine.form.FormEngine.doEvent(Unknown Source)
at com.jdedwards.runtime.vtcomponent.form.VTForm.doEvent(Unknown Source)
at com.jdedwards.runtime.engine.ButtonEngine.onClick(Unknown Source)
at com.jdedwards.runtime.vtcomponent.VTButton.onClick(Unknown Source)
at com.jdedwards.runtime.vtcomponent.VTButton.processVirtualEvent(Unknown Source)
at com.jdedwards.runtime.virtual.OWVirtual.processVTEvent(Unknown Source)
at com.jdedwards.runtime.virtual.OWVirtual.processEventLoop(Unknown Source)
at com.jdedwards.runtime.virtual.OWVirtual.run(Unknown Source)
at com.jdedwards.base.util.ThreadPool$WorkerThread.run(Unknown Source)
I have tested:
1) Incorrect OCM for BSFNs.
Mapped to development Enterprise Server, so it was failing to find the BSFN.
2) Increase heap space for Java.
3) Business Function Location (C/S): "Both Client & Server Function"
4) Link the Business function with its parent DLL (CALLBSFN.dll)
I'm not sure I'd done well...
5) Update Package
From Buildlog.txt I can see the following error:
Copying \\ORACLE-JDE\E900\DV900\package\DV900FB\lib32\sCALLBSF.lib to \\ORACLE-JDE\E900\DV900\package\DVU100427\lib32\sCALLBSF.lib
Copying \\ORACLE-JDE\E900\DV900\package\DV900FB\work\jdertdll.c to \\ORACLE-JDE\E900\DV900\package\DVU100427\work\jdertdll.c
Generating Makefile: E:\e900\DV900\obj\CALLBSFN.mak
B5500055 : Not checked into pathcode, excluded from the build
.Makefile generated.
Building business functions.
************CALLBSFN************
jdertdll.c
Creating library \\ORACLE-JDE\E900\DV900\package\DVU100427\lib32\CALLBSFN.lib and object \\ORACLE-JDE\E900\DV900\package\DVU100427\lib32\CALLBSFN.exp
CALLBSFN.exp : error LNK2001: unresolved external symbol _consumingWS@12
\\ORACLE-JDE\E900\DV900\package\DVU100427\bin32\CALLBSFN.dll : warning LNK4088: image being generated due to /FORCE option; image may not run
To not build the business function is not possible the package deployment for the server becomes aware of the presence of this business function...
But I have not managed to solve the problem, do you have any idea?
Thank you and regards.Hello again,
I have modied OCM record with a correct BSSV (the name and the port number were wrong).
And other thing that I have tested is change the parent DLL with a new DLL created by me (Object Name: CALLWS.dll, Product Code: 0, Product System Code:0) and the error is:
*ERROR CallObject@25b780: CallObject.executeRequest(): Problem executing function [invocarWS] lib [CALLWS] LoadLib failed.Please see Enterprise Server log for details. Library in which business funtion resides cannot be loaded user:JDE Env:DV900*
[SEVERE] JDE - [RUNTIME] FormEngine.doEvent(): BSFN failed and need roll back!! | Form Name : P5500055_W5500055A com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function invocarWS.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
com.jdedwards.runtime.base.SystemException: There was a problem with the sever while running the business function invocarWS.\nThe current transaction has been lost.\nPlease exit the application and restart it.\nButton clicked Line number 1\nP5500055_W5500055A
at com.jdedwards.runtime.engine.form.FormEngine.doEvent(Unknown Source)
at com.jdedwards.runtime.vtcomponent.form.VTForm.doEvent(Unknown Source)
at com.jdedwards.runtime.engine.ButtonEngine.onClick(Unknown Source)
at com.jdedwards.runtime.vtcomponent.VTButton.onClick(Unknown Source)
at com.jdedwards.runtime.vtcomponent.VTButton.processVirtualEvent(Unknown Source)
at com.jdedwards.runtime.virtual.OWVirtual.processVTEvent(Unknown Source)
at com.jdedwards.runtime.virtual.OWVirtual.processEventLoop(Unknown Source)
at com.jdedwards.runtime.virtual.OWVirtual.run(Unknown Source)
at com.jdedwards.base.util.ThreadPool$WorkerThread.run(Unknown Source)
It seems like it is not possible to find the CALLWS dll... Althought it was built and compiled without errors and warnings...
I would like to debug the Business Function in C from Microsoft Visual Studio 2005, but I can't, because breakpoints are disable.
I have followed the following manual:
E1: BSFN: Debugging Business Functions Using Visual Studio .NET 2003, 2005 and 2008 (I have founded it in Oracle Support (Metalinki)).
And here they say:
"It is a normal feature of visual studio 2003/2005 to disable break point at the start of a debug session and display a warning saying no symbol is loaded. Break point will only be activated on demand when the code to debug is loaded in to the runtime memory".
I think is necessary add the referency with parent DLL (in my case, CALLWS.dll) but I don't know how can I do it. I have tested to insert in Business Function's source code the following line:
"#pragma comment(lib,"CALLWS.dll")" to force to include it, but when it was built:
************CALLWS************
B5500055.c
Replacing B5500055.obj
jdertdll.c
Creating library E:\e900\DV900\lib32\CALLWS.lib and object E:\e900\DV900\lib32\CALLWS.exp
LINK : fatal error LNK1104: cannot open file 'CALLWS.dll'
Microsoft (R) Manifest Tool version 5.2.3790.2075
Copyright (c) Microsoft Corporation 2005.
All rights reserved.
mt.exe : general error c10100b1: Failed to load file "E:\e900\DV900\bin32\CALLWS.dll". The system cannot find the file specified.
Adjusting DLL load addresses . . .
************Build Finished************
I don't understand nothing, because the path is totally right.
Any help is appreciated!
Thank you and regards.
Edited by: user12085357 on 29-abr-2010 2:55
Edited by: user12085357 on 29-abr-2010 3:02 -
Pointers regarding consuming a external web-service from SAP
Hi All,
I am trying to consume a web-service from an external system using a URL.
Our SAP system version is 4.7. I have created a custom program and calling up the web service using HTTP POST method.
For this I referred the following weblog.
https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/847. [original link is broken] [original link is broken] [original link is broken]
I modified the program according to my requirements and called the web service, but I am facing certain issues.
1. The if_http_client->send method executed successfully (sy-subrc eq 0). But the next call to the method
if_http_client->receive the program shows error.The message is very long one and I am not able to see it fully in debugging mode.
Please help me with the following questions.
1. Is there any way I can read the message returned from the web-service to see what the error was? In 4.7 we don't have the recording function as in 6.0.
2. I have disable the login prompt by calling if_http_client->propertytype_logon_popup = http_client->co_disabled.
If I don't do that it shows me a SAP Web AS login screen. Shouldn't it show me the standard http login screen?
3.In that login screen if I provide my ID password it returns the following message
'Business Server Page (BSP) ErrorBSPexception:Access to URL :<Server>:<80>/ORABPEL/DEFAULT/READDATA1/1.0 is forbidden'
Any pointers what does it mean?
4. This method seems a very lengthy process to me. Is there any other approach to this issue?
TIA
Barada.The error for Authorization was because of the HTTP proxy settings for the system.
I configured the proxy settings in the transaction SICF->Goto->Http Proxy and then the program worked fine.
Regards
Barada -
Consume External Web Service from ABAP
Hello All,
I have a Web Service existing on a Non R/3 system.
I want to access this Web Service from my Development system (SAP 6.40).
I created a Client Proxy pointing to this WSDL named "ZUSER_ARS_EXCHANGECO_UPDATE".
I have created an FM to call this Web Service and update the data to it with the following code ->
DATA: lv_proxy TYPE REF TO zuser_ars_exchangeco_update,
ws_header TYPE REF TO if_wsprotocol_ws_header,
sys_fault TYPE REF TO cx_ai_system_fault,
appl_fault TYPE REF TO cx_ai_application_fault,
lv_request TYPE zuser_ars_exchangecreate_soap1,
lv_response TYPE zuser_ars_exchangecreate_soap.
TRY.
CREATE OBJECT lv_proxy
EXPORTING
logical_port_name = 'TO_ARS'
CATCH cx_ai_system_fault .
ENDTRY.
MOVE-CORRESPONDING ip_userdata TO lv_request-parameters.
TRY.
CALL METHOD lv_proxy->create
EXPORTING
input = lv_request
IMPORTING
output = lv_response.
CATCH cx_ai_system_fault INTO sys_fault.
IF sys_fault IS NOT INITIAL.
RAISE proxy_create_system_fault.
ENDIF.
CATCH cx_ai_application_fault INTO appl_fault.
IF appl_fault IS NOT INITIAL.
RAISE proxy_create_appl_fault.
ENDIF.
ENDTRY.
But when I am trying to execute, I am getting the error "cx_ai_system_fault " with the following Error Text -> "ARERR [149] Im Steuerungsdatensatz muss ein Benutzername angegeben werden." When translated to English, using Google, it is "ARERR [149] The control record must be a user name."
The WSDL has a line as follows -> soap:header message="s0:ARAuthenticate"
How do I pass the username and password to this "ARAuthenticate" parameter?
Can someone please help me in getting this fixed?
Thanks and Regards
Gladson JacobI created an HTTP RFC Destination to the WSDL URL and provided the username and password in the RFC Connection. And called the RFC Destination in the Proxy, instead of calling the URL directly in the proxy. But after that, I am getting some new errors, for which I have not received a solution yet. So, still stuck!!!
For steps on creating a Proxy, I need to know the ABAP version your are using. -
Error while consuming Odata service from Gateway client i.e /iwfnd/gw_client
Hello Experts.
I am facing below an error while consuming the Odata service from GW client... The error is "No service found for the namespace /IWFND/,name ZTEST_STOREROOM_SRV,version 001". Even i have tried to deep dive in /IWFND/Error_log but no use..
Actually what I was doing :- My aim is to connect multiple back end systems in the same server with the help of Aliasing concept.. I have created multiple aliases and added in the /IWFND/MAINT_Service transaction.. but i am not getting how to consume the service..
I have followed the solution upto some extent in the link => Multiple Origin Composition - SAP NetWeaver Gateway Foundation (SAP_GWFND) - SAP Library
Can you please let me know how to resolve this.. Also please let me know, the syntax for the URI...
Your help is highly appreciated..
Please find the screenshot attached.
Thanks,
Srinivas.Hello @Nrisimhanadh_Yandamuri
Thanks for your reply..
I have got all the required authorization.. But still I am not able to hit the service.. Please let me know what could be the solution..
Thanks,
Srinivas. -
Unable to consume Enterprise Service from SAP Service Registry
Hi,
I am trying to make use of a Enterprise Service available at the SAP's Service Registry (http://sr.esworkplace.sap.com/) in a Composite Application. I am using NWDS 7.1 for this purpose.
The steps that I follow are as follows.
1) I try importing the Web Service by right clicking the external node under the Composite Application and give the necessary login credentials for the SAP Service Registry.
2) I click on the "Show Advanced" link under which I make following selection:
BrowseByApplication->ERP Foundation->Business Partner Data Management->Employee
Now my problem is after I select the Employee node, the 'Next' button is not enabled on the Service Registry wizard.
Can anyone give an indication of why this might be the case. You may also want to know that at this stage I have still not installed NW AS CE 7.1.
Any help would be much appreciated.
Thanks,
ShaileshHi David,
Yes I was able to consume the ESOA enterprise services from SAP's ES Workplace, although I am not inside the SAP network.
As mentioned by me in my earlier post, the problem that I was facing was faced because I used to access internet through an internal proxy server which required me to pass my NT domain credentials.
In order to access ES workplace from NWDS would mean that NWDS will have to access the internet, but this used to fail despite my specifying the proxy server settings in the Preferences menu of NWDS.
I was able to overcome this problem by installing an ISA Firewall client on my m/c and in the proxy settings of the NWDS specifying a direct connection to the internet. This helped me to access the SAP's ES workplace inside NWDS, once you are able to select the available ES from the SAP workplace you will be able to utilize them in your application.
Also, once you deploy the application, the runtime, i.e. WAS will also have to be configured to access the internet, this can be done by specifying proxy settings under Global System settings options.
Hope this helps,
Shailesh -
Error while consuming external webservice URL in SAP
Hello every one,
I am getting below error in sap while consuming external web service URL .
HTTP error (return code 405, message "Method Not Allowed")
Can any one help me on this.
Thank You.
VijayHi Vijay,
Did you check if you are using full correct UURL. That happens with incorrect URL.
Thanks,
Ravi -
Consuming External Web Services in Web Dynpro Java
Hi All,
I an trying to consume external web service in Web dynpro java using Adaptive Web Service Model.
But getting below mentioned error while executing the web service
Exception on execution of web service with WSDL URL 'D:\Web Service Project\CurrencyConvertor.asmx.xml' with operation 'ConversionRate' in interface 'CurrencyConvertorSoap'
Steps i followed are as below:
1. Created Adaptive Web Service Model for this i select WSDL source as "Local File System or URL"
In next step i select No logical destination radio button and click on next
In next step, browse the WSDL file and successfully import the WSDL file.
2. After successfully importing the WSDL file i wrote below code in Init method:
WebModel modelweb = new WebModel();
Request_ConversionRate reqConversion = new Request_ConversionRate(modelweb);
ConversionRate conversion= new ConversionRate(modelweb);
reqConversion.setConversionRate(conversion);
wdContext.nodeRequest_ConversionRate().bind(reqConversion);
3.After that execute the model - code is given below :
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentRequest_ConversionRateElement().modelObject().execute();
wdContext.nodeResponse().invalidate();
wdContext.nodeConversionRateResponse().invalidate();
catch(Exception e)
manager.reportException(e.getMessage(), false);
Please let me know how to resolve this.
Thanks
SandyHi,
You need to use destinations for metadata and modeldata.
Configure those destination in Visula admin.
you can refer to following link.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/b2bc0932-0d01-0010-6d8e-cff1b2f22bc7
Regards,
Shruti. -
How to use Alias name in OData service in SAP HANA
Hi,
I need to change one column name with alias of another name in odata service definition or odata url running in rest client. I am trying to give alias name with as key in the service definition like sql query.
ex:
There is one table with column name of PRODUCT_ID. I exporting that table via odata service to SAP UI. In the UI i dont want the product id column as PRODUCT_ID. It should be ike "Prodcut". Like we are using in SQL example
select "PRODUCT_ID" as "Product" from "producttab";
But i can't use as key for alias name. So i am getting syntax error.
I have tried in rest client also ie executing odata file in rest based service. But i got error only.
If anyone knows about this alias name in odata service, Please help me to resolve this issue..Hi Thomas
Thanks for your reply.
Actually in odata service definition i am using attribute and calculation views only. But in some case from the model view itself i need to use some alias names to the UI through odata service.
For example in attribute view i have some columns with name col1,col2... I am getting those columns in UI using odata service, for particular col2 column i need to change column name as product. And i am using the same view as source of another odata service in that service i need to change that column name as productname.
In that case i need alias name usage. So that only i am searching alias keyword in odata service.
Is there any possibility to use alias names in odata service. -
Calling external web service from XI 3.0
Does anyone know how I can call an external web service from xi to post a message? I have a WSDL for the web service.
Hi,
Refer the how to guide, How To Develop a Simple Web Service Application Using SAP NetWeaver Developer Studio & SAP XI, You can find at ,
https://websmp106.sap-ag.de/nw-howtoguides
--> EXCHANGE INFRASTRUCTURE.
Or
https://websmp106.sap-ag.de/~form/sapnet?_SHORTKEY=01200252310000071155&_SCENARIO=01100035870000000202
Yes, u may use WSDL.
Regards,
Anirban. -
Calling an external web service from SharePoint 2010
Hi Friends,
Idea is to call an external web service from SharePoint 2010 list.
Can we do this using visual studio 2010, how.
another pointers, please advise.Hi,
You can create Windows Communication Foundation (WCF) web services that you can consume as external content types from Microsoft Business Connectivity Services (BCS).
For more information, you can refer to:
http://msdn.microsoft.com/en-us/library/office/gg318615(v=office.14).aspx
http://www.c-sharpcorner.com/UploadFile/Roji.Joy/connecting-to-a-web-service-using-business-connectivity-serv/
http://blogs.msmvps.com/windsor/2011/11/04/walkthrough-creating-a-custom-asp-net-asmx-web-service-in-sharepoint-2010/
Best Regards,
Linda Li
Linda Li
TechNet Community Support -
Calling External Web Service from Workflow
Hello Gurus,
I'm working on a workflow development in which I have to invoke an external web service (non-SAP) from a workflow task. As soon as the work item is created in SAP, I need to send a notification via web service call. So I thought of having a workflow step to call the web Service.
(1) Can I use WF_EXTSRV wihout having a BSP application.? There is no BSP application in my case.
(2) What are the possible options I have to achieve this?
Thanks
Steve.Hi,
I don't see a reason why you should necessarily use WF_EXTSRV.
Just create ABAP class in SE24, for example ZCLASS. Add interface IF_WORKFLOW to the interface tab. Implement the interface methods. Actually you don't really even have to implement them, just go into the methods and activate them. Now you have a workflow compatible ABAP class.
Now create new static&public method to it, for example CALL_WEBSERVICE. Add any importing and exporting parameters that you need (what info you need from workflow to call the web service and vice versa). Code your web service call from this new method.
Create new task in PFTC. Call your new method ZCLASS->CALL_WEBSERVICE. from the task. Add the task as a new step into the workflow in a suitable place.
Regards,
Karri
Edited by: Karri Kemppi on Nov 30, 2011 10:04 PM -
Calling a SharePoint Web Service from SAP??
Hi Everyone,
I have been following the below link to call a SharePoint Web Service from SAP.
Consuming Microsoft SharePoint Web Services in SAP using Basic Authentication
But after entering the URL this pops up :
and I enter my SAP username and password, then I get this error:
But I have full SAP authorization.
Please can someone advice or help on this problem.
Thank you.Hi,
It accepts WSDL files, but only using basic authentification. I had the same problem. Probably you have NTLM authentification. Check note 1441809 - Logon fails when using IIS and NTLM authentication
Thanks,
Efren -
RDE: Using an external ODATA service
Hi,
I'm trying to use an external oData service in a RDE "SAP Fiori Start application" Project.
I've added the service to the HCP Destinations page as well as giving it the additional property "RDEEnabled=true" but it still doesn't appear in the RDE: Data Connection screen in the catalog.
Any tips?
Thanks,
DickHello Richard,
then this environment would have to provide an OData service /IWFND/CATALOGSERVICE with a collection ServiceCollection that has the same structure as the one provided by NetWeaver Gateway, because this is what the River RDE "SAP Fiori Start application" template uses to find applicable services.
Best regards
Frank -
Access cloud for customer Odata Service from HCP
Hi
I have a UI(sapui5) which consumes ODATA Service from "cloud for customer" system.
I am using connectivity proxy servlet(using destinations) to avoid cross origin issue. when i deploy and access this UI from cloud, the response of the odata service is " HTTP status 500 javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated".
I tried giving the http url and that says "502 bad gateway".
How to resolve SSL issue for cloud.?
Is there any other configuration that needs to be done to consume ODATA from "Cloud for customer" system
Regards
PriyalHi Priyal:
For the SSL handshake at the destination level either you would have to set the property "TrustAll=TRUE" or you have to create a JKS keystore which contains the Server Certificate for the Cloud for customer system and then upload this either via the Admin cockpit (at destination level) or deploy the same via the NEO console tool.
Best regards
Venki
Maybe you are looking for
-
Thumbnail view crashing FCP -- Kona3 the problem?
For larger projects, running bins in thumbnail view crashes FCP. Most of the time, I'm editing 6 to 8 min. stories for a news magazine format show. We shoot on Sony XDCAM, so usually 2 or 3 disks per project (roughly 44 mins of HD viddy per disk, wit
-
ADF: Web Service Data Control
Hi, I have created a simple Web Service with no input arguments, then create a data control for it. I just drag-and-drop this data control to a JFrame to create a JTable and the Web Service result is automatically displayed. Now I want to create a mo
-
Unable to update Requester and Deliver to location field in iProcurement
Hi, I am unable to update the 'Requester' and 'Deliver to location' field in iProcurement Preferences. i am trying to change the default settings in IProcurement Prefernces(MyProfile page(xml)) 1)Navigation ->iProcurement Hompage->Preferences->iProcu
-
Where to find proDAD heroglyph 2.5 to download?
Hello, Can anyone help me out please? I tried to find proDAD heroglyph 2.5 to download but there is no direct link i can find. Please can anyone help me? A big thanks
-
How to make mounted disk image appear in sidebar
Hi all, Previously, I had inadvertently dragged the icon for a mounted disk image off the sidebar. It made the cool "poof" thing. I then checked if it was really unmounted using disk image. It was not, so I unmounted it there. Subsequently, when I wo