Invoke 3rdparty webservice through XI as sender

Hi,
  In our scenario, We need to invoke a 3rd party webservice through PI and then send the data to R/3 system. Once get the reponse from R/3 again we need to send back the response to 3rd party webservices. (synchro scenario)
Could you help me understand "how to invoke 3rd party webservice through PI as sender system and send the data to R/3 and send back the response from R/3 to 3rd party webservice"
Also please let me know if there any examples/links for the above scenario.
Thanks in Advance,
Regards,
Naga

Could you help me understand "how to invoke 3rd party webservice through PI as sender system and send the data to R/3
and send back the response from R/3 to 3rd party webservice"
Yours is a SOAP <> XI <> RFC/ PROXY sync scenario.
Also please let me know if there any examples/links for the above scenario.
Yes there would be references (wiki, blog, article) on SDN....just make a search.
Regards,
Abhishek.

Similar Messages

  • Problem invoking XI webservice through webdynpro

    We have created a webservice on XI that calls the BAPI_COMPANYCODE_GETLIST on an R/3 4.6C system.  We generated the WSDL using the Integration builder and corrected the URL to point to the webservice (rather than the wizard proposed URL).
    We can call the webservice through XMLspy and other tools.  But we are not able to use webdynpro to invoke the webservice.  We uploaded the webservice on the web application server so we can get to it through a URL.
    The problem is that when we use webdynpro and try to link it to a webservice, we can point to the URL which is for the WSDL we uploaded to the webserver.  But there is no other field in webdynpro to specify the URL for the webservice endpoint.  The endpoint is actually in the WSDL and it seems correct:
    http://servername:50000/XISOAPAdapter/MessageServlet?channel=:BS_EXTERNALAPP:BAPI_COMPANYCODE_GETLIST_WEBSERVICE_SOAP_SENDER;version=3.0;Sender.Service=BS_EXTERNALAPP;Interface=http://xyz.com/xi_demo/BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI
    Through XMLspy we can just point to the WSDL.  And then we can just specify the username and password and it runs.  But with webdynpro, we are not able to invoke it.
    Any ideas what we can do?
    Here is the WSDL below:
    Thanks,
    Jay
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:rfc="urn:sap-com:document:sap:rfc:functions" xmlns:p1="http://xyz.com/xi/xi_demo" name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI" targetNamespace="http://xyz.com/xi/xi_demo">
         <wsdl:types>
              <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap-com:document:sap:rfc:functions" targetNamespace="urn:sap-com:document:sap:rfc:functions">
                   <xsd:element name="BAPI_COMPANYCODE_GETLIST.Response">
                        <xsd:complexType>
                             <xsd:all>
                                  <xsd:element name="RETURN" type="BAPIRETURN" minOccurs="0"/>
                                  <xsd:element name="COMPANYCODE_LIST">
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="item" type="BAPI0002_1" minOccurs="0" maxOccurs="unbounded"/>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:all>
                        </xsd:complexType>
                   </xsd:element>
                   <xsd:element name="BAPI_COMPANYCODE_GETLIST">
                        <xsd:complexType>
                             <xsd:all>
                                  <xsd:element name="COMPANYCODE_LIST">
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="item" type="BAPI0002_1" minOccurs="0" maxOccurs="unbounded"/>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:all>
                        </xsd:complexType>
                   </xsd:element>
                   <xsd:complexType name="BAPI0002_1">
                        <xsd:sequence>
                             <xsd:element name="COMP_CODE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="4"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="COMP_NAME" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="25"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                        </xsd:sequence>
                   </xsd:complexType>
                   <xsd:complexType name="BAPIRETURN">
                        <xsd:sequence>
                             <xsd:element name="TYPE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="1"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="CODE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="5"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="220"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="LOG_NO" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="20"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="LOG_MSG_NO" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="6"/>
                                            <xsd:pattern value="\d+"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE_V1" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="50"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE_V2" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="50"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE_V3" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="50"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE_V4" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="50"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                        </xsd:sequence>
                   </xsd:complexType>
              </xsd:schema>
         </wsdl:types>
         <wsdl:message name="rfc.BAPI_COMPANYCODE_GETLIST.Input">
              <wsdl:part name="parameters" element="rfc:BAPI_COMPANYCODE_GETLIST"/>
         </wsdl:message>
         <wsdl:message name="rfc.BAPI_COMPANYCODE_GETLIST.Output">
              <wsdl:part name="parameters" element="rfc:BAPI_COMPANYCODE_GETLIST.Response"/>
         </wsdl:message>
         <wsdl:portType name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI">
              <wsdl:operation name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI">
                   <wsdl:input message="p1:rfc.BAPI_COMPANYCODE_GETLIST.Input"/>
                   <wsdl:output message="p1:rfc.BAPI_COMPANYCODE_GETLIST.Output"/>
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:binding name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MIBinding" type="p1:BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI">
              <soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
              <wsdl:operation name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI">
                   <soap:operation xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="http://sap.com/xi/WebService/soap1.1"/>
                   <wsdl:input>
                        <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
                   </wsdl:input>
                   <wsdl:output>
                        <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
                   </wsdl:output>
              </wsdl:operation>
         </wsdl:binding>
         <wsdl:service name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MIService">
              <wsdl:port name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MIPort" binding="p1:BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MIBinding">
                   <soap:address location="http://servername:50000/XISOAPAdapter/MessageServlet?channel=:BS_EXTERNALAPP:BAPI_COMPANYCODE_GETLIST_WEBSERVICE_SOAP_SENDER&version=3.0&Sender.Service=BS_EXTERNALAPP&Interface=http%3A%2F%2Fxyz.com%2Fxi%2Fxi_demo%5EBAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
              </wsdl:port>
         </wsdl:service>
    </wsdl:definitions>

    When i try to make the call through Test Data service in Visual composer, i get the error: "Portal request failed (Could not execute Web service operation)".  This happens regardless of whether we supply input values for Comp Code and Comp Name. 
    So Visual composer is reading the WSDL and showing the input parameters correctly.  The link for the WSDL needs the same authentication user and pwd as the actual webservice invocation link which is in the WSDL. 
    So i am not sure why the call is failing because it works easily through XMLspy.
    - Jay

  • SAMLAssertionID error while invoking webservice through webservice proxy

    I have created a web service proxy client using service WSDL deployed to weblogic standalone server as per the Fusion Dev guide [http://fmwdocs.us.oracle.com/doclibs/fmw/E10285_01/appslib7/web.1111/b31974/web_services.htm#CJADCDBG]. When i try to invoke the web service through the proxy i am seeing this error
    Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Unable to add security token for identity, token uri =http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID
         at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:197)
         at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:125)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
         at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:136)
         at $Proxy42.findTerritoriesInPartition(Unknown Source)
         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 weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:84)
         at $Proxy43.findTerritoriesInPartition(Unknown Source)
         at oracle.apps.sales.territoryMgmt.territories.serviceProxy.findTerritories.TerritoryServiceSoapHttpPortClient.main(TerritoryServiceSoapHttpPortClient.java:56)
    Please suggest how i can get rid of this error.
    I looked at the wsdl, i see that wss_saml_or_username_token_service_policy is added.
    <wsp:Policy orawsp:provides="{http://docs.oasis-open.org/ns/opencsa/sca/200903}authentication, {http://docs.oasis-open.org/ns/opencsa/sca/200903}clientAuthentication, {http://docs.oasis-open.org/ns/opencsa/sca/200903}clientAuthentication.message" wsu:Id="wss_saml_or_username_token_service_policy">
    Code in my proxy client:
    public class TerritoryServiceSoapHttpPortClient
    @WebServiceRef
    private static TerritoryService_Service territoryService_Service;
    private static final AddressingVersion WS_ADDR_VER = AddressingVersion.W3C;
    public static void main(String [] args)
    territoryService_Service = new TerritoryService_Service();
    TerritoryService territoryService = territoryService_Service.getTerritoryServiceSoapHttpPort();
    // Get the request context to set the outgoing addressing properties
    WSBindingProvider wsbp = (WSBindingProvider)territoryService;
    WSEndpointReference replyTo =
    new WSEndpointReference("http://adc60059fems.us.oracle.com:6035/salesTerrMgmtTerritories/TerritoryService", WS_ADDR_VER);
    String uuid = "uuid:" + UUID.randomUUID();
    wsbp.setOutboundHeaders( new StringHeader(WS_ADDR_VER.messageIDTag, uuid), replyTo.createHeader(WS_ADDR_VER.replyToTag));
    // Add your code to call the desired methods.
    try{
    wsbp.getRequestContext().put(WSBindingProvider.USERNAME_PROPERTY, "SALES_ADMIN");
    wsbp.getRequestContext().put(WSBindingProvider.PASSWORD_PROPERTY, "Welcome1");
    FindTerritoriesInPartition terr = new FindTerritoriesInPartition();
    terr.setPartitionType("PRODUCTION");
    terr.setTerritoryService(territory);
    territoryService.findTerritoriesInPartition(terr);
    catch(ServiceException se){
    Thanks,
    Sekar

    Hi Subramanyam,
    There is a very simple way to invoke web service through code using ServiceFactory classes. See if you can access this link[http://fmwdocs.us.oracle.com/doclibs/fmw/E10285_01/appslib7/doc.1111/e10308/uc_adf_to_adf.htm#BDCEDDDC]. Looks like creating proxy through Jdev and writing client code using ServiceDelegateImpl is a very costly approach, it creates lot of files and it fails to invoke service when SAML is enabled in the server side.
    If you could not access this link, follow these steps
    1. In connections.xml
    <Reference name="{http://xmlns.oracle.com/apps/sales/territoryMgmt/territories/territoryService/}TerritoryService" className="oracle.jbo.client.svc.Service" xmlns="">
    <Factory className="oracle.jbo.client.svc.ServiceFactory"/>
    <RefAddresses>
    <StringRefAddr addrType="serviceInterfaceName">
    <Contents>oracle.apps.sales.territoryMgmt.territories.territoryService.TerritoryService</Contents>
    </StringRefAddr>
    <StringRefAddr addrType="serviceEndpointProvider">
    <Contents>ADFBC</Contents>
    </StringRefAddr>
    <StringRefAddr addrType="jndiName">
    <Contents>TerritoryServiceBean#oracle.apps.sales.territoryMgmt.territories.territoryService.TerritoryService</Contents>
    </StringRefAddr>
    <StringRefAddr addrType="serviceSchemaName">
    <Contents>TerritoryService.xsd</Contents>
    </StringRefAddr>
    <StringRefAddr addrType="serviceSchemaLocation">
    <Contents>oracle/apps/sales/territoryMgmt/territories/territoryService/</Contents>
    </StringRefAddr>
    <StringRefAddr addrType="jndiFactoryInitial">
    <Contents>weblogic.jndi.WLInitialContextFactory</Contents>
    </StringRefAddr>
    <StringRefAddr addrType="jndiProviderURL">
    <Contents>t3://adc60108fems.us.oracle.com:6046</Contents>
    </StringRefAddr>
    <StringRefAddr addrType="jndiSecurityPrincipal">
    <Contents>SALES_ADMIN</Contents>
    </StringRefAddr>
    <StringRefAddr addrType="jndiSecurityCredentials">
    <Contents>Welcome1</Contents>
    </StringRefAddr>
    </RefAddresses>
    </Reference>
    2. Create a java file with a main method, sample code to invoke service
    import commonj.sdo.helper.DataFactory;
    import oracle.jbo.client.svc.ServiceFactory;
    public static void territoryGet(){
    String TERRITORY_SERVICE_NAME = "{http://xmlns.oracle.com/apps/sales/territoryMgmt/territories/territoryService/}TerritoryService";
    TerritoryService terrService = (TerritoryService)ServiceFactory.getServiceProxy(TERRITORY_SERVICE_NAME);
    DataFactory dataFactory = ServiceFactory.getDataFactory(terrService);
    // Create Territory
    Territory territory = (Territory)dataFactory.create(Territory.class);
    territory.setTerritoryLevel(1L);
    territory.setStatusCode("FINALIZED");
    java.util.Date currentDate = new java.util.Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(currentDate);
    territory.setEffectiveEndDate(new java.sql.Date(cal.getTimeInMillis()));
    territory.setEffectiveStartDate(new java.sql.Date(cal.getTimeInMillis()));
    List<Territory> lst = terrService.findTerritoriesInPartition(territory, "PRODUCTION");
    System.out.println("Size: " + lst.size());
    I also had succeeded using ServiceDeleteImpl, but i prefer ServiceFactory which is very simple. I can also share how to achieve using the proxy which jdev generates.
    ~Sekar

  • Invoking webservice through bpel process

    Hi, I created a webservice for a java code. I created a simple bpel process to invoke the webservice. Its throwing below error when running the bpel process. I tested the webservice alone. it works fine. Any help is highly apreciated.
    Thanks, Ram....
    when invoking locally the endpoint 'http://wtus081806-6:9700/Hrinfo-java_test_1-context-root/default', ; nested exception is: ORABPEL-05210 No BPEL archive files. The process domain cannot locate any BPEL archives for process "unknown". If you have deployed a process please check that it is located in the directory "C:\OraHome_1\integration\orabpel\domains\default\deploy".</summary>
    </part>
    <part name="detail">
    <detail>ORABPEL-05210 No BPEL archive files. The process domain cannot locate any BPEL archives for process "unknown". If you have deployed a process please check that it is located in the directory "C:\OraHome_1\integration\orabpel\domains\default\deploy".</detail>
    </part>

    I remember this being a bug in 10.1.2.0.2 - as somehow the servlet thinks the call would be for the bpel engine, instead of the webservice endpoint,
    so I recommend 2 things .. don/t name the operation default
    'http://wtus081806-6:9700/Hrinfo-java_test_1-context-root/default'
    and if this does not help, try to set optSOAPShortcut -> false on the BPEL Domain ..

  • Problem invoking XI webservice

    We have created a webservice on XI that calls the BAPI_COMPANYCODE_GETLIST on an R/3 4.6C system.  We generated the WSDL using the Integration builder and corrected the URL to point to the webservice (rather than the wizard proposed URL).
    We can call the webservice through XMLspy and other tools.  But we are not able to use webdynpro to invoke the webservice.  We uploaded the webservice on the web application server so we can get to it through a URL.
    The problem is that when we use webdynpro and try to link it to a webservice, we can point to the URL which is for the WSDL we uploaded to the webserver.  But there is no other field in webdynpro to specify the URL for the webservice endpoint.  The endpoint is actually in the WSDL and it seems correct:
    http://servername:50000/XISOAPAdapter/MessageServlet?channel=:BS_EXTERNALAPP:BAPI_COMPANYCODE_GETLIST_WEBSERVICE_SOAP_SENDER;version=3.0;Sender.Service=BS_EXTERNALAPP;Interface=http://xyz.com/xi_demo/BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI
    Through XMLspy we can just point to the WSDL.  And then we can just specify the username and password and it runs.  But with webdynpro, we are not able to invoke it.
    Any ideas what we can do?
    Here is the WSDL below:
    Thanks,
    Jay
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:rfc="urn:sap-com:document:sap:rfc:functions" xmlns:p1="http://xyz.com/xi/xi_demo" name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI" targetNamespace="http://xyz.com/xi/xi_demo">
         <wsdl:types>
              <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap-com:document:sap:rfc:functions" targetNamespace="urn:sap-com:document:sap:rfc:functions">
                   <xsd:element name="BAPI_COMPANYCODE_GETLIST.Response">
                        <xsd:complexType>
                             <xsd:all>
                                  <xsd:element name="RETURN" type="BAPIRETURN" minOccurs="0"/>
                                  <xsd:element name="COMPANYCODE_LIST">
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="item" type="BAPI0002_1" minOccurs="0" maxOccurs="unbounded"/>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:all>
                        </xsd:complexType>
                   </xsd:element>
                   <xsd:element name="BAPI_COMPANYCODE_GETLIST">
                        <xsd:complexType>
                             <xsd:all>
                                  <xsd:element name="COMPANYCODE_LIST">
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="item" type="BAPI0002_1" minOccurs="0" maxOccurs="unbounded"/>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:all>
                        </xsd:complexType>
                   </xsd:element>
                   <xsd:complexType name="BAPI0002_1">
                        <xsd:sequence>
                             <xsd:element name="COMP_CODE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="4"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="COMP_NAME" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="25"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                        </xsd:sequence>
                   </xsd:complexType>
                   <xsd:complexType name="BAPIRETURN">
                        <xsd:sequence>
                             <xsd:element name="TYPE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="1"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="CODE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="5"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="220"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="LOG_NO" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="20"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="LOG_MSG_NO" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="6"/>
                                            <xsd:pattern value="\d+"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE_V1" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="50"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE_V2" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="50"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE_V3" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="50"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="MESSAGE_V4" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="50"/>
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                        </xsd:sequence>
                   </xsd:complexType>
              </xsd:schema>
         </wsdl:types>
         <wsdl:message name="rfc.BAPI_COMPANYCODE_GETLIST.Input">
              <wsdl:part name="parameters" element="rfc:BAPI_COMPANYCODE_GETLIST"/>
         </wsdl:message>
         <wsdl:message name="rfc.BAPI_COMPANYCODE_GETLIST.Output">
              <wsdl:part name="parameters" element="rfc:BAPI_COMPANYCODE_GETLIST.Response"/>
         </wsdl:message>
         <wsdl:portType name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI">
              <wsdl:operation name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI">
                   <wsdl:input message="p1:rfc.BAPI_COMPANYCODE_GETLIST.Input"/>
                   <wsdl:output message="p1:rfc.BAPI_COMPANYCODE_GETLIST.Output"/>
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:binding name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MIBinding" type="p1:BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI">
              <soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
              <wsdl:operation name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI">
                   <soap:operation xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="http://sap.com/xi/WebService/soap1.1"/>
                   <wsdl:input>
                        <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
                   </wsdl:input>
                   <wsdl:output>
                        <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
                   </wsdl:output>
              </wsdl:operation>
         </wsdl:binding>
         <wsdl:service name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MIService">
              <wsdl:port name="BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MIPort" binding="p1:BAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MIBinding">
                   <soap:address location="http://servername:50000/XISOAPAdapter/MessageServlet?channel=:BS_EXTERNALAPP:BAPI_COMPANYCODE_GETLIST_WEBSERVICE_SOAP_SENDER&version=3.0&Sender.Service=BS_EXTERNALAPP&Interface=http%3A%2F%2Fxyz.com%2Fxi%2Fxi_demo%5EBAPI_COMPANYCODE_GETLIST_OUTBOUND_SYNC_MI" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
              </wsdl:port>
         </wsdl:service>
    </wsdl:definitions>

    While generating a wsdl in XI the url provided should be as below:
    Override the default URL with following while generating WSDL using web service wizard.
    Default URL:
    http://host:port/XISOAPAdapter/MessageServlet?channel=:<service>:<channel>
    To import the WSDL in webdynpro,
    In NWDS Create Model -> Import Web Service Model (referring the XI WSDL)
    Instantiate the request object and pass the mandatory parameters for request object and call execute method.
    Thanks and Regards,
    Amar Bhagat Challa.

  • Easier option for invoking external webservice

    Hi,
    what is the easy way to test invoking a nonSAP webservice (to which we give request and expect response).
    i did file to soap scenario using bpm,
    and i used file to soap using adapter module.
    but both are bit lengthy procedure to check if we can invoke the webservice thru PI.
    is there any other mechanism, or any other adapters that we can use to send the request and get the response from nonSAP webservice provider.

    hi,
    >>>is there any other mechanism, or any other adapters that we can use to send the request and get the response from nonSAP webservice provider.
    not anything that would not involve using adapters...
    >>>but both are bit lengthy procedure to check if we can invoke the webservice thru PI.
    but they both take less then 30 mins to develop & check (without a BPM even less)... 
    Regards,
    Michal Krawczyk

  • Webservice through an exception -- SAP XI  namespace is missing in XML

    Hello Experts,
    we have a HTTP(synchron) --> XI --> SOAP (synchron) ---> XI --> HTTP Scenario.
    A webapplicaton sends a number to XI. XI sends the number (integrationprocess) to a  webservice an gets same information back. This information will be send back to the
    webapplication.
    In same cases the webservices through an exception (it's okay, depend on date).
    But XI can't read this XML because one namespace is missing.
    The webservice sends the XML correctly. We have tested it.
    It seems inside XI one namespace of the XML will lost.
    We can't see the reason for it.
    An Application Fault Exception is thrown in XI
    In the RWB we see this: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault
    The soap communication channel has an error.
    We try to arise the severity of the tracelevel to see more information, but without success.
    So we don't find any information for this error.
    Do you know this problem?
    Thanks in advance!
    Jürgen

    Hi
    for namespaing mssing see the below blogs
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1
    http://www.troobloo.com/tech/xslt.toc.shtml
    http://www.w3schools.com/xsl/
    http://www.w3.org/TR/xslt
    http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/frameset.htm
    https://sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/generic%20xslt%20mapping%20in%20sap%20xi%2c%20part%20i.pdf
    /people/anish.abraham2/blog/2005/12/22/file-to-multiple-idocs-xslt-mapping
    Required XSLT Mapping tips!
    Thnaks
    sudhir sharma

  • Unable to invoke ReadProject WebService on a HTTPS environment

    Hi,
    I have customized Ms Project Server 2010 to invoke PSI WebService in the checkin event handler.
    The code works very well in a HTTP environment. However, it doesn't work in HTTPS environment. The following message is displayed on accessing the service in HTTPS environment
    The server was unable
    to process the request due to an internal error.  For more information
    about the error, either turn on IncludeExceptionDetailInFaults (either from
    ServiceBehaviorAttribute or from the <serviceDebug> configuration
    behavior) on the server in order to send the exception information back to the
    client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK
    documentation and inspect the server trace logs
    I am unable to trace logs to find out the root cause of this issue. Any help in this regard will be appreciated.

    HTTP 401 means the server running on specified URL may have HTTP Basic Authentication enabled. Please cross-check whether this is the case and if yes then configure the same in composite. BTW, "01hw331924" seems to be a familiar host name. ;)
    Regards,
    Anuj

  • Webservice through PI

    Hi,
    Can you please help me in understanding the concept of publishing thwe webservices through PI?
    Also,please suggest me the blogs mentioning
    Thanks in advance

    Simple... If PI wants to consume webservices of third party, we dont publish the web service in the service registry. We simple create scenario using SOAP adaper (Receiver) and consume web service. In this case, we import WSDL of third party and use as receiver or target data structure. In configuration level, use soap adapter and specify the WSDL url and action in the comm channel.
    If PI needs to host web service for others to consume then we basically use SOAP sender and create WSDL. Also in this case we publish the web service in the service registry. Hope that helps.
    Have you seen this [link |http://www.riyaz.net/blog/pi-71-publishing-service-interface-as-a-webservice-in-sr/technology/sap/527/]for publishing the service interface in registry?

  • How to invoke safari browser through code?

    how to invoke safari browser through code?

    Hi Sam,
    Please check if the articles below can be help:
    http://www.bizsupportonline.net/browserforms/programmatically-submit-infopath-form-sharepoint-send-email-close-form.htm
    http://www.bizsupportonline.net/blog/2009/01/how-to-programmatically-run-code-close-infopath-web-form/
    Regards,
    Rebecca Tu
    TechNet Community Support

  • Regarding errors in client Application to invoke the webservices

    hi,
    i am using weblogic workshop to develop webservices on weblogic server8.1
    i develop webservice and wsdl file also
    but when i am writing dynamic client application to invoke the webservice( particular method)
    then it gives error like this
    javax.xml.rpc.JAXRPCException: failed to invoke operation 'requestContactList' due to an error in the soap layer (SAAJ); nested exception is: Message[ failed to serialize interface javax.xml.soap.SOAPElementweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://www.openuri.org/']:requestContactList}]StackTrace[
    javax.xml.soap.SOAPException: failed to serialize interface javax.xml.soap.SOAPElementweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://www.openuri.org/']:requestContactList}
         at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:332)
         at weblogic.webservice.core.DefaultPart.toXML(DefaultPart.java:297)
         at weblogic.webservice.core.DefaultMessage.toXML(DefaultMessage.java:645)
         at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:206)
         at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:143)
         at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:471)
         at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:566)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:419)
         at test.Client.main(Client.java:57)
    Caused by: weblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://www.openuri.org/']:requestContactList}
         at weblogic.xml.schema.binding.RuntimeUtils.lookup_serializer(RuntimeUtils.java:151)
         at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:187)
         at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:174)
         at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:328)
         ... 9 more
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:586)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:419)
         at test.Client.main(Client.java:57)
    Debugging Finished
    Exception in thread "main"
    my client program is
    import java.net.URL;
    import javax.xml.rpc.ServiceFactory;
    import javax.xml.rpc.Service;
    import javax.xml.rpc.Call;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.namespace.QName;
    * This class demonstrates a java client invoking a WebService.
    * @author Copyright (c) 2005 by BEA Systems, Inc. All Rights Reserved.
    public class Client {
    public static void main(String[] args) throws Exception {
    // Setup the global JAXM message factory
    System.setProperty("javax.xml.soap.MessageFactory",
    "weblogic.webservice.core.soap.MessageFactoryImpl");
    // Setup the global JAX-RPC service factory
    System.setProperty( "javax.xml.rpc.ServiceFactory",
    "weblogic.webservice.core.rpc.ServiceFactoryImpl");
    // create service factory
    ServiceFactory factory = ServiceFactory.newInstance();
    // define qnames
    String targetNamespace =
    "http://www.openuri.org/"
    + "wsdl/http://192.168.2.98:7001/ContactListWeb/ContactListJWS/ContactTest.jws";
    QName serviceName =
    new QName(targetNamespace,
    "ContactTest");
    QName portName =
    new QName(targetNamespace,
    "ContactTestSoap");
    QName operationName = new QName("targetNamespace",
    "requestContactList");
    URL wsdlLocation =
    new URL("http://192.168.2.98:7001/ContactListWeb/ContactListJWS/ContactTest.jws?WSDL");
    // create service
    Service service = factory.createService(wsdlLocation, serviceName);
    // create call
    Call call = service.createCall(portName, operationName);
    // invoke the remote web service
    String result =(String)call.invoke(new Object[] {
    "BEAS"
    System.out.println("\n");
    System.out.println("This example shows how to create a dynamic client application that invokes a non-WebLogic Web service.");
    System.out.println("The webservice used was: http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl");
    System.out.println("The quote for BEAS is: ");
    System.out.println(result);
    }

    Hi I am also facing the issue. If any one got the solutoin for this please post it
    Thanks
    Kaal

  • Error while consuming PLSQL Webservice through BPEL

    HI ,
    I have created a simple PLSQL Web service called "HelloWorld" and it got successfully deployed .
    When I tried to test this webservice through BPEL Process Manager , its showing me error everytime that ( Could not create object of class 'dimple.HelloWorldWebServiceUser'; nested exception is: java.lang.ClassNotFoundException: dimple.HelloWorldWebServiceUser</summary> ) .
    Please anyone help me out with this problem .
    Thanks
    Prashant Dwivedi

    HI ,
    I have created a simple PLSQL Web service called "HelloWorld" and it got successfully deployed .
    When I tried to test this webservice through BPEL Process Manager , its showing me error everytime that ( Could not create object of class 'dimple.HelloWorldWebServiceUser'; nested exception is: java.lang.ClassNotFoundException: dimple.HelloWorldWebServiceUser</summary> ) .
    Please anyone help me out with this problem .
    Thanks
    Prashant Dwivedi

  • Invoking a webservice from a servlet

    Hi,
    I am able to invoke a webservice using a Standalone java program. I am using the below command to invoke the web service.
    java com.javasrc.webservices.age.AgeServiceClient -lhttp://localhost:8080/axis/services/AgeService "Siva" 33
    Now if I write the whole code in a method I am not able to retreive the values into the servlet. Can any please suggest me how to invoke a web service from a servlet/JSP. Please tell if there any sites for this.
    Here is my Client code:
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import org.apache.axis.utils.Options;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    public class AgeServiceClient
    public static void main(String [] args)
    try
         Options options = new Options(args);
         String endpointURL = options.getURL();
         String name;
         Integer age;
         args = options.getRemainingArgs();
         if ((args == null) || (args.length < 2))
              name = "NoName";
              age = new Integer( 0 );
         else
              name = args[ 0 ];
              age = new Integer( args[ 1 ] );
              Service service = new Service();
              Call call = (Call) service.createCall();
              call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
              call.setOperationName( new QName("http://age.webservices.javasrc.com", "age") );
              call.addParameter( "arg1", XMLType.XSD_STRING,ParameterMode.IN);
              call.addParameter( "arg2", XMLType.XSD_INT, ParameterMode.IN);
              call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING);
              String ret = (String) call.invoke( new Object[]{name,age});
              System.out.println("Age result : " + ret);
         catch (Exception e)
              System.err.println(e.toString());
    Thanks in advance
    Prashanth

    This is very simple maybe you don't have servlet experience.
    Simply you create a servlet and put your client main method in another one (not static method) + importing jar of your client and other associated jar files in WEB_INF\lib folder of servlet.
    check for helloworld servlet then you can implement servlet for your client.

  • Getting issue while invoking a webservice.

    Hi All
    when i invoke a webservice which is located remotley using httpclient post method. I am getting the following error
    <faultcode>soapenv:Server.userException</faultcode>
    <faultstring>org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.</faultstring>
    Can anyone please help me out how to get out this exception. tried googling on this exception, but there is no luck.
    import java.io.File;
    import java.io.FileInputStream;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
    import org.apache.commons.httpclient.methods.PostMethod;
    public class PostXML {
    public static void main(String[] args) throws Exception {
    // Get target URL
    String strURL = "http://localhost/services/CmdLineInterface?wsdl";
    // Get file to be posted
    String strXMLFilename = "C:\\post.xml";
    File input = new File(strXMLFilename);
    // Prepare HTTP post
    PostMethod post = new PostMethod(strURL);
    // Request content will be retrieved directly
    // from the input stream
    // Per default, the request content needs to be buffered
    // in order to determine its length.
    // Request body buffering can be avoided when
    // content length is explicitly specified
    post.setRequestEntity(new InputStreamRequestEntity(
    new FileInputStream(input), input.length()));
    // Specify content type and encoding
    // If content encoding is not explicitly specified
    // ISO-8859-1 is assumed
    post.setRequestHeader(
    "Content-type", "text/xml; charset=ISO-8859-1");
    // post.set
    post.setRequestHeader("SOAPAction", "");
    // Get HTTP client
    HttpClient httpclient = new HttpClient();
    // Execute request
    try {
    int result = httpclient.executeMethod(post);
    // Display status code
    System.out.println("Response status code: " + result);
    // Display response
    System.out.println("Response body: ");
    System.out.println(post.getResponseBodyAsString());
    }catch(Exception e)
         e.printStackTrace();
    }finally {
    // Release current connection to the connection pool
    // once you are done
    post.releaseConnection();
    the above is the code i am using for calling the webservice.
    Anyone can you please help me on this.
    Regards
    Rakesh

    Hi
    Thank you very much for replying back..
    Here is my WSDL file i am using
    This XML file does not appear to have any style information associated with it. The document tree is shown below.
    <wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:test" xmlns:intf="urn:test" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:test">
    <!--
    WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)
    -->
    <wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:test">
    <element name="in0" type="xsd:string"/>
    <element name="processCmdLineRequestReturn" type="xsd:string"/>
    </schema>
    </wsdl:types>
    <wsdl:message name="processCmdLineRequestResponse">
    <wsdl:part element="intf:processCmdLineRequestReturn" name="processCmdLineRequestReturn"/>
    </wsdl:message>
    <wsdl:message name="processCmdLineRequestRequest">
    <wsdl:part element="intf:in0" name="in0"/>
    </wsdl:message>
    <wsdl:portType name="CmdLineInterface">
    <wsdl:operation name="processCmdLineRequest" parameterOrder="in0">
    <wsdl:input message="intf:processCmdLineRequestRequest" name="processCmdLineRequestRequest"/>
    <wsdl:output message="intf:processCmdLineRequestResponse" name="processCmdLineRequestResponse"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="CmdLineInterfaceSoapBinding" type="intf:CmdLineInterface">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="processCmdLineRequest">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="processCmdLineRequestRequest">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="processCmdLineRequestResponse">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="CmdLineInterfaceService">
    <wsdl:port binding="intf:CmdLineInterfaceSoapBinding" name="CmdLineInterface">
    <wsdlsoap:address location="http://localhost:8080/test/services/CmdLineInterface"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    Regards
    Rakesh

  • Invoking a webservice using WSIF Binding

    Hi All,
    I have few queries regarding usage of WSIF Binding in BPEL
    My understanding was it is useful for calling Java Classes from BPEL Process.
    Can I use WSIF Binding for invoking the webservice ?
    Or the use of WSIF Binding is limited to invoking Java classes.
    If we can invoke web service , Can you please let me know how to do it?
    you can mail your replies to [email protected]
    Any help will be immensely appreciated..
    Regards,
    Bhanu

    First of all thanks to Jens and clemens.
    From both of your replies, i learnt that we can call webservice from BPEL process using WSIF binding .
    Can you provide me a bpel sample where we're using wsif binding for invoking web service?
    I have one more doubt:
    "WSIF java binding means, which was used to call java classes. WSIF soap binding used to call web services"
    Is my understanding correct?
    Can you explain a bit on WSIF Java binding?
    Regards,
    Bhanu

Maybe you are looking for