A questin about field mapping

>>Source Message Type
SourceMT            1..1
person                 0..unbounded           
  first_name        1..1                       
  last_name         1..1 
>>Target Message Type
TargetMT            1..1
person             0..unbounded
   name             1..1
>>Mapping
/TargetMT/person = /SourceMT/person
/TargetMT/person/name = /SourceMT/person/first_name+/SourceMT/person/last_name
>>source XML instance
<SourceMT>
  <person>
    <first_name> jacky </first_name>
    <last_name> chen </last_name>
  </person>
  <person>
    <first_name> jet </first_name>
    <last_name> lee </last_name>
  </person>
</SourceMT>
>>Result XML
<TargetMT>
  <person>
    <name> jackychen </name>
  </person>
  <person>
    <name> jetlee </name>
  </person>
</TargetMT>
but, when I change the mapping
>>Mapping
/TargetMT/person = /SourceMT
/TargetMT/person/name = /SourceMT/person/first_name+/SourceMT/person/last_name
>>Result XML
<TargetMT>
  <person>
    <name> jackychen </name>
  </person>
</TargetMT>
Could anyone explain why I get a different Result XML? What happened to the second mapping? How does XI process these two different mappings?
Thanks in advance!
Regards,
Hui
Message was edited by: Wang Hui

Hi,
Its clear and simple if you look at form this angle
/TargetMT/person = /SourceMT/person
The above statement says the occurance of TargetMTperson should = SourceMTperson
whereas
/TargetMT/person = /SourceMT
statement says the occurance of TargetMT--person should = SourceMT
So how many time SourceMT is occuring.. it is 1 time. So when assigning the values it takes the first value that the reason you are getting the first value alone.
Thanks,
Prakash

Similar Messages

  • About value mapping

    What is value mapping ? when it is used ?

    HI,
    A perticular object/field could have different interprtations from applications to applications and Business to Business. For e.g Suppose a particular document XYZ has an identity code 001 in one application or may be in one orgnization. But the same document could have different ID in different applications.
    With the help of Value Mapping you could map these IDs with each other, thus while transaction of the data XI will act as an smart mapper to pass the Application specific values.
    http://help.sap.com/saphelp_nw04/helpdata/en/13/ba20dd7beb14438bc7b04b5b6ca300/frameset.htm
    There are many docs available about Value mapping in SDN forum.
    How to Perform Value Mapping – A Walkthrough
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00ee347e-aabb-2a10-b298-d15a1ebf43c5
    http://help.sap.com/saphelp_nw04/helpdata/en/2a/9d2891cc976549a9ad9f81e9b8db25/frameset.htm
    SDN Discussions
    /people/sukumar.natarajan/blog/2006/10/23/accessing-value-mapping-defined-in-directory-using-java-functions
    SAP - XI Value Mapping : Mapping two values to a single value
    Value Mapping Issue in SAP XI
    thanks
    Swarup

  • [DME] Document about data mapping for HSBC ifile format (PP,ACH, COS)

    Dear SAP experts,
    I'm implementing an automatic payment module through HSBC in an SAP project.
    My customer want to streamline their payments to vendors using automated
    payments with HSBC.
    I have a document about ifile description which show me information about the
    structure and data format in HSBC ifile. I know how to create a DME format tree
    but the HSBC format seem to be very complicated, it contains a lots of fields and
    a lots of them I don't really understand.
    I'm sure that many of you have done this before. Do you have any document about
    data mapping for HSBC file format? I have a lot of fields leaving undone so any
    relevant documents will be very helpful for me.
    Hope you can help.
    Thank in advance.
    Maxielight.

    Hello Maxielight,
    I too am working on this IFILE format for transmitting to HSBC for Indian INR payments & am using DMEE.
    I'm struggling with a couple of fields in relation to PP.
    1st  is the 'Record Count' in FIle header, which is just a count of the total number of lines in the file.
    2nd is the 'Total number of instructions in batch' in Batch Header section, because I'm trying to count using aggreation via reference node id, but because the Batch Header is level 1 & I need to wait for '2nd Party Details for PP' which is at a lower level I always get an error when I run the check with error 'aggregation not permitted because of field I'm using is lower level, or they are not in the same segment.
    I've also tried creating a new segment with 'Delay output' but still get similiar error about the nodes being in differenet segments.
    How did you get past this issue?
    We are not using COS, instead we will print our own cheques in the office so sorry I cannot offer advise there.
    Any advice you can offer would be appreciated.
    Thanks,
    Steve

  • Orion-ejb-jar: cmp-field-mapping specs REMOTE home

    In the tech. preview documentation, in the EJB dev. guide, and in the section which details the orion-ejb-jar, I noticed something odd about the "cmp-field-mapping" element. It has an attribute called "ejb-reference-home", which is supposed to be "the JNDI location of the fields remote EJB-home if the field is an entity EJBObject or EJBHome".
    I would assume this would only be set if this field was specified as a CMR field in the ejb-jar.xml file.
    The odd thing is, it specifies the REMOTE home, not the LOCAL home. Is this just a typo?

    I believe that it is not JDeveloper issue but OC4J one. It does not pick up new orion-ejb-jar.xml if you re-deploy bean(s). It should deploy your orion-ejb-jar.xml when you're deploying yor application for the first time (so there is not orion-ejb-jar.xml in deployments directory). If you want OC4J to pick changes up remove orion-ejb-jar.xml from $OC4J_HOME/application-deployments/<application>/<Bean>.jar/ and then deploy it either manually or with JDeveloper. I hope it will help.

  • How to add a new field in the Field Mapping

    Dear Freinds,
                   I have two un used fields in the  Source fields to the Target Fields ,
    i have to add the 3   fields which r there in the my source fields to that
    of the target fields ( as per the change in the requirement) in the 5th Step
    i.e Maintain Field Mapping and Conversion Rules
    the Target strucutre & the Source fields( by clicking the button
    Source field and selcting the fields from the popup menu) in the mapping and conversion step  ,i want to  add  3 fields which are availabe in the list of th source list  which i want to map to the Target strucutre  .
    When i tried it is adding in the othe target field
    presently i have mapping (5th sept ) as below.
       ZPA30_08                       LSMW
           Fields
               TABNAME                      Table Name
                                   Source:  ZP0008_STRC-PERNR (Personnel Number)
                                   Rule :   Default Settings
                                   Code:    ZPA30_08-TABNAME = 'ZPA30_08'.
               TCODE                        Transaction Code
                                   Rule :   Default Settings
                                   Code:    ZPA30_08-TCODE = 'PA30'.
    now i want to add 3 fields Pernr,wage type and Amount  , but when iam trying it is
    getting and saved in the TABNAME .
    How can i map please let me know .
    Regards
    syamla

    Hi,
    So you need that this new field have data in old records?
    1.- If you are in BI 7.0 and the logic or data for that New field are in the same Dimension, you can use a Remodeling to fill it. I mean if you want if you want to load from a Master Data from other InfoObject in the same Dim.
    2.- If condition "1" is not yours.
    First add the new field, then create a Backup Cube (both cubes with the new field) and make a full update with all information in the original Cube. The new field willl be empty in both cubes.
    Create an UR from BackUp_Cube to Original_Cube with all direct mapping and create a logic in the Start Routine of the UR (modiying the data_package) you can look for the data in the DSO that you often use to load.
    To do that both cubes have to be Datasources ( right click on Cube-> aditional function-> and I think is "Extract Datasource")
    Hope it helps. Regards, Federico

  • In XI Mapping multiple fields mapping to single target field.

    Hi Friends,
    In XI Mapping multiple fields mapping to single target field.
    For example my requirement is :
    Source Fields:(This RFC BAPI Structure)
    Empno                0-1
    EmpName           0-1
    Address             0-1
    Taget Field is:
    Details               0-1
    The above three fields passed to the Details Field. Here i am using Concat function
    But i have one query on that on,Every field having "line Break" required.
    Can you please help me out above this requirement.
    Thanks in Advance,
    Sateesh N.

    If you want a line break between the three fields, then try
    passing a,b,c to the udf and in the udf you would have
    return a+"\n"+b+"\n"+c;

  • ABAP code which will use function module during field mapping in LSMW

    Hi,
    During field mapping in LSMW, for one of the field called field, I want to use a function module 'QF05_RANDOM_INTEGER', which will generate random numbers and map that random number to that field.
    How do I write ABAP code which uses function module, during filed mapping for a particluar field in LSMW ?
    Please help...
    Regards,
    Tushar.

    Hi Tushar,
    You can write in FORM ROUTINE and LSMW.
    I hope you know how to write ABAP code at field level.
    If not ...
    Come to change mode->select the field->Rule->ABAP Code
    write a perform statement in ABAP code at field level.
    <b>PERFORM test</b> using val
                 changing valu.
    Go to Utilities(at menu)->switch layout-> extras ->select Layout->check Form routine-> it will display a FORM Routine... at bottom
    this is the place where you can write some code for
    <b> FORM test</b> using value
              changing value1
      FM call....
    .ENDFORM  
    Get the value1 returned and use for the Field population.
    Reward points if this Helps.
    Manish
    Message was edited by:
            Manish Kumar

  • How to create Rules with Flex Field mapping in the bpm worklist

    I Have created a flex field label and was able to map to the flex field attributes .
    But when i try to create a rules , I don't see the label or the flex attributes in the task payload .
    Can someone please help is understanding how to create Rules with Flex Field mapping in the bpm worklist .
    Even I am also searching for any scripts which will take the flex fields prompts and can directly create a label in the bpm worklist .
    Any pointers or suggestion is highly appreciated .

    Hi,
    SE38 -> Enter program
    Select Variants button and display. In the next screen, enter a variant name, (If not existing , press Create to create new one), else click on Change.
    Now the selection screen will display with a button "Variant Attributes" at the top.
    Click on that button.
    In the next screen, go to the selection variable column of the date field. Press F4 or drop down and select 'D' for date maintenance.
    In the column "Name of Variable (Input Only Using F4)" press F4 or drop down, select whichever kind of date calculation you want and save the variant.
    Now whenever you run the prgrm with this variant, date will be displayed by default.
    Regards,
    Subramanian

  • To learn about ABAP Mapping

    Hi,
    I would like to learn about ABAP Mapping.
    What is the importance of it and  where it is applied?
    Could you please guide me regarding this?
    Thanks,
    Raja Bala

    Hi,
    Go through the links,
    http://help.sap.com/saphelp_47x200/helpdata/en/cf/21f2f2446011d189700000e8322d00/frameset.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/b1/8230a2d26611d4b2e90050dadfb92b/frameset.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/d9/b84508bc9411d4b2e80050dadfb92b/frameset.htm
    Regards,
    Azaz Ali.

  • Hi,about message mapping

    why is always disabled the dependencies button in the message mapping editor of IR.
    it is for ever gray whether in edit mode or not?

    Hi,
    The dependency button in Message mapping is used to show the Source field mapped to which target field.
    Can u explain ur query clearly...
    Regards
    San
    Remember to set the thread to solved when you have received a solution there is a Way.

  • About interface mapping

    what are there case about interface mapping?
    i knew that the following:
    outbound to inbound
    abstract to abstract.
    what else the case?

    Hi joy zheng  ,
    These r the details about interface mapping :
    Interface Mappings
    You can define mappings for an interface pair (source and target interface) by using message interfaces and message types in the Integration Repository.You can also define the corresponding mappings when the source or target interface is an IDoc, an RFC, or another interface connected by an adapter.
    When defining mapping programs for request, response, or fault messages, the definition is first separated from the interfaces that reference the corresponding message types. Furthermore, you can reuse a message type for multiple interfaces. This means that the simple definition of a mapping program is not sufficient to establish a connection (that is based on the assignment of outbound and inbound interfaces).
    This role is undertaken by the interface mapping:
    &#9679;     An interface mapping specifies the corresponding mapping programs for request, response, or fault messages for a selected interface pair. You use an interface mapping to register mappings for an interface pair.
    &#9679;     You can also specify multiple mapping programs to be executed one after the other in the case of requests and responses for an interface mapping.
    You can also define multiple interface mappings for the same interface pair, to provide multiple variants in the Integration Repository. At configuration time, the customer can select the appropriate mapping in an interface determination and save it in the Integration Directory
    Use :
    Interface mappings register your mapping program for an interface pair in the Integration Repository. If you require a mapping at runtime, it is sufficient to select the interface mapping for the interface pair at configuration time . The Integration Server uses the interface mapping to identify associated mapping programs for request messages, response messages, fault messages, or all three.
    Features
    Executing Multiple Mapping Programs for One Direction
    By using an interface mapping you can execute multiple mapping programs consecutively for the transformation of a request or response message. In such cases, an interface mapping comprises multiple steps for which the following applies:
    &#9679;     The steps are executed in the sequence specified (from top to bottom). The result of the mapping program from the previous step is forwarded to the mapping program of the subsequent step.
    &#9679;     Each step can reference a mapping program that executes a 1:1, 1:n, n:1, or an m:n transformation. In the case of multi-mappings (1:n, n:1, or m:n), the previous step must create the same number of messages that the subsequent step expects.
    &#9679;     Multi-mappings use one envelope to put all messages in one structure. If one of the steps references a multi-mapping program, all subsequent steps must use the same envelope.
    The mapping for a request message comprises two message mapping programs: one 1:1 transformation and one 1:n transformation. Since the latter message mapping uses the multi-mapping envelope for both the target message and the source message, the message mapping for the 1:1 transformation must also create a transformation result with a multi-mapping envelope.
    You do not strictly need to divide up one direction of the whole mapping into different steps. However, this enables all the message formats in one system landscape to be mapped to a central message format, for example. This results in less mapping programs being required because you no longer need to be able to map all the different message formats to each other.
    Activities
           1.      Create your interface mapping on the design maintenance screen of the Integration Builder (see also: Creating an Object).
    You can also create multiple interface mappings for the same interface pair.
           2.      Enter the source and target interfaces that require a mapping of the request message, the response message, the fault message, or all three, in the table of the same name. The following restrictions apply:
    &#9675;     If you want to use the interface mapping in a transformation step in an integration process, you must only specify abstract message interfaces. Furthermore, all objects (integration process, interface mapping, and all objects referenced by the interface mapping) must be in the same software component version. If you want to reference objects from underlying software component versions, you must access the objects from the Basis Objects branch (in the navigation tree or using an input help) (see also: Underlying Software Component Versions).
    &#9675;     If you want to map multiple messages to each other by using a multi-mapping, you can only specify asynchronous interfaces (for further restrictions, see: Multi-Mappings). If any message interfaces are missing, you can also create them by using the functionCreate New Object ().
    If the interface cannot be imported or cannot be created in the Integration Repository (in the case of an external adapter, for example), you must enter the interface names manually. However, it is not possible to check the technical name in this case.
           3.      To import the properties of the interfaces, choose Read Interfaces. The table in the lower area displays tab pages for the request message, response message, and if available, for the fault message, for each mode of the interfaces (either synchronous or asynchronous).
           4.      To develop an external mapping program, export the XSD schema of the respective request or response message as a zip file after you have imported the interfaces. The zip file can contain multiple schema files that reference each other, for example in a multi-mapping. In this case, the schema with the global message element has the name MainSchema.
           5.      To reference a mapping program for the respective message, you have the following options:
    &#9675;     Select an existing mapping program from the Integration Repository by using the input help (). If this is a message mapping, the default setting of the input help only displays those message mappings that are found using the source and target message in the Integration Repository (in multi-mappings, the first source and target messages are used as the search criteria). However, you can also display any number of message mappings, for example, because you are constructing a mapping from several mapping programs with intermediate instances which have no message types.
    &#9675;     You can create message mappings directly from the interface mapping. To do this, select the mapping type Message Mapping in the Type column. Position the cursor in the Name column and choose the function Create New Message Mapping () in the Mapping Program frame. The Integration Builder copies the specifications of the messages and their occurrence directly from the interface mapping.
    An interface mapping can only reference mapping programs that belong to the same or an underlying software component version of the interface mapping. This ensures that the mapping program can be shipped together with the interface mapping (see: Software Logistics).
           6.      If you are not using a mapping for a fault message, you can execute multiple mapping programs in succession for request and response messages:
    &#9675;     To insert an additional line for a mapping program, choose .
    &#9675;     To delete the registration for a mapping program, choose .
    At runtime, the mapping programs are executed from top to bottom.
           7.      Save the interface mapping.
    The following web-site gives complete details about interface mapping :
    http://help.sap.com/saphelp_nw2004s/helpdata/en/12/05731a10264057badc32d3d3957015/content.htm
    **********Please reward points if u find this useful
    cheers,
    gyanaraj

  • LDAP Field Mapping in 4.6C - Using WebAS 6.10+ as an LDAP Gateway

    Dear All,
      We have a need to enable CUP Functionality (we use GRC AC 5.3) for one of our oldest R/3 systems - on 4.6C. All other R/3 backends are on 4.7+ releases, so it's a multiple backend configuration for GRC AC.
      However, LDAP Field Mapping functionality is missing in 4.6C. It was enabled through LDAPMAP in the higher releases only.
      At the same time, I discovered in one SAP HR document a diagram, which shows that indeed 4.7+ can map and post data directly to LDAP, but for 4.6C and below you can use WebAS 6.10+ as an LDAP Gateway. Meaning that 4.6C calls through RFC some functions in the higher release R/3 system to use its functions for Field Mapping and further transfer of user data to the target LDAP server.
      But... I can not find anywhere how to configure 4.7 / 6.0 servers to act as an LDAP Gateway for the older 4.6C server to bypass its limitation - absence of built-in LDAP Field Mapping functionality.
      Advice on how to realise this concept will be highly appreciated.
    Thanks,
    Laziz

    Hi,
    In order to migrate users, groups and password you have to use the command ldapaddent as you did with this sintax:
    # ldapaddent -D "cn=Directory Manager" -w secret -f /etc/group group
    # ldapaddent -D "cn=Directory Manager" -w secret -f /etc/passwd passwd
    # ldapaddent -D "cn=Directory Manager" -w secret -f /etc/shadow shadowNote that you must use passwd instead of people container.
    I suggest you to check this article from BigAdmin http://www.sun.com/bigadmin/features/articles/nis_ldap_part1.jsp
    G.

  • Example of a custom field mapping?

    Ok, I admit it I am struggling here. I have simplified my example from
    what I actually have.
    I have a table that models a flat hierarchy
    ID | START_DATE | END_DATE | CLASSNAME | FIELD1 | FIELD2 | ...
    one of the objects in my hiearchy (CashFlow) has a field that is in fact
    another object called DatePeriod that contains two fields startDate and
    endDate.
    I understand that what I am trying to do is embed the DatePeriod object
    inside of the larger object when it get's persisted.
    I have the following metadata set-up
    <class name="CashFlow" persistence-capable-superclass="InstrumentFlow">
    <extension vendor-name="kodo" key="table" value="INSTRUMENT_FLOW"/>
    <extension vendor-name="kodo" key="pk-column" value="ID"/>
    <extension vendor-name="kodo" key="class-column" value="none"/>
    <extension vendor-name="kodo" key="lock-column" value="none"/>
    <field name="accrualPeriod" embedded="true"/>
    </class>
    and for my DatePeriod object
    <class name="DatePeriod">
    <extension vendor-name="kodo" key="table" value="INSTRUMENT_FLOW"/>
    <extension vendor-name="kodo" key="pk-column" value="ID"/>
    <extension vendor-name="kodo" key="lock-column" value="none"/>
    <extension vendor-name="kodo" key="class-column" value="none"/>
    <field name="startDate">
    <extension vendor-name="kodo" key="data-column" value="START_DATE"/>
    </field>
    <field name="endDate">
    <extension vendor-name="kodo" key="data-column" value="END_DATE"/>
    </field>
    </class>
    Every time I try to fetch a CashFlow object I get an error as KODO is
    trying to select the column 'ACCRUALPERIODX.'
    What am I doing wrong? Do I need to use a custom field mapping? If so
    where is the documentation to help me write a custom field mapping?
    A second question would be what happens if the DatePeriod object is used
    in a couple of places, I don't want to tie it's persistence to the
    INSTRUMENT_FLOW table.
    All help gratefully received
    Cheers
    Matt

    As you suspect, Kodo 2.x does not support embedded class mappings. Kodo
    3.0 will support embedded mappings.
    In the meantime, you can create a custom mapping, but unfortunately our
    documentation for custom mappings is lacking right now. Given how simple
    your DatePeriod object is, you're probably better off with something
    simpler (and as a bonus, less bound to Kodo):
    Just make your DatePeriod class and the field that holds the DatePeriod
    instance non-persistent. In the class that has the (now non-persistent)
    DatePeriod field, add two new persistent fields for the startDate and
    endDate. Then just use internal logic to construct the DatePeriod from
    the startDate and endDate. You can do this using the
    javax.jdo.InstanceCallbacks methods, or just do the logic in your setter
    and getter methods for the DatePeriod.

  • How to change field mapping in IDOC

    Hi Experts,
    My requirement is to create a purchase requisition automatically through an interface using the IDOC sent by a *source client*.
    For this i have used PREQCR as the message type, PREQCR02 as basic type.
    E1BPEBANC & E1BPEBANTX are the segment type i have to use.
    I have created a Z process code in which the function module that i have used is IDOC_INPUT_PREQCR.
    With the help of this i can map all the field values to PR.
    Now there is a field in this idoc called vendor which comes from the source client.
    Now the value that is maintained in this field(vendor) should go to the Text Id that is maintained at the header level. ( i.e. the header text. i.e. In transaction ME51N, the text IDs which we can see at header level, the vendor value should go in one of this text Id ).
    Now how do i do this, because I am using standard funciton module IDOC_INPUT_PREQCR in which there is already field mapping that this vaue should go in this field and so on...
    Do I have to use an exit for the same ?? If yes then which is the exit ??
    Please suggest.
    Regards,
    Priti.

    Hi,
    I think there is no userexits available during the processing using function module "IDOC_INPUT_PREQCR".  You have to copy this function module to a Z function module.  Change as per your requirement and attach the new function module with the Z Process code created by you.
    Regards
    Vinod

  • Field Mapping of CREMAS05 IDoc..!!

    Hi Gurs ,
    Iam trying to map the following fields in CREMAS05 Basic IDoc Type but unable to find the correct mapping field segments in the IDoc.
    Fields need to be mapped are:
    1.Building Code
    2. Pan No
    Can anyone suggest me which segment and field i need to use for the above fields mapping..? or if i extended my idoc with some custom table how i will map into Standard field .
    Thanks .
    Hemant Gulati(A1)

    Hi Jurgen  ,
    Thanks for Reply .
    Vendor Master Idoc  CREMAS05
    i have extended my idoc with some zfields . in zfield i have Building code and Pan no
    like zbuild and zpanno i need to map these in ADDR1_DATA-BUILDING and J_1IMOVEND-J_1IPANNO respectively .
    Thanks & Regards
    Hemant Gulati(A1)

Maybe you are looking for

  • Create datasource issue with Planning 9.3.1

    The plan is to upgrade to 9.3.3 so will need 9.3.1 first. I have installed 9.3.1 Planning on win 2003 server and finished the configuration steps as well. All my hyperion planning databases are on a Oracle RAC system 11g installed on Linux. The indiv

  • SAP Script not Zmedruck not coming in change mode

    Hi all, I have copoied the standard form medruck to zmedruck and have made some changes in the text element. But anyhow it not letting me create a new witndow, paragraph or  character format. windows are coming in display mode. Please suggest, thnks

  • Multipart request and modern browsers

    Hi! I want to write own parser of multipart http request for my http service. I have tried to find not-outdated (as, say, RFCs are) information about the ways modern browsers form the request with all their (browsers's) bugs (IE, am sure, has plenty

  • How to Remove Master CS6 on Mac?

    Hi, as tite stated I can't found a way to remove automatically the entire Master CS6. I can't found any "uninstaller" or "remove" app. Any help will be appreciated. Thanks.

  • Updated to Premiere CC 2014, now I can't export. Error - unknown error.

    Hello - I recently updated my Premiere Pro to the 2014 version. I opened my project in the new 2014 release and kept editing, but now when I want to export I can't. It fails every time at the beginning of the export and then gives me "Error - unknown