RFC function as a Web service - how to make wsdl type names unique

Hello,
We have a RFC function module, converted into a web service named ZVIEW_AGREEM, which works perfectly. Note that we only have a basic CRM system (Basis 7.31 SP 11), we don't have PI.
There is a client request to create a new version of this web service, named ZVIEW_AGREEM_2 : there is a new field "output_parameter2" in the response. The response type has XSD type named "VAGResult" (that we entered manually in the service definition).
The client also asked us to keep the old web service so that to be able to switch to the new one at a future date.
So, we duplicated the function module, duplicated the DDIC structure, and inserted the requested field, and then we made the web service.
It's okay except that the client complains that his software doesn't accept the WSDL, because we kept the same external type name "VAGResult", and it's different between the 2 web services (in the second, there is the extra "output_parameter2"). Both are assigned the standard SAP namespace urn:sap-com:document:sap:rfc:functions.
Do you know if there is a way to make SAP control the unicity of external type names to avoid having WSDL types with the same name and different structures?
Thanks.
Sandra
Attached is the WSDL of ZVIEW_AGREEM_2; ZVIEW_AGREEM is exactly the same but doesn't have "output_parameter2".

Thanks.
But the question is more about the fact that we may name a type as we want, SAP does not check (VAGResult in the screen capture below, which becomes <complexType name="VAGResult"... in the WSDL). It may be the same name as a type in another Web Service, both types may have completely different structures. It's a problem from a "philosophical" perspective, as these types share the same namespace "urn:sap-com:document:sap:rfc:functions"; the client software doesn't accept that, we have to rename it; I'd like to know whether SAP proposes a way to prevent choosing a name if it's already chosen for another type of different content.

Similar Messages

  • Migrating BAPI & RFC function modules into web services

    What is the advantage of migrating BAPI & RFC function modules into web services?

    Hi.
    That's a very good question. Why did you ask it, are you considering doing so?
    I wouldn't think there would be any performance advantages using WebServices.
    You could make your BAPI's available for other systems than Web Dynpro or SAP systems by turning them into WebServices.
    That could be an issue when you want to use different integration engines perhaps.
    A WebService might also be better for dealing with large number of requests I guess.
    When dealing with XML you can also use the advantage of XSLT for validating your data.
    The main advantages would still be the availability of your service for non-SAP systems.
    /Mikael

  • Web Services: how to make a clean exit?

    Hi
    My web service tryes to read some configuration information from a properties file and then connect to a database to do some updates. If the connection to the database fails, I can just return an error to the caller but if the properties file is not found it should just exit and be made unavailable for further calls. Is there a method like the Servlet's destroy()?
    Thanks in advance

    Are you sure you are posting in the right forum? You are posting in Snow Leopard (10.6.x), but your profile shows a G4 with 10.3?  Please clarify which version you are trying to get info on and the hardware you are using.

  • Exposing an RFC enabled function as a Web Service in Minisap

    Hi all,
    i'm trying to expose an RFC enabled function as a Web Service in my Minisap installation. Everything works fine, until i actually want to finish the Web Service wizard. It always quotes that the object can only be deployed in an sap paket. If i try to put it in the $TMP paket, by marking it as a local object, i always get the message that test objects can not be deployed in external pakets.
    Any idea?
    Furthermore the virtual interface with the name i selected in the Web Service wizard seems to exist, at least i can not try to deploy the Web Service again with the same name. Actually, i also can't find a place where i can delete the virtual interface. Any hint on that issue is also appreciated.
    Thanks in advance!
    /Marc

    I wanted to write a web service adapter:
    @WebService
    public class MyWebService implements StreamSender {
         private StreamSender eventSender;
         @WebMethod
         public void echo(String msg) {
              eventSender.sendInsertEvent(new MyEvent(msg));
    After deploying I've got NullPointerException, eventSender is null. This is because MyWebService instance is NOT on the spring context, since it was created by jetty via reflection.
    So now I'm trying another approach. I want to inject an adapter from the spring context into the web service:
    I wanted to write a web service adapter:
    @WebService
    public class MyWebService {
         private MyWSAdapter myAdapter;
         @Resource
         private WebServiceContext context;
         @WebMethod
         public void echo(String msg) {
              myAdapter = getMyAdapterFromSpringContext();
              myAdapter.sendInsertEvent(new MyEvent(msg));
         public MyWSAdapter getMyAdapterFromSpringContext() {
              ServletContext sc = (ServletContext) context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
              ApplicationContext springContext = WebApplicationContextUtils.getWebApplicationContext(sc);
              return (MyWSAdapter) springContext.getBean("myWSAdapter");
    So far i'm getting java.lang.NoClassDefFoundError for org.springframework.web.context.support.WebApplicationContextUtils (org.springframework.spring-web_2.5.6.jar), and trying to figure out where is the jetty classpath.

  • How to create Web Service based on PI WSDL message

    Hi all,
    we have following scenario:
    Within PI (version 7.1) we set up a message type and inbound service interface. This service interface should send the PI message to a web service running on a SAP J2EE (version 7.01). As the PI message is sent as WSDL I thought it should be easy to build a web service on the SAP J2EE based on this WSDL from PI.
    Unfortunately, I have problems creating the Web Service.
    For my current project we integrated the NWDI to the SAP NetWeaver Developer Studio and I'm required to add the Web Service to an existing DC (Development Component) within the NWDI.
    What I tried so far is:
    - I created a Deployable Proxy Project and within this I created a Client Proxy Definition based on the WSDL from the PI. But I can't add this Proxy to the DCs of the NWDI and I don't know how to implement my own coding here in order execute specific functions.
    - I created a new class within the NWDI DC and a public method. Based on this I created a Virtual Interface and a Web Service Definition (WSD). Then I added this to a Web Service Deployment Descriptor. I uploaded this to the SAP J2EE. But I'm not able to access this and I don't know hoe to assign the WSDL here.
    I also tried here to create a client proxy based on this WSD as I thought I might assign the WSDL here. But I don't see the WSD in the list of Web Services uploaded to the SAP J2EE...
    Can you please advice me how to create a Web Service in such an environment?
    regards
    René Jurmann

    Hi Tahir,
    sorry that you needed to wait this long - but this is how I created the web service:
    The steps on how to create the web service in NetWeaver Developer studio are nearly the same as described in the blog http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/5838. [original link is broken] [original link is broken] [original link is broken]
    Some steps I just skipped and some others I added. Some of the steps I did the way I described it as I needed to connect the web service with the SAP PI.
    Prerequisites:
    Add Java Perspective and J2EE Development Perspective to the open perspectives.
    Within "Window - Preferences - Web Services" check "Soap extensions visible in the virtual interface editor"
    The SDM of the corresponding SAP J2EE is configured within "Window - Preferences"
    Create a Development Component (DC) with type "J2EE -> EJB Module"
    The business logic of the web service will be implemented in an Enterprise Java Bean (EJB). So first the EJB component must be created:
         Choose "File -> New -> Other"
         In opening PopUp choose "Development Component -> Development Component Project"
         Select the Software Component for which you want to add the DC (e.g. "Local Development -> MyComponents")
         Choose now vendor, name and type:
              vendor is an alpha-numeric string of 20 characters starting with a letter - all in lower case
              name is an alpha-numeric string starting with a letter - all in lower case
              vendor and name concatenated must not be longer then 40 characters
              the name can be separated into different part using "/" as separator
              each part of the name must not be longer than 8 characters
              the type is "J2EE - EJB Module"
              you can specify a Caption as general description for the web service
    Create new EJB
    To create the EJB itself:
         In J2EE DC Explorer of J2EE Development Perspective expand new DC and right-click on folder "ejbModule"
         Choose "New - EJB" with following details:
              EJB Name: <name as for PI service Interface to be created - starting in upper case>
              EJB Project: <pre selected>
              Bean Type: Stateless Session Bean
              Default EJB Package: <corresponds to namespace in PI>
              generate default interfaces: Checked
    Regarding the "Default EJB Package" this should be created according the namespace in PI for which all PI objects will be created. This only applies if you have some naming conventions here.
    Example:
    Namespace in PI is:  http://company.net/pi/SOFTWARE_COMP/Application
    The corresponding package then is: net.company.pi.software_comp.application
    Implement coding for web service
    As the web service will be called via PI some transfer variables will be submitted. Most likely, those variables will not be standard type (e.g. String) but a complex type. Those types must be generated as Java classes. Below an example of a complex type I needed:
    Data Type
    net.company.pi.software_comp.application.types.MessageProcessingInformation
    Structure:
         Element name          Element type
         sendingSystemID          String
         interfaceID               String
         businessProcessVariantCode     String
         testIndicator               Boolean
    For every element described a public "get", "set" and "has" method must be created in the corresponding Java class:
    package net.company.pi.software_comp.application.types;
    import java.io.Serializable;
    public class MessageProcessingInformation implements Serializable {
         protected String sendingSystemID;
         protected String interfaceID;
         protected String businessProcessVariantCode;
         protected Boolean testIndicator;
         public String getSendingSystemID() {
              return sendingSystemID;
         public void setSendingSystemID(String value) {
              this.sendingSystemID = value;
         public boolean hasSendingSystemID() {
              if(sendingSystemID != null && !sendingSystemID.equals("")){
                   return true;
              return false;
    All Java classes representing complex types and all classes referenced here (used for sub-types) must implement java.io.Serializable. Java standard types which do not implement this class must not be used as sub-types.
    As soon as all data types are declared the real business logic can be implemented:
         In J2EE DC Explorer of J2EE Development Perspective expand DC - "ejb-jar.xml" - <Name> and double click on "ejbCreate"
         In detail view select folder "Business Methods" and click "Add"
         choose name of business method - this should be the same as the PI message type used for the service interface - starting lower case
         return type should be "void"
         add needed parameters fully qualified - including package (as specified in PI and created previously in DC)
         you can mark certain parameters as array if necessary
    Remark:
    It might be that after saving you get an error. This might be as the package name of one component is copied to the corresponding Java class at the very beginning (before the package declaration within the Java class). Simply delete the string here.
    It also might be, that the new business method is only defined in the remote interface class but not in the bean class. Just create an according method in the bean class.
    Within the newly created business method within the bean class you can now implement the business logic.
    Create a DC with type "J2EE -> Enterprise Application"
    In order to create the "real" web service and deploy it to the J2EE an Enterprise Application project has to be created. So create a new DC as for the EJB Module but choose as type "J2EE -> Enterprise Application".
    After the DC is created right click on the EJB DC and choose "Add to EAR Project". Choose the new DC.
    Create web service for EJB
    As soon as you implemented the business logic you can create the "real" web service. Therefore:
         Right click on the EJB name below "ejb-jar.xml"
         Choose "New - Web Service"
         Choose proper "Web Service Name" and "Configuration Name" (probably oriented at the EJB name)
         Copy the URL of the web service - you'll need it later for PI configuration
         on the second next screen use the same name for "Virtual Interface" and "Web Service Definition" (the name should be the name of the "Endpoint")
         the "EAR Project" should be preselected
    Unfortunately, the web service can't be used in its current configuration to be accessed by PI. Therefore the Virtual Interface must be changed. To do so, expand folder "Virtual Interfaces" and double click the virtual interface created.
    Within the detail view expand in tabs "Mapping" and "Types" the complete folder structure. For any "SOAP Extension" where a namespace can be defined use as namespace the corresponding namespace in PI (e.g. http://corpintra.net/pi/CBFC_GLOBAL_SAP_APPL/BillerDirect) but do not change any "Soap Extension" of a standard Java type. (if you don't have any naming convetions for namespaces in PI you can leave the SOAP Extension here. But then the namespace in PI should be set accordingly.)
    Probably it can be necessary on top level "Soap Extensions" in tab "Mapping" to leave "Use Namespaces for Parameters" unchecked. For some of my web services this parameter must be checked for others not - just try.
    If you can define a "New Name", "Local Name" or "Item Label" for a Soap Extension then use a name with starting upper case letter. (For Java Naming conventions most of the data type names will start with lower case letters.) Especially the method name must be renamed this way in order to stick to the PI namings.
    As a last point to change here check in tab "Mapping" all "Incoming Parameters" which you specified as array. Use for those as "New Name" a different name - do not just simply change from lower case to upper case. This is necessary as on PI we need to create two levels although here only one is specified.
    For any own sub-type declared as array the name within the coding should also differ from the corresponding Java Class name the type refers to.
    If all this is done you can deploy the web service to the J2EE:
         right click on "Enterprise Application" DC and choose "Development Component - Build..." and build all corresponding components
         right click on "Enterprise Application" DC and choose "Development Component - Deploy"
    Test the new web service via <J2EE URL>/wsnavigator/enterwsdl.html
    Create PI interface
    After the web service is created successfully the PI integration can be started.
    Therefore, within the Enterprise Services Builder create a data type according to the web service definition. All components defined on top-level for this data type should be declared as incoming parameter for the web service business method. Therefore it could be necessary to create some sub data types on PI first and add those to the "master" data type.
    Ensure that the names of the components correspond to the names defined in the web service (see virtual interface here). Those names must exactly be the same - including lower/upper case. Also take care for the ordering of the components.
    In case you need to include arrays following applies:
    The upper level is of occurrence "1:1". This has only one sub-entry with occurrence "1:n". The names for upper and sub-level must not equal.
    Based on the data type a message type is created. The name of the message type must be exactly the same as the name of the web service business method. (Hint: the name of the web service business method was most likely changed in the virtual interface. Then this name must correspond to the message type name.) Based on the message type an asynchronous inbound interface is to be created (which will be referred in the Integration Directory). The operation name for this interface (left panel) should be the same as the name for the web service business method.
    Create PI mappings and routings
    How to map (message mapping and operation mapping) from source to the web service message I wont explain here as this depends on the source message. The only important things here are:
         When creating the SOAP communication channel within the Integration Builder the "Target URL" is:
              <J2EE URL>/<Access URL as specified in web service creation>?wsdl&style=document
         The soap action is the name of the web service business method.
         Most likely the web service needs authentication to be executed.

  • Exposing ABAP function modules as web services

    Hi All,
    I am trying to expose function modules as web service but when i click on 'Web service Homepage' button it is throwing error :
    "Setting for J2EE server do not exist".
    Could you please guide me through this?
    Regards,
    Abhijeet.

    hi
    r u releasing the web service for FMs
    here r the steps.
    To release FMs as webservice it should be RFC enabled.
    then goto SE80 and search for the FM u want to release web service.
    then right click on the FM
    then Create->web service
    then give the web service name then continue.
    click on chk box for relase run time.
    then assign one request and package
    now goto WSADMIN tcode ahere u can see ur webservice and then use that.
    mark points if helpful
    Regs
    Manas Ranjan Panda

  • Benefits of exposing function module as web services

    Hi All,
    We are developing a case study about exposing function modules as web services.
    Those web services would be later used for integration to SAP box with a Java application.
    Kindly help me with the pros and cons of exposing function modules as web services when compared to SAP PI. Also please do quote some examples, wherever possible.
    Thanks,
    Varun

    Hi Varun,
    Pros--->
    1)Exposing FM as Web Services is indeed a good choice when you want service consumer to be platform and language independent.
    i.e it can be consumed by .Net, java or any other language.
    2) You are moving towards SOA
    3) Composing Business Process by concatenating different functional modules is easy.
    4) Complexity is less while consuming services Java, CAF etc.
    Cons----> Performance for Web Services is comparatively less than JCo .
    If you are bringing PI in between landscape, you are increasing one more layer of middleware which would also hit performance.
    The benefit which PI can give is monitoring your company wide integrations at one central point when you have huge systems.
    Hope this helps.
    Piyush

  • 11G - XDB Native Web Services - how to create a web service proxy

    Hi,
    I am working on XDB Native web Services (http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28369/xdb_web_services.htm#CHDDBCHB). I want to create a proxy web service for orawsv service (http://server:port/orawsv?wsdl), which is protected by an user/password
    In Jdeveloper 10133:
    + copy orawsv wsdl (http://server:port/orawsv?wsdl) in local file
    + create a proxy web service form the local wsdl (from the wizard)
    + implement the client (http://www.oracle.com/technology/obe/11gr1_db/datamgmt/xmldb2_b/xmldb2_b.htm)
    ==> OK
    In Jdeveloper 11g
    + copy orawsv wsdl (http://server:port/orawsv?wsdl) in local file
    + create a proxy web service form the local wsdl (from the wizard)
    + how to implement the client : there is no method to set a password
    any ideas?
    Thanks for your help,
    Cyryl
    Edited by: cbalmati on Oct 21, 2008 6:26 AM

    I'm working on getting a proxy web service working in 11g and the contents of this thread is close to answering my question.
    The web service proxy is accessing a service that requires a SOAP Security header.
    In looking at the previous post, I thought that by using the BindingProvider API I could add the security settings. But when I invoke the proxy I consistently get the following error response from the (PeopleSoft) web service: "com.sun.xml.ws.client.ClientTransportException: request requires HTTP authentication: Unauthorized'
    In contrast to that error, when I use JDeveloper's HTTP Analyzer, I get a successful response from the web service. Below is what the raw HTTP looks like:
    POST https://isiswebdev.services.wisc.edu:7002/PSIGW/PeopleSoftServiceListeningConnector HTTP/1.1
    Content-Type: text/xml; charset=UTF-8
    Host: isiswebdev.services.wisc.edu:7002
    SOAPAction: "CI_U_FA_CSA_STDTA_CI_G.V2"
    Content-Length: 548
    X-HTTPAnalyzer-Rules: 1
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="http://xmlns.oracle.com/Enterprise/Tools/schemas/M183895.V1">
    <env:Header>
    <ns1:Security>
    <ns1:UsernameToken>
    <ns1:Username>UserName</ns1:Username>
    <ns1:Password>XXXXXXX</ns1:Password>
    </ns1:UsernameToken>
    </ns1:Security>
    </env:Header>
    <env:Body>
    <ns2:Get__CompIntfc__U_FA_CSA_STDTA_CI>
    <ns2:EMPLID>012345678912</ns2:EMPLID>
    </ns2:Get__CompIntfc__U_FA_CSA_STDTA_CI>
    </env:Body>
    </env:Envelope>
    Here's the Java code that I'm using to try to make the same call:
    public void callIWebservice(String emplId){
    cSA_STDNT_DATA = new CSA_STDNT_DATA();
    CI_U_FA_CSA_STDTA_CI_PortType port = cSA_STDNT_DATA.getCI_U_FA_CSA_STDTA_CI_Port();
    Map<String, Object> requestContext = ((BindingProvider)port).getRequestContext();
    requestContext.put(BindingProvider.USERNAME_PROPERTY, "UserName");
    requestContext.put(BindingProvider.PASSWORD_PROPERTY,"XXXXXXX");
    GetCompIntfcUFACSASTDTACITypeShape CiType = new GetCompIntfcUFACSASTDTACITypeShape();
    EMPLIDTypeShape emplIDType = new EMPLIDTypeShape();
    emplIDType.setValue(emplId);
    CiType.setEMPLID(emplIDType);
    try {
    GetCompIntfcUFACSASTDTACIResponseTypeShape response = port.getDATA(CiType);
    System.out.println(response.getCUMGPA());
    } catch (M464939V1 e) {
    System.out.println(e.getFaultInfo());
    But, alas, I just get the ClientTransportException.
    Is the Bindingprovider interface the correct way to add the soap security headers? Or am I following the wrong path?
    Any help will be greatly appreciated.

  • Web Services, Schemas, and the xsi:type attribute

    Hi List,
    I have several questions reqarding web services, schemas, and the use of the xsi:type
    attribute in messages.
    Schemas:
    Q1: How complex can a web service schema be?
    Q2: Is it reasonable for a schema to contain derived types by extension [1]?
    Q3: Could you use the International Purchase Order Schema [2] with a web service?
    xsi:type
    Q1: Is it reasonable for a web service to use the xsi:type attribute in the message(s)?
    If I am interpreting Section 4.1.15 of the BasicProfile-1.0a [3] correctly, this
    appears to be appropriate in certain circumstances.
    Q2: When is it appropriate to use the xsi:type attribute? If a schema contains
    derived types by extension [1]? If a schema contains xsd:anyType?
    Q3: How does using the xsi:type attribute affect interoperability?
    And finally,
    Q4: Are there any examples available demonstrating the use of the xsi:type attribute
    in messages?
    Whew !!!
    TIA,
    Kent
    [1] http://www.w3.org/TR/xmlschema-0/#DerivExt
    [2] http://www.w3.org/TR/xmlschema-0/#ipo.xsd
    [3] http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html

    Hi Kent,
    A few answers inline...
    HTH,
    Bruce
    Kent Kvarfordt wrote:
    >
    Hi List,
    I have several questions reqarding web services, schemas, and the use of the xsi:type
    attribute in messages.
    Schemas:
    Q1: How complex can a web service schema be?There are limits in converting the schema between language
    representations, see this section [a] in the docs on roundtripping
    generated data types.
    [a]
    http://edocs.bea.com/wls/docs81/webserv/assemble.html#1074725
    Q2: Is it reasonable for a schema to contain derived types by extension [1]?
    Q3: Could you use the International Purchase Order Schema [2] with a web service?
    xsi:type
    Q1: Is it reasonable for a web service to use the xsi:type attribute in the message(s)?
    If I am interpreting Section 4.1.15 of the BasicProfile-1.0a [3] correctly, this
    appears to be appropriate in certain circumstances.I've not seen this used.
    http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html#refinement34259632
    >
    Q2: When is it appropriate to use the xsi:type attribute? If a schema contains
    derived types by extension [1]? If a schema contains xsd:anyType?
    Q3: How does using the xsi:type attribute affect interoperability?My thought is that since this is not commonly used, then your risk of
    interop failure is high.
    >
    And finally,
    Q4: Are there any examples available demonstrating the use of the xsi:type attribute
    in messages?Sorry, I looked and could not find any examples.
    >
    Whew !!!
    TIA,
    Kent
    [1] http://www.w3.org/TR/xmlschema-0/#DerivExt
    [2] http://www.w3.org/TR/xmlschema-0/#ipo.xsd
    [3] http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html

  • Generating Web Services bases on the WSDL interface

    Hello everybody.
    my question is.
    How can i generated all the java classes of a web services basen on a wsdl definition.
    how can i generate a simple java classe or how can i generate a ejb session, thet serve as a end point for my services
    any sugestion could be so helpfull

    The tool used to generate java class from WSDL is vender dependent, because each JAX-RPC engine is implemented differently (even they have to implement all JAX-RPC API, but low level stub call is engine dependent).
    So to generate you class from WSDL, you have to have tool first. Since all J2EE 1.4 app servers are required to have implementation of JAX-RPC API and its run time engine (but many J2EE 1.3 app servers also included JAX-RPC API and engine) , what you want to do could be to find any J2EE 1.4 app server, such as WAS or WSAD, or Sun's Application Server PE 8.1, read their examples carefull and you will find the way how to generate classes from WSDL.

  • How to make valuation type field not changeable  in delivery tab of PO

    Hai friends,
                    I am new to badis..please guide me to solve the issue...
    how to make valuation type field not changeable  in delivery tab of PO...
    The field shd be in display mode only ...actually...there  a badi has been used before
    to get valuation type from a ztable depending on material and plant...
    Now ..my requirement is that the user shd not change the default value brought from the ztable...

    Hi SRINIVAS,
    You can achieve this from BADI only if BADI is allows you to do this. You cannot achieve everything from a BADI. Check if there is any expoting field in the methods that can be ticked for making the field in display mode. If not then you cannot achieve this from BADI.
    The field you want to default to display is a standard or zfield. If z, then you can changethe attribute of the screen field to Output only.
    Regards,
    Manish

  • PL/SQL web service - how to use XML schema to define inputs/outputs?

    Hello,
    let us say I want to publish a PL/SQL web service. The package spec that I want to expose is:
    CREATE OR REPLACE PACKAGE myWebService AS
      FUNCTION loadResults(
        username   IN VARCHAR2,
        password   IN VARCHAR2,
        resultData IN XMLType)
      RETURN XMLType;
    END;When I use JDeveloper's wizard to publish my PL/SQL web service, the resulting WSDL contains this:
    <schema
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:tns="http://uk/co/weatherbys/aapws/AAPWS.wsdl/types/"
        targetNamespace="http://uk/co/weatherbys/aapws/AAPWS.wsdl/types/"
        elementFormDefault="qualified">
        <element name="loadresultsElement">
            <complexType>
                <sequence>
                    <element name="username" type="string" nillable="true"/>
                    <element name="password" type="string" nillable="true"/>
                    <element name="resultdata" nillable="true">
                        <complexType>
                           <sequence>
                                <any/>
                             </sequence>
                        </complexType>
                    </element>
                </sequence>
            </complexType>
        </element>
        <element name="loadresultsResponseElement">
            <complexType>
                <sequence>
                    <element name="result" nillable="true">
                       <complexType>
                            <sequence>
                                <any/>
                            </sequence>
                        </complexType>
                    </element>
                </sequence>
            </complexType>
        </element>
    </schema>It is specifying that anything at all can be passed in and out from the two XMLType arguments, which is fair enough: it has no way of knowing what I am expecting and what I shall return.
    My question is, how do I tell JDeveloper that actually I want either or both of those XMLTypes to conform to a particular XML schema?

    You cannot format the date as a string, unless you do the conversion on the PL-SQL side, before you use it in your WebService mapping. It should be handled as a string.
    The only way to convert the XML from SOAP, using this encoding, into literal XML is to apply XSLT to the payload. Not sure why you would like to do this, as the payload should be consumed by another SOAP-awared stack.
    Hope this helps,
    Eric

  • RFC_NO_AUTHORITY calling ABAP function from a Web Service

    Hi,
    We have a web service that publishes existing BAPIs, and some custom ABAP functions.
    When calling the custom ABAP functions we a "system exception" in the client side. Looking at SM21 the log has a dump:
    The user "1DDD8B960830" in the client 310 attempted to execute the function
      module
    "RFCPING" from the function group "SYST", but does not have the appropriate
    RFC authorization.
    Error in the ABAP application program.
    The current ABAP program "SAPLSYST" had to be interrupted because it contains
    a statement that cannot be executed.
    We're on  SAP-Release 710
    Please take into account that RFCPING is not a function we're calling...
    Any help would be appreciated
    Edited by: Enrique VETERE on Jun 25, 2008 5:35 PM

    Hi Enrique,
    a search for string "RFCPING authorization" in SAP notes shows up note 1108662 as the result, solution:
    > Add the function group SYST to the RFC authorization. Add the function group "SYST" to the default role SAP_BC_WEBSERVICE_SERVICE_USER in the authorizations for "Cross-application Authorization Objects" in the area "Authorization Check for RFC Access" and the object "Name of RFC object to be protected" and save and activate this role. You should then execute a user comparison for this role."
    Please check the complete note.
    HTH, regards, Boris

  • Web Services - How to create a websevice in XI/PI

    Hi,
    I have zero knowledge on webservices. Can someone help me understand what a webservice is and give me a step by step guide on how to create a sender and receiver webservice.
    Thanks in advance.
    Cheers,
    S

    Hi
    Search on SDN, you will get blogs and document.
    WebService is an application on the Web/Internet. Wheneever Service is requested by the user, it provides the service ( Request/Response)
    look some blog Create Web Service
    Using the SOAP inbound channel of the Integration Engine
    Web Service Senario
    RFC -> XI -> WebService - A Complete Walkthrough (Part 1)
    Invoke WebServices in XI
    Invoke Webservices using SAPXI
    WebService Scenario
    SYNCHRONOUS SOAP TO JDBC - END TO END WALKTHROUGH
    https://www.sdn.sap.com/irj/sdn/weblogsblog=/pub/wlg/7729
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5474f19e-0701-0010-4eaa-97c4f78dbf9b

  • Unallowed RFC-XML Tag (SOAP_EINVALDOC) - Web Service using ABAP Proxy

    Hi there
    I am trying to consume a Web Service using ABAP Proxies.  I have done the following in the system:
    I configured the HTTP and HTTPS Proxy settings. 
    I created a package with package interfaces SAI_TOOLS and SAPPINT included under the Use Access tab.
    I created the proxy classes by using the WSDL provided by the system I'm trying to interface with. 
    I created my HTTP destination RFC via SM59. 
    I configured a logical port for the proxy. 
    I developed the ABAP code for calling the proxy. 
    In the code the exception CX_AI_SYSTEM_FAULT gets raised with error message <b>"Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b> when I call the method for passing data to the destination system in the proxy class.
    I had a look at SM21 and the following message was written in the log:
    <b>"SOAP Runtime: SOAP Runtime exception: 111 occurred in method XP_READ_TAG of class CL_SOAP_XP at position 1
    SOAP Runtime: Exception message: Unallowed RFC-XML Tag (SOAP_EINVALDOC)"</b>.  I also looked at SAP Note 919886 which states that it can be dumps in the system, missing configuration or the path prefix of the RFC destination that is incorrect.  I cannot find any ST22 entries.  The trace file looks as follows:
    SAP System ID: DGH
    Client: 009
    User: COLESKG
    System time: 072910
    System date: 20070531
    SAP Release: 700
    Host: hd307c
    Operating system: AIX
    DB System: ORACLE
    Program: ZUK_IPA00003
    Processing State: 0
    Location: Client
    Transport Binding: http://schemas.xmlsoap.org/soap/http
    SOAP Application: urn:sap-com:soap:runtime:application:client
    SOAP Runtime Protocol: http://www.sap.com/webas/630/soap
    /runtime/protocol
    SOAP Protocols: <initial>
    Request Message: <initial>
    Response Message: <initial>
    Fault: <initial>
    Registry: <initial>
    SOAP Roles: <initial>
    Trace Level: 3
    Logging Level: 2
    Monitoring Level: 0
    Security Profile: <initial>
    WS Security Protocol: <initial>
    INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to create client application for Proxyclass:
    ZES_CO_PROCESS_EMPLOYEE_BATCH LP name: DEFAULT
    INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application created
    INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Try to initialize client application
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Try to initialize application
    urn:sap-com:soap:runtime:application:client
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new runtime CL_SOAP_RUNTIME_CLIENT
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Try to register application
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->REGISTER_APPLICATION() Application registered
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Read type of transport binding from
    configuration
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->INTERNAL_CLIENT_INIT() Create new transport binding type
    http://schemas.xmlsoap.org/soap/http
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() Try to initialize
    http://schemas.xmlsoap.org/soap/http
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~INIT() http://schemas.xmlsoap
    .org/soap/http initialized
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Try to create request message
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~REQUEST() Request message created
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Try to create response message
    INFO 07:29:10: SOAP Transport Binding CL_SOAP_TRANSPORT_BINDING_ROOT->IF_SOAP_TRANSPORT_BINDING~RESPONSE() Response message
    created
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Try to initialize
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Check transport binding
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT() Create runtime protocol
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Runtime-intrinsic
    Protocol as SENDER with Priority 5
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create trace header/part
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Trace header/part created
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Try to create logging header/part
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->INIT_MODULES() Logging header/part created
    INFO 07:29:10: SOAP Runtime Protocol CL_SOAP_RUNTIME_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
    INFO 07:29:10: SOAP Runtime CL_SOAP_RUNTIME_CLIENT->INIT()
    Initialized
    INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
    Try to create instance for http://www.sap.com/webas/630/soap
    /runtime/session/protocol::http://www.sap.com/webas/630/soap
    /runtime/session/protocol/srt640_impl
    INFO 07:29:10: SOAP Protocol CL_SOAP_PROTOCOL_FACTORY->CREATE()
    Instance of CL_SOAP_SESSION_PROTOCOL created for http://www.sap.com/webas/630/soap/runtime/session/protocol::http://www.sap.com/webas/630/soap/runtime/session/protocol/srt640_impl
    INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Try to initialize SOAP Session Protocol
    as SENDER with Priority 5
    INFO 07:29:10: SOAP SESSION Protocol CL_SOAP_SESSION_PROTOCOL->IF_SOAP_PROTOCOL~INIT() Protocol initialized
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Try to configure features
    INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() Try to
    create ICF Client for DESTINATION = ALSB
    INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_CLIENT_BY_DESTINATION() ICF
    Client created by DESTINATION
    INFO 07:29:10: SOAP HTTP Binding CL_SOAP_HTTP_TPBND_ROOT->IF_SOAP_HTTP_TRANSPORT_BINDING~SET_DESTINATION_URL_PATH() Set
    DESTINATION PATH = /SapHRSmartIntegrationWeb/processes/ProcessEmployeeBatch.jpd
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT_GEN->CONFIGURE_FEATURES() Features configured
    INFO 07:29:10: SOAP Application CL_SOAP_APPLICATION_CLIENT->IF_SOAP_APPLICATION_CS~INIT() Application urn:sap-com:soap
    :runtime:application:client initialized
    INFO 07:29:10: SOAP LP Registry CL_SRT_LP_MAINTENANCE->CREATE_CLIENT_APPL() Client application initialized
    Trace file opened at 20070531 073030 GMT SAP-REL 700,0,95
    Error in module XMLParserGetNextElement:773
    Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfcpars.c#2 $
    Unallowed RFC-XML Tag
    Error in module XMLConverterReadTag:3061
    Id @(#) $Id: //bas/700_REL/src/krn/rfc/xrfccnvrt.c#5 $
    Unallowed RFC-XML Tag(24)
    Error in module ab_soap:4392
    Id @(#) $Id: //bas/700_REL/src/krn/rfc/abxrfccal.c#2 $
    failed with return code 1
    It then must be something in the config.  Has anyone got any idea why this message is encountered?
    Kind Regards
    Gustav Coleske
    Message was edited by:
            Gustav Coleske

    Hi,
    I have the same problem as described.
    Can you give me a little more information about the error you have solved in the proxy.
    Thanks for help
    John

Maybe you are looking for

  • MS SQL2000 Driver for JAVA

    Does anyone use MSSQL2000 Driver for JAVA? I wrote a store procedure which returns multiple resultset. And I wrote a program to retrive all resultsets from it. It works fine with JDBC/ODBC Bridge Driver. But i got problem with MSSQL2000 Driver by usi

  • How could I re-open my mail box with error message :The last time you opened Mail, it unexpectedly quit while reopening windows. Do you want to try to reopen its windows again?

    How could I re-open my mail box, as an error message blocked "The last time you opened Mail, it unexpectedly quit while reopening windows. Do you want to try to reopen its windows again?" Even I entered re-open, the airbook does not response but prom

  • Unable to pass values from BW to R/3(Urgent)

    Hi All, I created RRI report, target is R/3 report. We have created variables in BI side When we assign some values to these variables, those values should be populated in the R/3 report selection screen.   What I have to do. Please any one help me .

  • Opening ppt under leopard

    I have a class where my prof makes all of the powerpoints available online. I use them to take notes in but prefer to open them in keynote, take notes, and then save them back to powerpoint. I'm having a problem after upgrading from 10.4.10 to 10.5 w

  • Photoshop error Creative Suite 5.5

    I recently installed Adobe Creative Suite 5.5 Design Premium (for windows.) While running Photoshop, I will get the following error message: The instruction at "0X6963932b" referenced memory at "0X000000a0"  (or sometimes "0X00000980") The memory cou