Mapping webservice result to a Data Type

Hi,
I receive an array of String objects as a result of a webservice call. These String Objects are XML documents (but as String Object...). How can I take each element of the array and extract all tags values to be mapped to a pre-defined Data Type? Have I to implement a parser in an UDF? How can I do the same mapping for each array cell automatically?
Thanks!

Use a simple XSLT to extract the xml document from a particular string.
Suppose the response XML is like:
<OutputMessage>
<string></string>
</OutputMessage>
Your xslt would be something like:
<xsl:template match="/OutputMessage/string">
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:template>
If you have more than 1 string, create a root tag and extract all of them inside that tag.
Regards,
Henrique.

Similar Messages

  • XML operation resulted an XML data type exceeding 2GB in size. Operation aborted.

    I have table with one million rows, when i am using xml path ('Root'), it giving me an error 
    "XML operation resulted an XML data type exceeding 2GB in size. Operation aborted."
    This is a limitation of sqlserver. I have to xml path because i have to create nodes and attributes. In more complex case i will be joining multiple tables to get id and other attributes so combining multiple xmls in not an option here.
    any workaround....thanks in advance

    Here an example of your query that retrieve record in batch of 2 records. In real code, you should save the last id retrieved and call the query in a loop.
    DECLARE @BATCHSIZE AS integer
    SET @BATCHSIZE = 2
    DECLARE @LASTID As Integer
    SET @LASTID = 0
    select top(@BATCHSIZE) id as "@id"
    ,name as "@name"
    select id as "@id"
    ,name as "@name"
    select *
    from @products p
    where p.customer_id = cs.id
    group by id,customer_id,name
    for xml path ('product'),Root('products'),type
    from @customer cs
    where cs.client_id = c.id
    group by id,client_id,name
    for xml path ('customer'),Root('customers'),type
    from @client c
    where c.id > @LASTID
    order by c.id
    for xml path ('clients'),Root ('Main')

  • Mapping Values to Data Type Enhancements in XI

    I want to a map values from a source XML to a target XML but the target fields are data type enhancements and not that of the standard one. The target message is the message of a predilevered interface of SAP for the SNC product. We did some enhancements to a particular data type. The enhancement was done in a different SCV and points to the datatype in a different SCV. Now, the mapping is in another different SCV (since the SCV for the SNC content of XI cannot be edited). When I was trying to map the values to the data type enhancement in the message mapping, the enhanced/additional fields are not there.
    How would I be able to map the values to the additional fields? Thanks in advance!

    check this:
    http://help.sap.com/saphelp_nw70/helpdata/en/a8/bfc6373c8fea43bdb3541535bcbd43/content.htm
    The Integration Builder does not recognize changes to software component versions that have already been imported. Therefore, if you want to define dependencies between imported software component versions at a later date, you have to import the superordinate software component versions into the Integration Builder again. You will not lose objects that have already been created.
    Not sure but this might help.
    Thanks,
    Beena.

  • Mapping SQL data types (especially SMALLINT) to Java classes

    I want to know the reason for a certain pair of exceptions in JDBC�s mapping of SQL data types to Java classes.
    Sun�s web site ( http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/getstart/mapping.html ), Sybase�s site, and other sites contain mappings from SQL data types to Java primitive data types and/or Java classes. On that Sun web page, Section 9.9.1 maps mostly to Java primitive data types, and Section 9.9.3 maps mostly to Java classes. For the SQL data types that map to both primitive data types and classes, the class is typically the wrapper class of the primitive data type. For example, SQL�s DOUBLE data type maps to both the double primitive data type and its wrapper class (Double). However, Section 9.7 of that Sun web page says that there are exceptions for SQL�s TINYINT and SMALLINT. As expected, they map to the byte and short primitive data types, but they map to the Integer class, not the Byte and Short classes (which are the wrapper classes for byte and short). The web page does not state the reason for this pair of exceptions. It seems to me that SMALLINT data would either work for both short and Short or fail for both short and Short. I don�t see why it would work for short but fail for Short (as the web page implies).
    Can anybody think of a reason for the pair of exceptions? Thanks.

    ghs wrote:
    1) If a DBMS deals with the short and byte primitive data types (as the various web pages imply that it does), then why would it not deal with the Short and Byte wrapper classes?As another guess, because conversions get a little weird in java. Or at least they did in the past. As I recall (with not a lot of clarity) it is possible to do something like pass a perfectly valid string value into a short and get an exception. Whereas using Integer and then converting to Short works.
    Keep in mind that these are guesses.
    3) What I really want to know is this: If I use wrapper classes of Short and Byte (instead of Integer), what will be the harmful consequences (IF ANY)? So far, I have done some trivial testing with a Short for a SMALLINT column (I have not yet tried any TINYINT columns), and it seems to be working.I considered it risky to not test all target databases and drivers.
    Obviously testing will reveal problems.
    If you don't want to test then you might want to stick with integers.

  • Issue is De-serializing nested date type using Axiss 1.4

    We are using Axis 1.4 and face issue during deserialization in handling date types. The scenario is explained below. I couldn’t find enough information on net on below and hence asking question to the apache team. Please note when we switch to Axis 2, issue is not seen. Upgrading may not be a simple option for us as of now, and hence I was evaluating possible workarounds or solution if any.
    The XSD contains type “DateofBirthType” which is of type xsd:date
    Child XSDs contains element “DateofBirth” of type “DateOfBirthType”
    When Java client invokes the web service, IllegalArgumentException is seen while de-serializing this “DateOfBirthType” element. If we remove “DateOfBirthType” and map it directly to xsd:date type all works fine.
    We have generated the stub using Axis 1.4 and trying to access the RetrieveIndividualCustInformation  operation through stub, but getting the (IllegalArgumentException) while axis tries to deserialize the response for all the fields having data types as date which is indirectly mapped (nested mapping) as shown below.
    e.g. IndividualInfo-----DateOfBirth(Type—DateOfbirth ---Which is of Type Date)-_you will face illegal argument exception.
    So, when we changed the type to simple date (not nested),then it worked fine. So it confirms that this problem is only for type date which is clearly seen in Axis 1.4 client.
    Please let me know if anyone faces similar/same issue or even know any such issue already persists and there are no possible workarounds and/or fixes for this. In that case we can put up case to migrate to Axis2.
    Please reply ASAP.

    Hi, Shank,
    My guess is that you want:
    , dense_rank () over (order by  tmstp  desc)  AS rn RANK means you'll skip numbers when there's a tie. For example, if 3 rows all have the exact same latest tmstp, all 3 rows would be assigned number 1, RANK would assign 4 to the next row, but DENSE_RANK assigns 2.
    "PARTITION BY x" means that you want a separate series of numbers (starting with 1) for every value of x. If you want just one series of numbers for the whole result set, then don't use a PARTITION BY clause at all. (PARTITION BY is never required.)
    Maybe you wnat to PARTITON BY cd. I can't tell without some sample data, and an explanation of why you want the given results from that data.
    You certainly don't want to PARTITION BY the same expression that you ORDER BY; that just means all rows tie for #1.
    I hope this answers your question.
    If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all tables involved, and also post the results you want from that data.
    Explain, using specific examples, how you get those results from that data.
    Simplify the problem as much as possible.
    Always say which version of Oracle you're using.
    See the forum FAQ {message:id=9360002}
    Edited by: Frank Kulash on Aug 1, 2012 1:20 PM

  • Data Type for Process Flow... PB with Date?

    I've got a problem by passing parameters in process flow.
    I have a mapping with a parameter DATE_EXEC (data type : DATE) and a default value that is TO_DATE('20/01/2007' , 'dd/mm/yyyy') . My mapping is working good when i launch it.
    I have a process flow which contains the mapping. This process has a parameter DATE_EXEC (data type : DATE). I bind the 2 DATE_EXEC. But when i launch my mapping the value is not recognized, I try with :
    - TO_DATE('20/01/2007' , 'dd/mm/yyyy')
    - 20/01/2007
    - 2007.01.20
    - 2007-01-20
    My question is what are the data type in process flow? They are not ORACLE TYPE.
    For example , a parameter in a mapping which is a VARCHAR2 must be input between quotes but if you bind it to a parameter of a process flow which is a STRING (not ORACLE Data type) , you must input it without quotes?
    Anybody has some rules about that?
    I apologize for my english, i'm a french people.

    Here is some information on the literal quote or not quote query and what I think you need to do at the end, hope it helps. Not exactly intuitive...since the flow designer (you) have to know what is a PLSQL object and what is not.
    1. Literal = FALSE
    When Literal = FALSE is set then the value entered must be a valid PL/SQL expression which is evaluated at the Control Center e.g.
    'Hello World!'
    22 / 7
    2. Literal = TRUE
    When Literal = TRUE then the value is dependent on the the type of Activity. If the activity is a PL/SQL object i.e. Mapping or Transformation, then the value is PL/SQL snippet. The critical difference here is that the value is macro substituted into the call for the object. The format of the value is identical to that entered as default value in the Mapping editor. e.g.
    'Hello World!'
    sysdate()
    If the activity type is not a PL/SQL object then the value is language independent. e.g.
    Hello World
    3.1427571
    What you should try......
    Check the map activity parameter in your process flow to see if literal is false (an expression), set it to false and then try using your TO_DATE('20/01/2007' , 'dd/mm/yyyy') expression, deploy your flow and execute. Alternatively the user guide defines the DATE type for flow with the format YYYY-MM-DD so you can have the parameter value as '2007-01-20' use literal equal to true and remember and quote your value.
    Cheers
    David

  • What will be data type for the newly created Service Interface def.?

    hi @,
    I am using new Service interface for the start event with objective that any outside application will be able to trigger the BPM. I have created the same SI and its operation and Input params. Now when the request comes there is an exclusive choice gateway which based upon the input fields decide which path to take into consideration. Now I need to map the SI input to the Data object but which data type I need to use ideally it should be the data type defined in the Service Interface should be used but I am not able to locate the same in the data type folder .
    How can I map the input service interface data type to the Data object so that it is available in the next BPM steps?
    Thanks,

    Hi,
    Typically the used types in a new service interface are anonymous. Try making the used complex type a global one (Right-Click onto it -> Refactor -> Make Anonymous Type Global).
    Afterwards you could use the speed button around your your 'start event' and create a new 'data object' from there. Now the IDE automatically assigns the type of the service interface to your 'data object' and  performs the standard mapping between the 'start event' and the 'data object' in addition.
    Please also have a look at the documentation for further information:
    Accelerated Modeling with Speed Buttons
    http://help.sap.com/saphelp_nwce711/helpdata/en/16/52f063cac643d2917347aab86930ef/frameset.htm
    There is also an interesting blog entry dealing with data objects and their reuse:
    How to avoid modeling errors in Netweaver BPM? Part 3: Data flow in style
    /people/soeren.balko/blog/2009/02/03/how-to-avoid-modeling-errors-in-netweaver-bpm-part-3-data-flow-in-style
    Hope that helps,
    Martin

  • Accessing Non-Built-In Data Types  webservice??

    While trying to inoke a webservice, which takes in non-built-in data types, the
    following EXCEPTION is thrown.
    [java] 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.jay.com/com/jay/obsoon/orderstatus']:DoOBSStat
    usWebService}
         While trying to inoke a webservice, which takes in non-built-in data types,
    ERROR is thrown.
         [java] Calling Web Service at: ServiceImpl[
    [java] WebService[
    [java] name=DoOBSStatusWebService,
    [java] javax.xml.rpc.JAXRPCException: failed to invoke operation 'checkJavaObjects'
    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.jay.com/com/jay/obsoon/orderstatus']:DoOBSStatusWebService}]StackTrace[
    [java] targetNamespace=http://www.jay.com/com/jay/obsoon/orderstatus,
    [java] protocol=http,
    [java] ]
    [java] ]
    [java] 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.jay.com/com/jay/obsoon/orderstatus']:DoOBSStat
    usWebService}
    [java] at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:328)
    [java] at weblogic.webservice.core.DefaultPart.toXML(DefaultPart.java:297)
    [java] at weblogic.webservice.core.DefaultMessage.toXML(DefaultMessage.java:645)
    [java] at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:206)
    [java] at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:143)
    [java] at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
    [java] at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:443)
    [java] at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:558)
    [java] at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:411)
    [java] at com.jay.obsoon.orderstatus.Client.example(Client.java:87)
    [java] at com.jay.obsoon.orderstatus.Client.main(Client.java:40)
    [java] Caused by: weblogic.xml.schema.binding.SerializationException: mapping
    lookup failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://www.jay.com/com/jay/obsoon/orderstatus']:DoOBS
    StatusWebService}
    [java] at weblogic.xml.schema.binding.RuntimeUtils.lookup_serializer(RuntimeUtils.java:151)
    [java] at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:187)
    [java] at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:174)
    [java] at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:324)
    [java] ... 10 more
    [java] ]
    [java] at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:578)
    [java] at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:411)
    [java] at com.jay.obsoon.orderstatus.Client.example(Client.java:87)
    [java] at com.jay.obsoon.orderstatus.Client.main(Client.java:40)
    [java] Exception in thread "main"
    [java] Java Result: 1
    CLIENT CODE:
    package com.jay.obsoon.orderstatus;
    import javax.xml.rpc.Call;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.rpc.ServiceFactory;
    import javax.xml.rpc.Service;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.encoding.*;
    import java.io.*;
    public class Client
         private static String TARGET_NAMESPACE = "http://www.jay.com/com/jay/obsoon/orderstatus";
         private static QName xsdString = new QName("http://www.w3.org/2001/XMLSchema",
    "string");
         public static void main(String[] args) throws Exception
              System.setProperty("javax.xml.soap.MessageFactory", "weblogic.webservice.core.soap.MessageFactoryImpl");
              System.setProperty( "javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl");
         Client client = new Client();
              String wsdl = (args.length > 0? args[0] : null);
              client.example(wsdl);
         public void example(String wsdlURI) throws Exception
              ServiceFactory factory = ServiceFactory.newInstance();
              QName serviceName = new QName(TARGET_NAMESPACE, "DoOBSStatusWebService");
              QName portName = new QName(TARGET_NAMESPACE, "DoOBSStatusWebServicePort");
              QName operationName = new QName("checkJavaObjects");
              Service service = factory.createService(serviceName); System.out.println("Calling
    Web Service at: "+ service);
              TypeMappingRegistry tmr = service.getTypeMappingRegistry();
              TypeMapping tm = (TypeMapping)tmr.createTypeMapping();
              tm.register(Order.class, serviceName, new com.jay.obsoon.orderstatus.OrderCodec(),
    new com.jay.obsoon.orderstatus.OrderCodec());
              Call call = service.createCall();
              call.setPortTypeName(portName);
              call.setOperationName(operationName);
              call.setTargetEndpointAddress(wsdlURI);
              call.addParameter( "order", serviceName, ParameterMode.INOUT );
              call.setReturnType( XMLType.XSD_STRING );
              Order order = new Order();
              order.setOrderID("ABC");
              order.setOrderDate("05182004");
              log("Hope:" + call.invoke( new Object[] { order } ));
         private static void log(String s)
              System.out.println(s);
    Please let me know what wrong am i doing while accessing the webservice.
    Thanks
    Jay

    Hi Naichen,
    You're going to need to register some type mappings in your client code :-)
    To know which ones, you should examine the <your-service-name>.xml file, in the
    client proxy .JAR, which is produced by the clientgen Ant task. It should contain
    XML that looks something like this:
    <wsdd:type-mapping-entry xmlns:lcl0="http://www.openuri.org/"
    class-name="org.openuri.www.invoke"
    type="lcl0:invoke"
    serializer="org.openuri.www.invokeCodec"
    deserializer="org.openuri.www.invokeCodec">
    </wsdd:type-mapping-entry>
    <wsdd:type-mapping-entry xmlns:lcl0="http://www.openuri.org/"
    class-name="org.openuri.www.invokeResponse"
    type="lcl0:invokeResponse"
    serializer="org.openuri.www.invokeResponseCodec"
    deserializer="org.openuri.www.invokeResponseCodec">
    </wsdd:type-mapping-entry>
    You'll need to create type mapping calls in you client code that looks like this:
    import javax.xml.rpc.encoding.TypeMapping;
    import javax.xml.rpc.encoding.TypeMappingRegistry;
    import weblogic.webservice.core.encoding.stream.SOAPElementCodec;
    import weblogic.xml.xmlnode.XMLNode;
    import com.bea.xml.XmlObject;
    TypeMappingRegistry registry = service.getTypeMappingRegistry();
    TypeMapping typemapping = registry.getTypeMapping(SOAPConstants.URI_NS_SOAP_ENCODING
    typemapping.register(
         javax.xml.soap.SOAPElement.class,
         new QName("http://www.w3.org/2001/XMLSchema", "anyType"),
         new SOAPElementCodec(),
         new SOAPElementCodec()
    typemapping.register(
         javax.xml.soap.SOAPElement.class,
         new QName("http://www.openuri.org/", "YourXMLBeanClassDocument"),
         new SOAPElementCodec(),
         new SOAPElementCodec()
    YourRequestXMLBeanClassDocument request = null;
    YourResponseXMLBeanClassDocument response = null;
    // invoke operation
    try
         XMLNode xmlNodeResponse = (XMLNode)call.invoke(new Object[]{ asXMLNode(request)
         response = YourResponseXMLBeanClassDocument.Factory.parse(xmlNodeResponse.toString());
         log("inStock(String,Call)", "response.xmlText()=\n" + response.xmlText());
    catch (Exception e)
         e.printStackTrace();
    private static XMLNode asXMLNode(XmlObject xmlObject) throws Exception
         XMLNode xmlNode = new XMLNode();
         xmlNode.read(xmlObject.newInputStream());
         return xmlNode;
    You may not have to do the type mapping for the invoke and invokeResponse types
    (or any type relating to an operation/operationResponse element), but I'm pretty
    sure you'll need to do it for the XMLBean types, used as input arguments (or return
    values) to the web service operations. Send me the WSDL, and .xml files from the
    client proxy .jar, if you can't figure things out from the info I've provided
    here. I'll send you back what the client code needs to look like, based on the
    contents of these two files :-)
    Regards,
    Mike Wooten
    "Naichen" <[email protected]> wrote:
    >
    I created one document style webservice by weblogic 81 sp2 workshop,
    both input
    and output to webservice are XML beans.
    When I tried call it with proxy jar file generated by weblogic, it works
    fine,
    When I tried to call it with javax.xml.rpc.Call.
    then I got the similar Exceptions, like
    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/']:invoke}
         at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:328)
         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:457)
         at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:443)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:558)
         at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:411)
         at com.ual.rcc.wsclient.CommonClt.run(CommonClt.java:58)
         at com.ual.rcc.wsclient.CommonClt.main(CommonClt.java:65)
    Caused by: weblogic.xml.schema.binding.SerializationException: mapping
    lookup
    failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://www.openuri.org/']:invoke}
         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:324)
         ... 10 more

  • Issue with xsd Data type mapping for collection of user defined data type

    Hi,
    I am facing a issue with wsdl for xsd mapping for collection of user defined data type.
    Here is the code snippet.
    sample.java
    @WebMethod
    public QueryPageOutput AccountQue(QueryPageInput qpInput)
    public class QueryPageInput implements Serializable, Cloneable
    protected Account_IO fMessage = null;
    public class QueryPageOutput implements Serializable, Cloneable
    protected Account_IO fMessage = null;
    public class Account_IO implements Serializable, Cloneable {
    protected ArrayList <AccountIC> fintObjInst = null;
    public ArrayList<AccountIC>getfintObjInst()
    return (ArrayList<AccountIC>)fintObjInst.clone();
    public void setfintObjInst(AccountIC val)
    fintObjInst = new ArrayList<AccountIC>();
    fintObjInst.add(val);
    Public class AccountIC
    protected String Name;
    protected String Desc;
    public String getName()
    return Name;
    public void setName(String name)
    Name = name;
    For the sample.java code, the wsdl generated is as below:
    <?xml version="1.0" encoding="UTF-8" ?>
    <wsdl:definitions
    name="SimpleService"
    targetNamespace="http://example.org"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://example.org"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    >
    <wsdl:types>
    <xs:schema version="1.0" targetNamespace="http://examples.org" xmlns:ns1="http://example.org/types"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://example.org/types"/>
    <xs:element name="AccountWSService" type="ns1:accountEMRIO"/>
    </xs:schema>
    <xs:schema version="1.0" targetNamespace="http://example.org/types" xmlns:ns1="http://examples.org"
    xmlns:tns="http://example.org/types" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://examples.org"/>
    <xs:complexType name="queryPageOutput">
    <xs:sequence>
    <xs:element name="fSiebelMessage" type="tns:accountEMRIO" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="accountEMRIO">
    <xs:sequence>
    <xs:element name="fIntObjectFormat" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageType" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageId" type="xs:string" minOccurs="0"/>
    <xs:element name="fIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fOutputIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fintObjInst" type="xs:anyType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="queryPageInput">
    <xs:sequence>
    <xs:element name="fPageSize" type="xs:string" minOccurs="0"/>
    <xs:element name="fSiebelMessage" type="tns:accountEMRIO" minOccurs="0"/>
    <xs:element name="fStartRowNum" type="xs:string" minOccurs="0"/>
    <xs:element name="fViewMode" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://example.org" xmlns:ns1="http://example.org/types">
    <import namespace="http://example.org/types"/>
    <xsd:complexType name="AccountQue">
    <xsd:sequence>
    <xsd:element name="arg0" type="ns1:queryPageInput"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="AccountQue" type="tns:AccountQue"/>
    <xsd:complexType name="AccountQueResponse">
    <xsd:sequence>
    <xsd:element name="return" type="ns1:queryPageOutput"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="AccountQueResponse" type="tns:AccountQueResponse"/>
    </schema>
    </wsdl:types>
    <wsdl:message name="AccountQueInput">
    <wsdl:part name="parameters" element="tns:AccountQue"/>
    </wsdl:message>
    <wsdl:message name="AccountQueOutput">
    <wsdl:part name="parameters" element="tns:AccountQueResponse"/>
    </wsdl:message>
    <wsdl:portType name="SimpleService">
    <wsdl:operation name="AccountQue">
    <wsdl:input message="tns:AccountQueInput" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"
    ns1:Action=""/>
    <wsdl:output message="tns:AccountQueOutput" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"
    ns1:Action=""/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="SimpleServiceSoapHttp" type="tns:SimpleService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="AccountQue">
    <soap:operation soapAction=""/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="SimpleService">
    <wsdl:port name="SimpleServicePort" binding="tns:SimpleServiceSoapHttp">
    <soap:address location="http://localhost:7101/WS-Project1-context-root/SimpleServicePort"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    In the above wsdl the collection of fintObjInst if of type xs:anytype. From the wsdl, I do not see the xsd mapping for AccountIC which includes Name and Desc. Due to which, when invoking the web service from a different client like c#(by creating proxy business service), I am unable to set the parameters for AccountIC. I am using JAX-WS stack and WLS 10.3. I have already looked at blog http://weblogs.java.net/blog/kohlert/archive/2006/10/jaxws_and_type.html but unable to solve this issue. However, at run time using a tool like SoapUI, when this wsdl is imported, I am able to see all the params related to AccountIC class.
    Can some one help me with this.
    Thanks,
    Sudha.

    Did you try adding the the XmlSeeAlso annotation to the webservice
    @XmlSeeAlso({<package.name>.AccountIC.class})
    This will add the schema for the data type (AccountIC) to the WSDL.
    Hope this helps.
    -Ajay

  • XI settings, change of Data Types and XI still maps old structures

    Hi,
    I have defined XI scenario, where synchronous WebService is being called, and XI calls RFC function module, which returns data. It was working perfectly, until
    I have changed the order of few fields in Data Type and added a few new (exactly as the changes in RFC function module).
    And now the WebService returns exception, on the first field added to the interface:
    <Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns1:MT_BMS_Response/CUSTOMERS_PERSON/TITLE. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at
    TITLE is added field.
    I have reactivated everything one by one again, clear cache from Integration Builder and Integration Directory, but it does not help and still old structures are being used in XI.
    I have tested the Interface Mapping and all fields are transformed correctly.
    Please help as it comes a little urgent and I have run out of ideas what to do to refresh the customizing of data types?
    Thank you in advance!

    Hi Peter,
    Yes, I am calling RFC function module from XI.
    After I changed the interface of RFC in SAP, I have imported this RFC once more to XI in Integration Builder and new structures appeared.
    And exception returned is that first new field added to the RFC and Data Type and so on, returns an exception.
    And returned XML structures (in message monitoring) appears to be still old structures.

  • Problem with a data type (quantum13.3) in the mapping

    Hello all,
    i have an automated activity in my process which access to a webservice. (The Webservice returned the details of a purchase requisition) At the webservice output mapping i get this error:
    "Incompatible expression type ... Expected: com.sap.dictionary.double ... Found: quantum13.3..."
    Has anyone an idea how i could accept this data type? Has anyone ever heard of the type "quantum13.3"?
    Regards,
    Bastian

    Hi Bastian,
    This error is showing up whenever you try to map incompatible types.
    The type of the element you map to is most likely the 'com.sap.dictionary.double' whereas the service is returning an element of type 'quantum13.3'. The mapping expects that both types fit to each other, but they do not.
    Check the used service for that specific type. Perhaps it is just a restriction of a 'well-known' type or the service returns the data in another format / element as well.
    *edit'
    Looking up the type via a well-known search engine showed the following definition:
          <xsd:simpleType name="quantum13.3">
            <xsd:restriction base="xsd:decimal">
              <xsd:totalDigits value="13"/>
              <xsd:fractionDigits value="3"/>
            </xsd:restriction>
          </xsd:simpleType>
    Looks like this is a normal 'xsd:decimal' then. Try using 'xsd:decimal' instead of 'com.sap.dictionary.double' within the target element.
    Hope that helps,
    Martin
    Edited by: Martin Moeller on Apr 27, 2009 12:53 PM (type found)

  • Saving result from sp_executesql into a variable and using dynamic column name - getting error "Error converting data type varchar to numeric"

    Im getting an error when running a procedure that includes this code.
    I need to select from a dynamic column name and save the result in a variable, but seem to be having trouble with the values being fed to sp_executesql
    DECLARE @retval AS DECIMAL(12,2)
    DECLARE @MonthVal VARCHAR(20), @SpreadKeyVal INT
    DECLARE @sqlcmd AS NVARCHAR(150)
    DECLARE @paramdef NVARCHAR(150)
    SET @MonthVal = 'Month' + CAST(@MonthNumber AS VARCHAR(2) );
    SET @SpreadKeyVal = @SpreadKey; --CAST(@SpreadKey AS VARCHAR(10) );
    SET @sqlcmd = N' SELECT @retvalout = @MonthVal FROM dbo.CourseSpread WHERE CourseSpreadId = @SpreadKeyVal';
    SET @paramdef = N'@MonthVal VARCHAR(20), @SpreadKeyVal INT, @retvalout DECIMAL(12,2) OUTPUT'
    --default
    SET @retval = 0.0;
    EXECUTE sys.sp_executesql @sqlcmd,@paramdef, @MonthVal = 'Month4',@SpreadKeyVal = 1, @retvalout = @retval OUTPUT;
    SELECT @retval
    DECLARE @return_value DECIMAL(12,2)
    EXEC @return_value = [dbo].[GetSpreadValueByMonthNumber]
    @SpreadKey = 1,
    @MonthNumber = 4
    SELECT 'Return Value' = @return_value
    Msg 8114, Level 16, State 5, Line 1
    Error converting data type varchar to numeric.

    Please follow basic Netiquette and post the DDL we need to answer this. Follow industry and ANSI/ISO standards in your data. You should follow ISO-11179 rules for naming data elements. You should follow ISO-8601 rules for displaying temporal data. We need
    to know the data types, keys and constraints on the table. Avoid dialect in favor of ANSI/ISO Standard SQL. And you need to read and download the PDF for: 
    https://www.simple-talk.com/books/sql-books/119-sql-code-smells/
    >> I need to select from a dynamic column name and save the result in a variable, but seem to be having trouble with the values being fed to sp_executesql <<
    This is so very, very wrong! A column is an attribute of an entity. The idea that you are so screwed up that you have no idea if you want
    the shoe size, the phone number or something else at run time of this entity. 
    In Software Engineering we have a principle called cohesion that says a model should do one and only one task, have one and only one entry point, and one and only one exit point. 
    Hey, on a scale from 1 to 10, what color is your favorite letter of the alphabet? Yes, your mindset is that level of sillyity and absurdity. 
    Do you know that SQL is a declarative language? This family of languages does not use local variables! 
    Now think about “month_val” and what it means. A month is a temporal unit of measurement, so this is as silly as saying “liter_val” in your code. Why did you use “sp_” on a procedure? It has special meaning in T-SQL.  
    Think about how silly this is: 
     SET @month_val = 'Month' + CAST(@month_nbr AS VARCHAR(2));
    We do not do display formatting in a query. This is a violation of at the tiered architecture principle. We have a presentation layer. But more than that, the INTERVAL temporal data type is a {year-month} and never just a month. This is fundamental. 
    We need to see the DDL so we can re-write this mess. Want to fix it or not?
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Mapping Float with data type Qty or Curr or INT4

    Hi,
    We are extracting the data from a table. Some fields are defined as Float but at trasfer rules we have mapped those Key figures with Quantity or Currency or INT4 .
    In transfer rules there is only info object mapping. But when extracting the data we are not getting any data even In PSA for those fields.
    Please suggest should we change the data type or any changes
    Thanks,
    Shaliny. M

    Hi,
    Can you provide some more inputs.
    have you mapped with Standard Fields.
    Reg
    Pra

  • Data Type, Message Type and Mapping for FTP

    Thanks in advance for your replies.
    As our first production XI scenario, we need to move several (at least 46) files from our SAP instance to a couple of different servers to support our legacy systems.  Once all locations are on SAP this requirement should go away.
    I only want to pick up the file from the one server and place it on the other and this leads me to some questions.
    How do I define the Data Type and Message Type for each of the files?   Do I need to consider the size of the record in each interface and create DT/MT with different sizes.
    Do I need a mapping program that simply maps one structure to the other?

    I recently completed a similar exercise.
    It looks like this...
    server1 ftp (Sender - delete file) - XI - Server2 ftp (receiver - create file).  This will move the file from one server to another.
    I used the same schema and mapped fields on a one to one basis.
    The Size of the files I process are between 6kb and 500kb each, but the mapping/fields remain constant, just the numebr of items change.
    Worked seemelessly for the last three weeks (since go-live)

  • ABAP Data type to XI data type mapping

    Hi,
    I am creating a message type in XI corresponding to a ABAP structure. There are couple of data types on the ABAP side (for example: RAW, QUAN, CURR CUKY, UNIT, NUMC etc) which i have no idea on what it should be mapped to on the XI side(xsd:string, xsd:token, xsd:int etc).
    Is there is any document on mapping from ABAP data type to XML data type ? if yes please send it across.([email protected])
    if no doc available, if some body could let me know what these ABAP data type would map on the XI side it would great.
    Best Regards,
    Kiran

    Hi Kiran,
    just some more background information to the data types CURR, CUKY, QUAN, UNIT:
    1) Each field of data type CURR must be assigned to a field of data type CUKY (the financial amount must be assigned to a currency) and each field of data type QUAN must be assigned to a field of data type UNIT (each quantity must have a dimension). If you want to know this assignment for your specific ABAP structure, you can find it using transaction SE11 with your ABAP structure and go to the tab <i>Currency/Quantity fields</i>. Here you find the information under <i>Reference table</i> and <i>Ref. field</i>.
    2) The default number of decimals for a field of data type CURR is 2, but this can be overwritten by the assigned CUKY field. You can check the actual number of decimals for a specific currency with transaction OY04. Here are all currency list that do <b>not</b> have 2 decimals.
    3) The default number of decimals for a field of data type QUAN is 3, but this can be overwritten by the assigned UNIT field. You can check the actual number of decimals for a specific unit with transaction CUNI. Click on <i>Units of measurement</i> (pick the correct dimension first), double click on your unit and you find the info in the field <i>Decimal places</i>.
    4) Depending on the data you receive your conversions can get quite tricky. Lets take as an example a field of type CURR. If you find the value 1000 in there, this would convert to 10.00 USD if the assigned CUKY field contains the value USD (US dollar). But the same value ca represent 1000 JPY (Japanese Yen) if the assigned CUKY field contains the value JPY. What i try to say is that the value in the field of type CURR alone does not give you the actual amount, you have to know the value of the CUKY field as well. Similar for QUAN and UNIT.
    Regards,
    Claus

Maybe you are looking for