Visual Mapping for Generic Type

I have generic message type:
-Row (Occurences 1..unbounded)
--Field (Occurences 1..unbounded)
I want to use this type for all csv files(with different amount of fileds). But how can I map this type on my own type in Visual Mapping? Is it possible?
For example:
  <row>
    <field>111</field>
    <field>222</field>
  </row>
Result MT:
   <user>
     <name>111</name>
     <number>222</number>
   </user>
Message was edited by: Sergey A

Hi Sergey,
This is possible in message mapping using user defined functions but needs lot of hardcoding in the code interms of position of the each field i.e
In your message queues the <field>111</field> will be in  position1 and <field>222</field> in position2. so simply map content of position1  <name>111</name> and content of position2 to <number>222</number>. Simple java code in user defined function can do this.
But there is risk involved since the mapping is position based all the fields in the source must exist(at least blank value).
consider input message with 3 fields
<row>
<field>111</field>
<field>222</field>
<field>333</field>
</row>
and target
<user>
<name>111</name>
<number>222</number>
<number>333</number>
</user>
If suppose your second field <field>222</field> does'nt exist then in your message queue <field>333</field> will move to second position henece your mapping might get messed up and fail.
Regards
Anand

Similar Messages

  • Getter method for Generic type in BinarySearchTree

    Hi, I had to write an implementation of a BinarySearchTree for an assignment.
    I have the two classes, one 'BinarySearchTree' which basicly just points to the root, and the node that does most of the work:
    public class BinaryNode<K extends Comparable<K>,V>
         public K _key;
         public V _val;
         private BinaryNode _left;
         private BinaryNode _right;
         public V getVal() //getter
              return _val;
    }In my BinarySearchTree class I use this getter method like so:
    V nodeValue;
    nodeValue = (V) oldNode.getVal();The thing I don't understand is why I have to cast the value returned? If I don't it won't compile!
    It is working fine as is, but my lecturer is always saying to avoid casts.
    Thanks,
    Austin.

    Your BinaryNode class looks OK.
    Could you post a small piece of code I can compile and run and results in the compile error you described? (Don't post the entire thing!)
    Thanks.

  • [ANN] Java IDE with generic type support

    Hello all!
    We are proud to announce that we have just released version 5.0 of our Java IDE CodeGuide.
    CodeGuide 5.0 offers full support for generic types as defined in JSR 14. Features are:
    - Fast incremental on-the-fly compilation
    - On-the-fly error checking of the whole project
    - Code completion
    - Usage search
    - Refactoring (like Renaming, Class moving, etc.)
    - and more...
    A 30-day trial can be downloaded from our web page at
    http://www.omnicore.com
    Any feedback regarding JSR 14 support is much appreciated.
    Best regards,
    Dennis Strein
    Omnicore Software

    I wrote a class MultiMap<K, V> extends Map<K, Set<V>>
        // Various constructors, methods, fields.
        public Set<V> get(K key)
            // Implementation
    } It compiles fine with the Sun reference compiler, but a friend tells me that CodeGuide 5.0 build 504 complains "There already is another method with the same erasure." It could be that CodeGuide is correct and Sun wrong, because I can see that there might be issues with overriding the get(Object) method with a get(K), but I thought I'd mention it.

  • 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

  • Core Data Services in ABAP : No URI-Mapping defined for object type DDLS

    Hi ,
    When creating a DDL source , I get the error
    " No URI-Mapping defined for object type DDLS and object name ZCDSV_01_06".
    Can you please suggest what the issue could be?
    Thanks,
    Chakram Govindarajan

    Now I am able to proceed to the next step. Not sure how this started working. However, I get the below error when I open the DDL source editor for one particular ABAP system added in the eclipse environment. I however do not get the error when I open the DDL source editor for another system ( AH4) .I am providing the log error details . I updated the ADT installation. However the issue has not been resolved. Also I tried implementing the Note: 1834948. However I cannot find the option "Team -> Share project..." in the ABAP project.
    Thanks,
    Chakram Govindarajan

  • Mapping problem for IDOC Type DESADV

    Dear all
    I need to change Segment E1EDP07 in the message type DESADV.
    I should concatenate VBELN and VGPOS into BSTNK.
    I tried to do this with BD79 (Rules for Data Converting). This seems not to work as I can get only 1 sender Field.
    So I tried to use the userexit EXIT_SAPLBD11_001, but it seems that this is not used. I have set a break-point for debugging and treated the IDOC with RSNAT00 without any stop.
    Do you have any ideas how I can do this?
    Herbert

    >
    Herbert Schlup wrote:
    > I have 2 entries for my DWSADV01
    >
    > 1 with FM IDOC_INPUT_DESADV and the other with IDOC_INPUT_DESADV1
    With the first one, you cannot do much, as there is no user exit in it. But in the second one, there is a user exit when the idoc data is parsed the exit name is EXIT_SAPLV55K_004 and is called in the subroutine  DESADV_IDOC_PARSE in the function.
    But please note that the function IDOC_INPUT_DESADV1 is used with process code DELS for message type DESADV and Idoc type DELVRY01 and IDOC_INPUT_DESADV  is used with process code DESA and message type DESADV with IDoc type DESADV01.  So you might be using IDOC_INPUT_DESADV  function and unfortunately there are no user exits to handle your requirement.
    My advice would be to check with the source system or the middleware to define the mapping of these fields according to your requirement. But if that is not possible, then you need to first check which message type and IDoc type you are receiving and proceed accordingly
    KR,
    Advait

  • DeserializationException: mapping lookup failure for xml type

    I generated a web-services.xml with the wsdl2Service task without a type mapping. The service is a document/literal based web service. I implemented the Java method, which accepts a single parameter with type javax.xml.soap.SOAPElement and returns javax.xml.soap.SOAPElement. Everytime I invoke the method from a client I get the following error from the server (WebLogic 8.1 SP4):
    weblogic.xml.schema.binding.DeserializationException: mapping lookup failure for xml type ['urn:mytest1']:test and java interface javax.xml.soap.SOAPElement
    at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:325)
    What could be wrong with my configuration?

    Hi,
    I am also facing the same problem on weblogic8.1SP1.
    If you had rectified this problem, please advice me as well.

  • Best Practices to update Cascading Picklist mapping for Account record type

    1. Most of the existing picklist values name in parent and related picklist has been modified in external app master list, so the same needs to be updated in CRMOD.
    2. If we need to update picklist value, do we need to DISABLE the existing value and CREATE a new picklist.
    3. Is there any Best Practices to avoid doing Manual Cascading picklist mapping for Account record type? because we have around 500 picklist values to be mapped with parent and related picklist.
    Thanks!

    Mahesh, I would recommend disabling the existing values and create new ones. This means manually remapping the cascading picklists.

  • Maps for iPad quits when I type in the search line

    I can't search in Maps for iPad since it quits every time I try to type something into the search line. I tried restarting the iPad and even restored it from iTunes. Still can't search without it shutting down. I'm at a loss for a solution.

    Exactly the same here. Tried almost everything I can think of. Honestly, this is bordering on the completely unacceptable, as if you can't ever enter certain letters, there's no way to search on maps, or anywhere else on the iPad, and this is one of the main reasons I bought it - for travelling in foreign cities.
    Perhaps coincidentally, a lot of apps just seem to crash like maps do, but only on the iPad, not the same apps on my iPhone.

  • Rules for casting generics type

    I know that there is a section in jsr14 spec about rules of casting generic types, but it seems outdated with
    JLS3.
    It is obvious that e.g. Class<String> cannot be casted to Class<Integer>.
    However in
    <T,V> void foo (Class<T> ct) {
    Class<V> cv = (Class<V>)ct;
    The cast is permitted by the compiler though of course marked as unchecked (The cast should be rejected according to jsr14 spec since none of the types is a subtype of the other).
    So the question is: what are the rules, compiler uses to check casts?

    1. There is an (unsafe) explicit cast from l1 to l2.
    2. There is an implicit cast in the last line, because
    l2 is a List<String>, the line is compiled to the
    equivalent of
    System.out.println(" result:" + (String) l2.get(0));
    // ClassCastException: java.lang.String

  • Tutorial for make a non-generic type class from a generic type interface

    Hi there,
    How can I make a non-generic type class from a generic type interface?
    I appreciate if somebody let me know which site can help me.
    Regards
    Maurice

    I have a generic interface with this signature
    public interface IELO<K extends IMetadataKey>
    and I have implemented a class from it
    public class CmsELOImpl<K extends IMetadataKey> implements IELO<K>, Cloneable, Serializable
    then I have to pass class of an instance CmsELOImpl to AbstractJcrDAO class constructor whit below signature
    public abstract class AbstractJcrDAO<T> implements JcrDAO<T> {
    public AbstractJcrDAO( Class<T> entityClass, Session session, Jcrom jcrom ) {
              this(entityClass, session, jcrom, new String[0]);
    So I have made another class extended from AbstractJcrDAO. Below shows the code of this class and itd constructor
    public class ELODaoImpl extends AbstractJcrDAO<CmsELOImpl<IMetadataKey>> {
         public ELODaoImpl( Session session, Jcrom jcrom ) {
         super(CmsELOImpl.class , session , jcrom, MIXIN_TYPES);
    and as you see in its constructor I am calling the AbstractJcrDAO constructor by supper method
    then I got this error on the line of super method
    The constructor AbstractJcrDAO(class<CmsELOImpl>, session, Jcrom, String[]) is undefined.
    as I know java generics are implemented using type erasure. This generics are only
    in the java source file and not in the class files. The generics are only used by the compiler and
    they are erased from the class files. This is done to make generics compatible with (old) non generics java code.
    As a result the class object of AbstractJcrDAO<CmsELOImpl<IMetadataKey>>
    is AbstractJcrDAO.class. The <CmsELOImpl<IMetadataKey>> information is
    not available in the class file. As far as I understand it, I am looking a way
    to pass <CmsELOImpl<IMetadataKey>>, if it is possible at all.
    Maurice

  • If a  class method exporting a value with the generic type 'data'.

    Then how can I get the information?
    For exmple.
    cl_my_clss->get_value( exporting ev_data = .... ) .
    ev_data is a type of data.
    I can not use DATA : lv_mine type data. because generic data should be used in formal parameter, however , if I use a field symbol, how to assign value with out knowing the data type?
    Best regards,

    Hi Blake,
    As per my understanding,
    You are getting the data type from the database table....
    You want to use the same data type....
    Lets say for example:
    You have a db table x with field y having data type Z.
    What you do is that, while declaring the data type for the attribute in the method use the reference as table_name-field_name(x-y).
    Or....
    use ANY. This will give you a chance to map any field type to this method....
    Note: Using ANY will limit the syntax that you can use within the method......
    Regards,
    Kunjal

  • Array of Maps without generic or warnings?

    How would I create an array of maps without getting an error about a generic type or a warning?
    This will give me an error.
    HashMap<Integer,Integer> test = new HashMap<Integer,Integer>[5];This will give me a warning.
    HashMap<Integer,Integer> test = new HashMap[5];

    Dennis_Martinez wrote:
    Could I see an example? I'm a little lost on doing so.I suspect you know how to use lists and ask for an example demonstrating the inherent unsafety. So here it is:
    List<String>[] generic = new List<String>[1]; // assume this works
    List<Integer> ints = new ArrayList<Integer>();
    ints.add(42);
    Object[] o = generic;
    o[0] = ints; // this should not work, but it does (erasure)
    List<String> strings = generic[0]; // really it's a list of Integers, ohoh
    // now you pass that list somewhere completely unrelated and try to get an element:
    String s = strings.get(0); // ClassCastExceptionCompare this to:
    String[] strings = new String[1];
    Object[] objects = strings;
    objects[0] = 42; // ArrayStoreExceptionWith kind regards
    Ben

  • How To: Use reflection to create instance of generic type?

    I would like to be able to use reflection to instantiate an instance of a generic type, but can't seem to avoid getting type safety warnings from the compiler. (I'm using Eclipse 3.1.1) Here is a trivial example: suppose I want to create an instance of a list of strings using reflection.
    My first guess was to write the following:
    Class cls = Class.forName("java.util.ArrayList<String>");
    List<String> myList = cls.newInstance();The call to Class.forName throws a ClassNotFoundException. OK, fine, so I tried this:
    Class cls = Class.forName("java.util.ArrayList");
    List<String> myList = cls.newInstance();Now the second line generates the warning "Type safety: The expression of type List needs unchecked conversion to conform to List<String>".
    If I change the second line to
    List<String> myList = (List<String>)cls.newInstance();then I get the compiler warning "Type safety: The cast from Object to List<String> is actually checking against the erased type List".
    This is a trivial example that illustrates my problem. What I am trying to do is to persist type-safe lists to an XML file, and then read them back in from XML into type-safe lists. When reading them back in, I don't know the type of the elements in the list until run time, so I need to use reflection to create an instance of a type-safe list.
    Is this erasure business prohibiting me from doing this? Or does the reflection API provide a way for me to specify at run time the type of the elements in the list? If so, I don't see it. Is my only recourse to simply ignore the type safety warnings?

    Harald,
    I appreciate all your help on this topic. I think we are close to putting this thing to rest, but I'd like to run one more thing by you.
    I tried something similar to your suggestion:public static <T> List<T> loadFromStorage(Class<T> clazz) {
        List<T> list = new ArrayList<T>();
        for ( ...whatever ...) {
           T obj = clazz.newInstance();
           // code to load from storage ...
           list.add(obj);
        return list;
    }And everything is fine except for one small gotcha. The argument to this method is a Class<T>, and what I read from my XML storage is the fully qualified name of my class(es). As you pointed out earlier, the Class.forName("Foo") method will return a Class<?> rather than a Class<Foo>. Therefore, I am still getting a compiler warning when attempting to produce the argument to pass to the loadFromStorage method.
    I was able to get around this problem and eliminate the compiler warning, but I'm not sure I like the way I did it. All of my persistent classes extend a common base class. So, I added a static Map to my base class:class Base
       private static Map<String, Class<? extends Base>> classMap = null;
       static
          Map<String, Class<? extends Base>> map = new TreeMap<String, Class<? extends Base>>();
          classMap = Collections.synchronizedMap(map);
       public static Class<? extends Base> getClass(String name)
          return classMap.get(name);
       protected static void putClass(Class<? extends Base> cls)
          classMap.put(cls.getName(), cls);
    }And added a static initializer to each of my persistent classes:class Foo extends Base
       static
          Base.putClass(Foo.class);
    }So now my persistence code can replace Class.forName("my.package.Foo") with Base.getClass("my.package.Foo"). Since Foo.class is of type Class<Foo>, this will give me the Class<Foo> I want instead of a Class<?>.
    Basically, it works and I have no compiler warnings, but it is unfortunate that I had to come up with my own mechanism to obtain a Class<Foo> object when my starting point was the string "my.package.Foo". I think that the JDK, in order to fully support reflection with generic types, should provide a standard API for doing this. I should not have to invent my own.
    Maybe it is there and I'm just not seeing it. Do you know of another way, using reflection, to get from a string "my.package.Foo" to a Class<Foo> object?
    Thanks again for your help,
    Gary

  • Error message in WAD: "No name is specified for modification type 'Module'"

    Hi All,
    We have created a WAD template with one analysis item and a button and have single module of type generic module in it.
    While executing it  following error message is displayed "No name is specified for modification type 'Module'"
    Please Can anyone help with this error.
    Regards,
    Shweta.

    Hello,
    I am currently facing same issue and I have no idea how to get rid of this message on top of the page.
    I'm pretty sure that this error message comes from the ANALYSIS_ITEM define in my Web Template but I have defined alias name for the different modules I created:
    Who is able to help ?

Maybe you are looking for

  • Creation of New consistencycheck condition for Normal Correction

    Hi, We are using ChaRM normal correction to check the transport imported to production system we are using the check conditon 'PRODUCTION_IMPORT_OK' which is implemented in Class CL_SOCM_INSTANCE . On similar base we wanted to create the condition of

  • EMac G4-700 RAM & system upgrade limits

    Let's try this again. I posted the message with a typo and couldn't figure out how to delete it, so I "unmarked it as a question" and am reposting the correct information. My eMac gets really slow at times, especially if I'm using Photoshop Elements

  • I need info about Oracle classloading

    Please tell me where I can find out about Oracle app server classloading. I have done document searches on the Oracle and Orion sites. Thanks.

  • Can i create report using more than one Business Area ?

    Hi Gurus, Can i create report using more than one Business Area?.Could anybody tell me that report will work?. Vikram

  • Can't see changes in my applet

    I have a very simple .html file that displays an applet. The first time the applet was displayed correctly. Since then I have made changes in the applet (added controls, etc.), and recompiled the source. The browser, however, still displays the first