Consumer WebService in S/4HANA ABAP - web-services

I am a new developer on SAP and I perform a task that requires the consumption of a Web Service. But when I download the WSDL file from my local environment, I have some activation issues. Indeed I cannot activate it because there is a recursivity (recursion) in a method. ABAP does not take recursions into account unless translating it to XSDany and I don't know how I can no longer modify the WSDL file since it belongs to another service. Thanks in advance .

SAP has a lot of limitation about WSDL. You can download and edit WSDL locally then use it for service creation.

Related

how to call external webservice in salesforce APEX

I'm new to SFDC. I need to perform integration between SFDC and EBS. I have a SOAP webservice from EBS to create party,account, account site and site details.
Now i need to call this webservice in SFDC(using APEX). Can you please let me know how i can achieve this (Expecting Step by step explanation) or any document which will tell me how this can be achieved.
Salesforce provides an integrated tool called Wsdl2Apex. It can be used to create Apex classes from the WSDL to call the web service from Apex. See SOAP Services: Defining a Class from a WSDL Document, which includes step by step instructions on how to generate the Apex classes from a WSDL.
Remember that you will also need to setup a Remote Site to allow the callout to the web service URL.
There are a couple of alternatives depending on how complicated your WSDL is.
Firstly, there is also an open source version of Wsdl2Apex.
Secondly, I've created an independent tool that has increased support for various WSDL features. See Dreamforce 2014 Presentation - Improved Apex support for SOAP based web services.

Is there a way to find out if a updated a service in WSO2 application server?

I have a simple question if it make sense in the context of WSO2 Application server.
I want to write a module, which tells me if i updated a service. The service is an axis2 SOAP service. I know how to write modules for axis2 services inside axis2 engine. But if i use the WSO2 interface, and either delete a service, update a service or add a service, Is there a way to find out that i performed these activities?.
In short, can i intercept the messages that i uploaded a new module or i uploaded a new service or i changed the service.
thanks you...
You could write a Axis2 Observer for this, take a look http://asanka.abeysinghe.org/2008/10/how-to-writing-axis2-observer.html

how to publish and discover a java web service

I am new to developing web services using java. I have an academic project where I need to do dynamic service composition. For that I can't directly create a service-client for a particular service because if I do so then that client will call that particular service only. Client need to search various web services and then out of those services select any one at run time and also call that service at run time.
I was able to develop the web service(JAX-WS) using Eclipse(indigo), I also created the client for that web service and every thing is working fine. Now my problem is that while creating the client I am hard coding the client to call that particular web service only(since I am creating the client using the WSDL file of the service). However I actually need to call any one of the searched service, but for that I need to publish the service some where then discover it and then call it.
I tried publishing the service to juddiv3. But on juddiv3 I could only publish the sample service supplied with the juddiv3. When I try to publish service created by me then it is not getting displayed in the group of published services.
Is there any other UDDI server which I could install on my local machine and then publish and discover the service from that. Also I was not able to figure out how to create a client that will modify itself at run time to call any one service out of various searched services.
Kindly provide the necessary steps and code.
Thanks
You can use jUDDI (http://juddi.apache.org/ ).
juddi is based on UDDI v2.0, v 3.0 .
Here, you can publish as well as discover your web service.
For integration, you have to make some application which integrates with jUDDI.
But I think for your academic project, and for your purpose, jUDDI is best suitable! ( :) )
jUDDI has a boat load of examples in the source code trunk. You may want to check them out. It's difficult to guess what the problem is from the little information you've provided. Consider contacting the jUDDI team for further assistance. http://svn.apache.org/repos/asf/juddi/trunk/juddi-examples/. There's also additional document for working with UDDI in the jUDDI user's guide, which is at the jUDDI web site
You cannot directly publish on jUDDI. You need to create publisher entities in jUDDI server also. You'll find Rename4Sales and Rename4Marketing examples in 'Classes' folder in the standalone server's juddi application. Use these XMLs as your basis and create your own entity. You also need to configure the server's login credentials.
I suggest you follow the tutorials on jUDDI blog.

Does A Web Service Have To Be Registered?

I'm learning about web services and most of the resources I've been reading talk about registering your web service once it's ready for use by others. Is registering a web service required to use the service?
For example, let's say I have a web application on a company intranet and I create another web service app that retrieves some sort of useful information to be displayed on this private intranet site. Would this new web service require being registered just so my web app can use it or can the web app simply interface directly to the new web service (following the WSDL file) without the need of some sort of UDDI registry?
You can certainly use the service without the UDDI registry.
I have created several Web Services and have immediately used them without registering them. Registration gives others confidence that your Web Service is legitimate and descriptions of how to interact with those services.
Imagine doing development where you have to register any Web Service before using it. Yikes!
No, not at all.
You are probably talking about API directories you may register your WS at. Like UDDI or what it’s named. Entirely optional.
Nobody uses UDDI anymore. It's an idea whose time has come and gone.
It was thought that there would be public registries of web services that everyone would use to find a web service to meet their needs. That never happened.
How could either the service or the app know whether or not the service was registered?
Furthermore, why would they care?
If you're trying to use service orientation the right way, your web services should be registered within a service registry. The registry should contain the published contract of the services and any meta-data that helps the discovery process.
A different questions is: does a service consumer program need to look up a registry and dynamically bind the service it needs to call? NO, NOT AT ALL.
But then, what discovery process am I talking about?
I'm referring to a human (developer, architect, etc.) who is designing/developing a program that needs to call a service. This person should have means to search what services are available in his/her organization. If not, the benefit of reusing services is compromised.
Discovery is also about humans finding out there's a service somewhere in the IT organization that offers the functionality they want.
In this case, the registry can be as simple as an html report that is created and updated manually or generated by parsing (xslt comes handy) the wsdl files.

Logging ASMX Requests and Responses from Client

I've got a C# web application which I can't easily update the code of. However, I can make configuration changes to the application.
The application calls out to a third-party ASMX web service, and I really need (if at all possible) to log the full XML requests and responses. I have no control over the web service so I have to do it from the client.
I'm not using WCF - this is standard ASMX web service calls.
Is there any way I can log the XML requests and responses from the client web app without having to redeploy the code?
Thanks in advance
John
I don't know of any way to do this without changing the application. You might get away with creating a SoapExtension as a separate binary, then storing it in the \bin folder and changing the web.config to point to it. Still, adding a new binary may very well be considered "changing the application".
Certainly, ASMX has no configurable logging that does not require coding.