Consuming a Web Service in Perl - Import parameter

Hey,
i tried to consume a SAP Web Service with perl... Just calling the Web Service works fine, but I am not able to transfer a parameter.
Here is the perl code:
my $sapsoap = SOAP::Lite
    -> uri('urn:sap-com:document:sap:soap:functions:mc-style')
    -> on_action(sub { return '""' })
    -> proxy("http://USER:PW\@SERVER:PORT/sap/bc/srt/rfc/sap/z_read_eem_scenario_exe/110/z_read_eem_scenario_exe/z_read_eem_scenario_exe");
my $method = SOAP::Data->name('ZReadEemScenarioExe')
    ->attr({xmlns => 'urn:sap-com:document:sap:soap:functions:mc-style'});
my $params = SOAP::Data->value(
    SOAP::Data->name(Input => $input));
my $result = $sapsoap->call($method => $params);
my $output = $result->result;
In the RFC-Function I declared the variable "INPUT" as Type String and importing parameter.
Part of WSDL:
- <wsdl:types>
- <xsd:schema attributeFormDefault="qualified" targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style">
- <xsd:element name="ZReadEemScenarioExe">
- <xsd:complexType>
- <xsd:sequence>
  <xsd:element name="PInput" type="xsd:string" minOccurs="0" />
  </xsd:sequence>
  </xsd:complexType>
  </xsd:element>
- <xsd:element name="ZReadEemScenarioExeResponse">
- <xsd:complexType>
- <xsd:sequence>
  <xsd:element name="POutput" type="xsd:string" />
  </xsd:sequence>
  </xsd:complexType>
  </xsd:element>
  </xsd:schema>
  </wsdl:types>
Any suggestions?

Here's how I send an input parameter in one of the scripts I've written:
    my $rcc = $rfc->function_lookup("SXMI_XMB_SYSLOG_READ");
    my $slr = $rcc->create_function_call;
    $slr->SERVER_NAME($server[$x]);
    $slr->EXTERNAL_USER_NAME('GOOFY');
    $slr->invoke;

Similar Messages

  • Consuming SAP web services with tables

    I'm doing kind of feasibility study on consuming SAP web
    services from CF.
    So far so good, but I'm stuck dealing with tables
    (import/export parameters in SAP world).
    I know how to receive a table object from SAP functions:
    * With Apache Axis v1.2: pass an empty CF structure as a
    parameter
    * With Apache Axis v1.4: pass an empty CF array as a
    parameter
    Then the parameter is filled with data (replaced with Java
    object) and we can just parse the object accordingly.
    My question here is whether or not we can pass a *table with
    actual records*.
    For example, I want to pass a table with multiple records to
    update DB records under SAP.
    I tried passing (1) CF array of structure and (2) Java
    ArrayList with no chance.
    The web service call itself completes without errors (no
    method signature error), but the SAP function seems to see the
    parameter as an empty table.
    Anyone has been successful with this case?
    Any suggestion would be much appreciated.

    Thanks Dan,
    Unfortunately CF query object didn't work either.
    Now I'm looking at the code generated by Flex Builder to see
    how the classes are like ;-)
    It's just an ArrayCollection of simple value objects
    (representing a row).
    So CF array of structure or Java ArrayList looks a reasonable
    approach though they don't at all.

  • Stumbling...Consuming a Web Service

    I have written much code to publish and consume web services under MS .NET. Now I need to do the same in Java on an Oracle Portal platform. The help/docs were quite useful in getting me to create the code for the web service and the stub for accessing a web service. But now I'm suddenly lost. The stub for the web service client has a method with signature that takes Elements and returns a Vector. It appears that "Element" refers to an XML Element (probably created via DOM) and that "Vector" is a Vector of such Elements as returned in the response. I assume that there must be a way of creating these elements and of extracting the results from the ones returned in the Vector - something short of developing my own DOM parser. But the jDeveloper help is clueless on this topic. The index for help contains nothing on DOM, Document Object Model, Element, and so forth. When I go the forums, it appears that everyone already knows the secret but I'm standing in the cold. The popup tips know nothing about Element, even if I import org.w3c.dom. Where is the help/docs on this... or some sample code? I'm sure that the solution is quite simple -- probably a couple of lines of code. In summary, all I want to know is how to get between "String myWebCall(String)" and "Vector myWebCall(Element)" so that I can pass parameters and see the response. Am I stupid? (...is my wife right?)

    James, unfortunately the consumption of .NET document style Web services takes a little bit of work. The stub generator, as you note will generate a client but results in an XML element rather than a string. What this means is the magic sauce you refer to is called a bit of handcoding ... Read on for a sample.
    The good news is the summer release of Oracle9i JDeveloper the code will be automatically generated for .NET services. You won't have to parse any XML as below but get back the string arguments you are expecting. Sorry it is yet to come.
    However, in the meantime, to give you a hand on how to construct a client based on a working example find below some code from a class MainClient.java that consumes the Web service LocalTimeByZipCode off of XMethods.com - its WSDL is located at:
    http://www.alethea.net/webservices/LocalTime.asmx?WSDL
    Just go to http://www.alethea.net/webservices/LocalTime.asmx to see what the service is expecting versus readin the WSDL. If you have been working with .NET you will know this.
    Then point JDeveloper's stub/skeleton generator at this WSDL (or conversely your own service) and then create the client, MainClient.java with the following code (note the package I am using is mypackage1). In your JDeveloper libraries you should only have to include "Oracle SOAP", "Oracle XML Parser V2" and "Oracle9i JDeveloper Runtime" (as usual). Hopefully this code sample gives you how to tackle it now.
    package mypackage1;
    import org.w3c.dom.*;
    import oracle.xml.parser.v2.*;
    import java.util.Vector;
    import java.util.Enumeration;
    public class MainClient
    public MainClient()
    XMLDocument doc = new XMLDocument();
    Element top = doc.createElementNS("http://alethea.net/webservices",
    "tns:LocalTimeByZipCode");
    Element zip = doc.createElementNS("http://alethea.net/webservices",
    "tns:ZipCode");
    Text text = doc.createTextNode("text#");
    // Set the zip code parameter
    text.setNodeValue("94116");
    zip.appendChild(text);
    top.appendChild(zip);
    LocalTimeStub lts = new LocalTimeStub();
    try
    System.out.println("Sending:");
    ((XMLElement)top).print(System.out);
    Vector response = lts.LocalTimeByZipCode(top);
    System.out.println("Received " + response.size() + " element");
    Enumeration enum = response.elements();
    while (enum.hasMoreElements())
    Object o = enum.nextElement();
    System.out.println("Returned a " + o.getClass().getName());
    if (o instanceof XMLElement)
    XMLElement xml = (XMLElement)o;
    xml.print(System.out);
    else
    System.out.println("Returned " + o.toString());
    catch (Exception e)
    e.printStackTrace();
    public static void main(String[] args)
    MainClient mainClient = new MainClient();
    Mike.

  • 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
    Sandy

    Hi,
    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.

  • Consuming  a Web Service with PasswordDigest Authentication in ABAP

    Hello,
    I need to consume a web service in ABAP from a non-SAP application. The web service uses wsse:UsernameToken with PasswordDigest in the SOAP Header for authentication. However, I havent seen any documentation for using Password Digest in ABAP.
    Is it possible to use Password Digest in ABAP?
    Thanks
    Ajay

    Hi Marc,
    Here is the ABAP Code to build the SOAP header.
    FUNCTION Z_GET_SOAP_REQUEST_HEADER.
    *"*"Local Interface:
    *"  EXPORTING
    *"     VALUE(ER_SECURITY_ELEMENT) TYPE REF TO  IF_IXML_ELEMENT
    *date and time data
      data: lv_sys_date like sy-datum,
            lv_sys_time like sy-uzeit,
            lv_year(4) type c,
            lv_month(2) type c,
            lv_date(2) type c,
            lv_hour(2) type c,
            lv_min(2) type c,
            lv_sec(2) type c.
      data : lv_created type string,
            lv_snonce type string,
            lv_b64nonce type string,
            lv_webservice_password type string,
            lv_webservice_userid type string,
            lv_spassword type string,
            lv_xpassword type xstring,
            lv_hpassword type hash160x,
            lv_b64password(255) type c,
            lv_xpasslen type i,
            lv_hpasslen type i.
    *xml declartions
      data : lv_sheader type string,
            lv_xheader type xstring,
            xml_document TYPE REF TO if_ixml_document,
            xml_root TYPE REF TO if_ixml_element,
            xml_element TYPE REF TO if_ixml_element,
            xml_node TYPE REF TO if_ixml_node.
    *get the c-link password.
    CALL METHOD ZCL_CDB_SYNC_CFG_READER=>GET_USERID_PASSWORD
      IMPORTING
        EV_USER_ID  = lv_webservice_userid
        EV_PASSWORD = lv_webservice_password
    *Evaluate created date time
      lv_sys_date = sy-datum.
      lv_sys_time = sy-uzeit.
      lv_year = lv_sys_date(4).
      lv_month = lv_sys_date+4(2).
      lv_date = lv_sys_date+6(2).
      lv_hour = lv_sys_time(2).
      lv_min = lv_sys_time+2(2).
      lv_sec = lv_sys_time+4(2).
      CONCATENATE lv_year '-' lv_month '-' lv_date 'T' lv_hour ':' lv_min ':' lv_sec '.000Z' into lv_created.
    *Create and encode the nonce
      CALL FUNCTION 'GENERAL_GET_RANDOM_STRING'
        EXPORTING
          NUMBER_CHARS  = 24
        IMPORTING
          RANDOM_STRING = lv_snonce.
      CALL METHOD cl_http_utility=>ENCODE_BASE64
        EXPORTING
          UNENCODED = lv_snonce
        RECEIVING
          ENCODED   = lv_b64nonce.
    *create the password to be sent to web service
      CONCATENATE lv_snonce lv_created lv_webservice_password into lv_spassword.
    *encode password to xstring
      CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
        EXPORTING
          TEXT   = lv_spassword
        IMPORTING
          BUFFER = lv_xpassword.
      lv_xpasslen = xstrlen( lv_xpassword ).
      CALL FUNCTION 'CALCULATE_HASH_FOR_RAW'
        EXPORTING
          ALG      = 'SHA1'
          DATA     = lv_xpassword
          LENGTH   = lv_xpasslen
        IMPORTING
          HASHX    = lv_hpassword
          HASHXLEN = lv_hpasslen.
      CALL FUNCTION 'SCMS_BASE64_ENCODE'
        EXPORTING
          INPUT            = lv_hpassword
          INPUT_LENGTH     = lv_hpasslen
        IMPORTING
          OUTPUT           = lv_b64password
        EXCEPTIONS
          OUTPUT_TOO_SMALL = 1
          OTHERS           = 2.
      IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * build the header
      CONCATENATE
    '<soap-env:Header xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">'
    '<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">'
    '<wsse:UsernameToken wsu:Id="########" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
    '<wsse:Username>'
    lv_webservice_userid
    '</wsse:Username>'
    '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">'
    lv_b64password
    '</wsse:Password>'
    '<wsse:Nonce>'
    lv_b64nonce
    '</wsse:Nonce>'
    '<wsu:Created>'
    lv_created
    '</wsu:Created>'
    '</wsse:UsernameToken>'
    '</wsse:Security>'
    '</soap-env:Header>'
    INTO lv_sheader.
    *Build the xml header element
      lv_xheader = cl_proxy_service=>cstring2xstring( lv_sheader ).
      TRY.
          CALL FUNCTION 'SDIXML_XML_TO_DOM'
            EXPORTING
              xml           = lv_xheader
            IMPORTING
              document      = xml_document
            EXCEPTIONS
              invalid_input = 1
              OTHERS        = 2.
          IF sy-subrc = 0 AND NOT xml_document IS INITIAL.
            xml_root = xml_document->get_root_element( ).
            er_security_element ?= xml_root->get_first_child( ).
            gr_soap_security_header = er_security_element.
          ENDIF.
        CATCH cx_ai_system_fault .
      ENDTRY.
    ENDFUNCTION.

  • Consuming ABAP Web Service in Non SAP system

    Hi
    I have created an ABAP web service form the RFC and configured it in the SOAMANAGER. I have tested it in Web Service Navigator using the URL and it is working fine.
    Now I am trying to access it from the Non SAP system using Java Code. I am able to access the WSDL using the URL from the step 1 but not able to receive any output when providing inputs.
    So I am not sure if I am missing any configuration on the Provider System (SAP) or on the Consumer system (Non SAP) to access the web service. As far I have not configured anything on the consumer system. Please let me know how to consume the web service in the Non SAP system.
    Thank you,
    Rohit

    not necessarily an answer to your question, but i find that when creating SAP web services, before we create the code for consuming them, I always test them with the SOAPUI package. with this test suite you can import the WSDL, and run individual tests, seeing the input, output, exceptions, etc. This is a good way to check the connection, the flow and the service logic, before writing any code. This will also let you know whether it is a WS issue, or an issue with your code.
    just a thought, from someone who has been there...
    http://www.soapui.org is where you can find the SOAPUI. It helped me out a lot.
    Dave

  • Help with consuming a web service

    Hi guys,
    I'm trying to consume a web service but I have the following problem when I consume it:
    javax.xml.rpc.soap.SOAPFaultException: Internal Error
    at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.ja
    va:491)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:307
    at qtel.tibco.transferAsset.AssetPort_Stub.transferAsset(AssetPort_Stub.
    java:67)
    at transferasset.Main.main(Main.java:34)
    I'm using NetBeans 5.0 with JDK 1.4 and the JAX-RPC 1.6
    here is my Code:
    package transferasset;
    import java.io.*;
    import javax.xml.rpc.*;
    import java.rmi.*;
    * @author Administrator
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
        public static void main(String[] args) {
           try{
             System.out.println(args[0] + " " + args[1] + " " + args[2] );
             qtel.tibco.transferAsset.AssetManagementServiceServiceagent service = new qtel.tibco.transferAsset.AssetManagementServiceServiceagent_Impl();
             qtel.tibco.transferAsset.AssetPort port = service.getAssetPortEndpoint1();
             qtel.tibco.transferAsset.TransferAssetRequest req = new  qtel.tibco.transferAsset.TransferAssetRequest(args[0].toString(),args[1].toString(),args[2].toString());
             qtel.tibco.transferAsset.TransferAssetResponse result = port.transferAsset(req);
             System.out.print(result.getData().getReturnStatus());
           }catch(javax.xml.rpc.soap.SOAPFaultException e){
               //System.out.print(e.getFaultString());
               //System.out.print(e.getFaultActor());
               e.printStackTrace();
        }catch(Exception e){
                e.printStackTrace();
               System.out.println(e.getMessage());
               //System.out.println("exception");
           //return result.getData().getReturnStatus();
    }the problem is as folowwing in the command prompt when I run the following command I will have no error and the web service work fine:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 1 1 1
    but the problem will appear if I send a character in the parametars like this:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 12367 3456 HC-098
    So any help will be Appreciated
    thanks in advance.

    Hi guys,
    I'm trying to consume a web service but I have the following problem when I consume it:
    javax.xml.rpc.soap.SOAPFaultException: Internal Error
    at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.ja
    va:491)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:307
    at qtel.tibco.transferAsset.AssetPort_Stub.transferAsset(AssetPort_Stub.
    java:67)
    at transferasset.Main.main(Main.java:34)
    I'm using NetBeans 5.0 with JDK 1.4 and the JAX-RPC 1.6
    here is my Code:
    package transferasset;
    import java.io.*;
    import javax.xml.rpc.*;
    import java.rmi.*;
    * @author Administrator
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
        public static void main(String[] args) {
           try{
             System.out.println(args[0] + " " + args[1] + " " + args[2] );
             qtel.tibco.transferAsset.AssetManagementServiceServiceagent service = new qtel.tibco.transferAsset.AssetManagementServiceServiceagent_Impl();
             qtel.tibco.transferAsset.AssetPort port = service.getAssetPortEndpoint1();
             qtel.tibco.transferAsset.TransferAssetRequest req = new  qtel.tibco.transferAsset.TransferAssetRequest(args[0].toString(),args[1].toString(),args[2].toString());
             qtel.tibco.transferAsset.TransferAssetResponse result = port.transferAsset(req);
             System.out.print(result.getData().getReturnStatus());
           }catch(javax.xml.rpc.soap.SOAPFaultException e){
               //System.out.print(e.getFaultString());
               //System.out.print(e.getFaultActor());
               e.printStackTrace();
        }catch(Exception e){
                e.printStackTrace();
               System.out.println(e.getMessage());
               //System.out.println("exception");
           //return result.getData().getReturnStatus();
    }the problem is as folowwing in the command prompt when I run the following command I will have no error and the web service work fine:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 1 1 1
    but the problem will appear if I send a character in the parametars like this:
    java -jar "C:\updateassetinfo\dist\updateassetinfo.jar" 12367 3456 HC-098
    So any help will be Appreciated
    thanks in advance.

  • Consume a Web Service from a Web Page

    I had tried out the Tutorial "Consume a Web Service from a Web Page". I have encountered this error :
    ; nested exception is: java.lang.NullPointerException.
    oracle.adf.model.adapter.AdapterException: DCA-40010: The Web Service call failed. The service returned a SOAP fault with the message: [S:Receiver] EJB Exception: : java.lang.NullPointerException
         at oracle.model.freightjb.CalculateFreightBean.calculateFreightCost(CalculateFreightBean.java:23)
         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:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:55)
         at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy170.calculateFreightCost(Unknown Source)
         at oracle.model.freightjb.CalculateFreight_5vfuh6_WSOImpl.__WL_calculateFreightCost_WS(CalculateFreight_5vfuh6_WSOImpl.java:72)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    I tried to modify abit the code as i changed the web method parameter from object (BatchOrder order) to variables(eg. int) and it works. When I test the Web Services I need to select the include checkbox den it works nicely else i will also encounter this problem. Does this mean the web services can not take it object as parameter?

    Hi Paolo,
    maybe I faced the same issue. I solved it reading the thread:
    web service deployable client
    Hope this help
    Cheers
    Roberto

  • How to consume a web service provided by third party system from SAP system

    Hi Friends,
    Could any of you provide me a clear picture on how to consume a web service from SAP system and is provided by a third party system?
    Do we get an URL to create a client proxy for consuming the web service?
    Thanx in advance,
    Ram

    Hi Ram,
    of course you cannot supply the WSDL URL. Inside the WSDL (just view it in your browser) you find (usually but not necessary) towards the end something like
    <soap:address location="http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php"/>
    which is the actual adress of the service.
    An example service can be found here:
    <a href="http://www.weather.gov/xml/">National Digital Forecast Database</a>
    containing the WSDL URL at
    <a href="http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl">this address</a>.
    You might also want to browse for the amazon webservices which allow you to embed queries against amazon into your application.
    have fun,
    anton

  • No result while creating a service consumer with Web Service Wizzard

    Hi,
    I've tried to create a service consumer with Web Service Wizzard in SE80 by using URL/HTTP Destination but nothing happens. After the popup with logondata for the WSDL I get the CRM start screen and nothing has been created in the given package.
    technical details:
    I use a CRM 5.0 system with SP15 (SAPKB70015).
    I created the provider service at a 7.10 system with SP5 (SAPKB71005) via SPROXY, SOAMANAGER and WSPUBLISH and get the WSDL-URL from Service Registry.
    The Service Registry of the 7.10 system serves as central Service Registry.
    Has anybody an idea ?
    Christoph

    Guy,
    Thanks for your reply.
    This problem has been solved. Since I haven't turned on everything that to use transaction SOAMANAGER needs. After complete the switch-on works, the problem never happens again.
    Thanks again.

  • Error when consuming a web service in CF 11

    I am consuming a web service in ColdFusion what was written in .NET.  Some methods of the web service work fine, but some we get the below error.  We have identified the issue is the name of one of the properties in the web service appears to be the issue.  The property name is ID.  This is a very common property name so I would think someone has run across this before.  It appears that maybe ID is a default property for Axis?  I can dump the method that works and I see there is a getID() method with a return type of org.apache.axis.types.Id.
    If we change the name of the property to something other than ID it works, but this will cause us to refactor a lot of code.
    Here is the error I get when I try to call GetRoles method, which contains an ID property:
    Cannot perform web service invocation GetRoles. The fault returned when invoking the web service operation is:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXException: For input string: "i1"
    java.lang.NumberFormatException: For input string: "i1"
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: For input string: "i1"
    java.lang.NumberFormatException: For input string: "i1"
    at org.apache.axis.encoding.ser.BeanDeserializer.onStartElement(BeanDeserializer.java:462)
    at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:393)
    at org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.java:154)
    at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java: 1048)
    at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
    at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
    at org.apache.axis.message... ''
    I am running CF 11 Update 4.

    I am not passing any parameters to the method (it has no parameters).  On the ColdFusion side I do not use i1 anywhere.  I will check with the .net developer on Monday to see if he is using it anywhere in his code.  If he is he is using in consistently as the only methods that work from his service are those that do not have an ID property.  All services with an ID property give me the same error message.

  • Handling of SOAP Faults in SOAP Clients consuming PI Web services

    Hi there,
    the following is in regards to SOAP fault error handling in a SOAP client that consumes a Web Service published by PI.
    I have been reading a number of threads and blogs in regards to this topic and I am still left with some open questions which I hope to get some final answersclarifications through this thread.
    In particular the blogs
    Handling Web Service SOAP Fault Responses in SAP NetWeaver XI      - Handling Web Service SOAP Fault Responses in SAP NetWeaver XI
    XI: Propagation of meaningful error information to SOAP Client     - XI: Propagation of meaningful error information to SOAP Client
    have caused by attention.
    Both of these threads are realating to the Fault Message type one can use to return errors back to a SOAP Client (.Net, Java, etc.).
    In our scenario we published a number of Web Services through PI that provide functionality to integrate with an R3 back-end system using inbound ABAP Proxies.
    The services are standardised and will be consumed by a number of .NetJava applications and systems. The reason for the use of ABAP proxies is the customer specific application logic that is executed in the backend system. The Web services are synchronous and don't use ccBPM in the middle. Transformations are performed in PI combined with various lookups to set default values before the message is passed into the ABAP Framework of the R3 back-end system. The lookups are done against the R3 back-end system using the PI RFC Lookup feature.
    The inbound proxies currently return application errors as part of the response message back to the SOAP client. For more critical errors we introduced the use of Fault message types as the method to return the information back to the SOAP Client. This is all working satisfactory.
    The questions I have are as follows.
    1. When an error occurs at the IE level (e.g. mapping error), ABAP Proxy framework level (e.g. conversion from XML to ABAP format) or Adapter Framework level (Adapter releated error) a different SOAP fault message structure is returned to the SOAP Client than the one    used for the application errors. The SOAP fault message structure used in this case is the standard SOAP fault used by PI to return system errors back to the caller. For those SOAP fault messages there is no payload generated that could be mapped to the SOAP fault structure used for the application errors. This would be preferrable as there would be only one Fault message structure used for both inbound ABAP proxy generated fault messages and PI generated fault messages.
    Also the error messages generated by PI can be quite cryptic and difficult to interpret at the client end and could be filtered     ranslated during message mapping if the payload of the PI generated SOAP fault message could be accessed in a message mapping.
    Point 3 of the above thread 2759 indicates that this would be possible but doesn't outline how. Could somebody please clarify this for me as I don't believe that this is really possible ???.
    My idea instead was to use the PI SOAP fault message structure to also return application errors. Therefore I would create a Fault message type that matches the PI SOAP fault structure. This would enable the SOAP Client to handle only one SOAP Fault error structure. Would that be something to look into instead ?????.
    2. We have been looking at using the integrated WEB AS SOAP adapter instead of using the AF Sender SOAP adapter. While playing with this we encountered differences in the content returned through the SOAP fault generated by PI. A sample is below. Shouldn't the content of these SOAP faults be the same if the error that caused it is the same. Also the SOAP fault returned by the IE SOAP adapter is much more    useful in this particular case. Both errors below are the same, a conversion error from XML to ABAP took place in the inbound ABAP proxy framework of the back-end system.
    SOAP fault returned when using SOAP Sender adapter of AF
    <!see the documentation>
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIProxy:PARSE_APPLICATION_DATA:
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
         at com.sap.aii.af.ra.ms.impl.core.queue.consumer.CallConsumer.onMessage(CallConsumer.java:134)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:916)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         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:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    SOAP fault using integrated SOAP adapter of PI IE
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>System Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context/>
                   <code>ABAP.PARSE_APPLICATION_DATA</code>
                   <text>Error during XML => ABAP conversion (Request Message; error ID: CX_ST_DESERIALIZATION_ERROR; (/1SAI/TXSBE20FF604BAFEF8D990A XML Bytepos.: 564  XML Path: ns1:CreatePORequest(1)POHEADER(2)COMP_CODE(1) Error Text: Data loss occurred when converting ############################## Kernel ErrorId: CONVT_DATA_LOSS))</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    I have been reading threads for hours without being able to find one that answers questions 1 or provides a blog that outlines the approach one should take for error handling in SOAP clients that consume PI Web Services (and covers both PISystem generated faults and faults raised in Proxies).
    There may already be a blog or thread and I just missed it.
    Any comments are welcome.
    Thanks. Dieter

    Hi Dieter,
    As Bhavesh already mentioned fault messages are used for application errors. The same is described in SAP XI help:
    http://help.sap.com/saphelp_nw04/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
    In case of system error (e.g. field length too long in proxy call or error in XI/PI mapping) there seems to be no standard way of handling it and propagating the response to the consumer of webservice.
    Each system error is not recognized by SOAP adapter and SOAP adapter exception is raised.
    The only bizzare solution that I can see is developing an adapter module and transport wrong message to standard fault message before delivering it to adapter engine:
    http://help.sap.com/saphelp_nw04/helpdata/en/a4/f13341771b4c0de10000000a1550b0/frameset.htm
    Kind regards,
    Wojciech
    btw nice thread

  • Issue in consuming a web service

    Hi All,
    We are consuming a  Web service ( Microsoft Share point ) through our Web dynpro Application.
    Every time we consume the web service , there is a popup for authentication to connect to the Share point server. The problem  is that  the popup actually appears in the SAP GUI client and not  as a web based popup hence it does not appear in the Web dynpro Application.
    On analysis in SOA MANAGER , it was found that the Logical Port that we make use of to connect to the Web service has a configuration of entering the User Name and a password.
    The Question is, Is it Mandatory to supply login credentials to the server from which the web service is consumed ? or is there any other configuration/setting  where we can consume the web service without login credentials ?.
    Any pointers/OSS notes are very much Appreciated.
    Thanks !

    hi,
    check  out these links :
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/244e7923-0a01-0010-5887-fe0b0c6dbb8d
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/30f1b585-0a01-0010-3d96-ad0ea291c4f9
    I hope u shud b clear wid ur query

  • Consuming a Web service from Crystal reports 2008 - Error

    Hi,
    I want to consume a web service from Crystal Reports 2008. I created a New Connection using "XML and Web Services" and given WSDL url as the Web Service location. Crystal Report is able to connect to the WSDL and is displaying the tags correctly. When dragging the output to "Selected Tables' section, I am getting the following error:
    "Invalid Argument Provided"
    Details: Cannot support ArrayType input parameters.
    Kindly help. Apparently this was a limitation in CR XI but does it still exist in CR 2008? Is there any patch available to resolve this issue?
    Thanks,
    Jaya
    Edited by: jayakvr on Feb 17, 2011 10:47 AM
    Edited by: jayakvr on Feb 17, 2011 10:48 AM
    Edited by: jayakvr on Feb 17, 2011 10:48 AM

    This issue is resolved now. I have installed the Service packs 1, 2 and 3 of CR2008 to overcome this error.
    Thanks,
    Jaya

  • Consuming a Web Service with WEB AS 6.40

    Hello,
    i try to consume a Webservice from the internet. I have configured the logical port and i created the client proxy as shown in the following real good weblog from
    Thomas Jung.
    /people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap
    But when i try to test the proxy in SE80 I retrieve the following error:
    <CODECONTEXT>http://www.sap.com/xml_errorcodes</CODECONTEXT>
      <CODE>SOAP:111</CODE>
      <ERRORTEXT>Unallowed RFC-XML Tag (SOAP_EINVALDOC)</ERRORTEXT>
    What's wrong here? Someone can help me?
    Thanks for your help!
    Klaus

    We had the same error message for one of our Proxy Web Service calls.
    We tried to use an RFC instead of the URL, and performed a TEST CONNECTION.  And low and behold, we received an error message that was much more helpful than the "Unallowed RFC-XML Tag (SOAP_EINVALDOC)" message.
    The problem for us was that the Server that we were trying to consume the Web service from was blocking the IP address of our Web Application Server.
    We contacted the administrator, he verified that was the case, removed the restriction, and all is good now.
    Here was the message we saw when we tested it in the RFC:
    The Web server you are attempting to reach has a list of IP addresses that are not allowed to access the Web site, and the IP address of your browsing computer is on this list.  Please try the following: Contact the Web site administrator if you believe you should be able to view this directory or page.
    Hope this helps!

Maybe you are looking for