Mapping Multiple Nodes ?

Hi Guys,
Request Structure - Node - occurs   0 - unbound
Target Structure - Node - occurs  0 - unbound
If there are 3 transactions coming from the reguest structure then i need to generate only 2 node structures on the target side. 
can anybody explain me how can i acheive this, any help would be appreciated
Thanks,
Srini

Srini,
Let's consider the below example.
Source
<Root>
<Nodes>
<Field1>100</Field1>
<Field2>100</Field2>
</Nodes>
<Nodes>
<Field1>200</Field1>
<Field2>200</Field2>
</Nodes>
<Nodes>
<Field1>300</Field1>
<Field2>300</Field2>
</Nodes>
</Root>
Consider My source and target are same, I used ur logic for Nodes to Nodes, and mapped Field1 to Field1 & Field2 to Field2
Now u will get the result as
Target
<Root>
<Nodes>
<Field1>200</Field1>
<Field2>200</Field2>
</Nodes>
<Nodes>
<Field1>300</Field1>
<Field2>300</Field2>
</Nodes>
</Root>
Is the above target is ur reqmt? It will suppress the first set of transactions from the source, are u ok with it?
raj.

Similar Messages

  • BizTalk mapping multiple nodes

    Hello All,
    Below is an example of a schema I have to work upon. There will be multiple nodes of Diviions under the root node and there will be similar number of divisions node under the mappings node. now each divisions node (under root node) will have multiple record
    nodes which will each have an industry_type node. So, what I want to do is match both industry_type nodes (each under root and mappings node) and if the value is same I want to map the industry_type_value to the destination schema. So there can be n number
    of industry_type nodes and I want to have equal number in the destination schema. When I am using a looping functoid along with value mapping I am getting the non matchin industry_type nodes too in the destination schema.
    Please help me with the same.

    Hey Ashwin,
    I am unable to add the xml so am pasting the files:
    Input:
    <ns0:Root xmlns:ns0="http://Pricing.MTB.Schema.Schema1">
      <Divisions>
        <Record>
          <Identifier>node1</Identifier>
          <Industry_Type>ABC</Industry_Type>
        </Record>
        <Record>
          <Identifier>node2</Identifier>
          <Industry_Type>DEF</Industry_Type>
        </Record>
        <Record>
          <Identifier>node3</Identifier>
          <Industry_Type>GHI</Industry_Type>
        </Record>
      </Divisions>
      <Mappings>
        <Record>
          <Industry_type>ABC</Industry_type>
          <Industry_Type_value>ABC0</Industry_Type_value>
        </Record>
        <Record>
          <Industry_type>DEF</Industry_type>
          <Industry_Type_value>DEF0</Industry_Type_value>
        </Record>
        <Record>
          <Industry_type>GHI</Industry_type>
          <Industry_Type_value>GHI0</Industry_Type_value>
        </Record>
      </Mappings>
    </ns0:Root>
    Output:
    <ns0:Root xmlns:ns0="http://Pricing.MTB.Schema.Schema2">
      <Divisions>
        <Record>
          <Identifier>node1</Identifier>
          <Industry_Type>ABC0</Industry_Type>
        </Record>
        <Record>
          <Identifier>node2</Identifier>
          <Industry_Type>DEF0</Industry_Type>
        </Record>
        <Record>
          <Identifier>node3</Identifier>
          <Industry_Type>GHI0</Industry_Type>
        </Record>
      </Divisions>
    </ns0:Root>

  • BizTalk Mapper - Looping multiple nodes to map to a single node in a single row (flat file)

    Hi everybody,
    I'm still new in developing BizTalk app and require some help in this one problem. Appreciate your time and input to help me on this.
    Basically I have an XML document as input and a flat file as output. Example for input is as per below. The "Contact" node's maxOccurs here is set to unbounded and could be multiple. (phone, fax, website, telex ...)
    <root>
    <CustomerName>Company A</CustomerName>
    <Contact>
    <Type>Phone</Type>
    <Locator>03566789</Locator>
    <Type>Phone</Type>
    <Locator>03566790</Locator>
    <Type>Fax</Type>
    <Locator>03566795</Locator>
    <Type>Telex</Type>
    <Locator>03566798</Locator>
    <Type>Website</Type>
    <Locator>www.companyA.com</Locator>
    </Contact>
    </root>
    The expected output in XML would look like below. The final outcome would be a csv file. Strictly Phone 1, phone 2, fax and telex, the rest would be ignored.
    <root>
    <CustomerName>Company A</CustomerName>
    <Phone1>03566789</Phone1>
    <Phone2>03566790</Phone2>
    <Fax>03566795</Fax>
    <Telex>03566798</Telex>
    </root>
    Example of expected output result (csv file): CompanyName;Phone1;Phone2;Fax;Telex;
    In our case here: Company A;03566789;03566790;03566795;03566798;
    Another example could be: Company B;036778911;;036778912;; if only 1 phone number and 1 fax number provided.
    I've used Table Looping and Table Extractor and nearly got the desired result except that it is represented in multiple rows instead of one: Example:
    Company A;03566789;;;
    Company A;;03566790;;;
    Company A;;;03566795;;
    Company A;;;;03566798;
    Any idea how to do the mapping? I'm kind of stuck here and it sounds like an easy problem but i could not find any example to the solution that I need here. Table looping and table extractor is ok to map from single node flat file to multiple nodes but not
    the reverse like in this example.
    rgds,
    sportivo

    Hi,
    Please refer to below links where similar issue has been answered.
    http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/ecdff241-6795-4a95-bad7-48fca4410dfb
    http://www.epinaki.com/2011/05/other-options-to-using-biztalk-table-looping-functoid-par-i/
    I hope this helps you.
    Thanks With Regards,
    Shailesh Kawade
    MCTS BizTalk Server
    Please Mark This As Answer If This Helps You.
    http://shaileshbiztalk.blogspot.com/

  • Handeling mapping with multiple nodes

    Hi,
                We are doing an IDOC to SOAP scenario, in which we have multiple nodes in source structure. In destination structure we have one node having multiple occurences (1..99). We are trying to do the mapping in such a way that on the basis of no. of nodes at source side, nodes at destination side should be created.
                                  Any idea how to perform this mapping? Is it necessary to use BPM for this?

    1. Node 1 -> count ->
    2. Node 2 -> count ->
    3. Use ADD(std function) 1 and 2
    4. then after step 3 use UDF given below and then mapp to target node
    create advance UDF function and click on radio button "Queue".
    in the imports section enter java.lang.;java.util.;java.lang.reflect.;java.io.;
       //write your code here
    String e = a[0];
      int b = Integer.parseInt(e);
    for(int i=0;i<b;i++)
    result.addValue("1");
    result.addContextChange();
    This is working for me...
    suppose node1 occurs 3 times and node2 occurs 2 times the target node will occur 3 + 2 = 5 times
    Giving points is another way to say thanks
    Edited by: Tarang Shah on Mar 4, 2009 2:06 PM

  • How can I map multiple sourcelines of the same position into 1 targetline?

    Hi all,
    I have a mapping problem in XI. I have no idea how to do the following mapping in the IR. My inputfile contains of 1 headerline and mulitple positions, and it has got multiple lines per position (with different data in it). The targetfile has got 1 headerline and multiple positionslines in which I have to "merge" the data from mulitple source-positionlines. It looks like this:
    source structure:
    headerdata
    position1 part1 (posnr, article number, quantity, articletype,...)
    position1 part2 (posnr, article price, payment conditions,...)
    position1 part3 (posnr, route,...)
    position2 part1
    etc
    target-structure:
    headerdata
    position1 (posnr, articlenr, quantity, articletype,price, payment conditions, route)
    position2 (same)
    position3 (same)
    etc
    Now I have to map part1,2 and 3 of the source structure to the 1 and the same target-line. I guess I would need some kind of lookup of the positionnumber in my message-mapping. But how do I do this? Copying the targetline 3 times is not an option as the target-utility only accepts the structure as described above....
    Hope anybody van help
    Thanks,
    William

    Hi,
    U can do it with UDF but it is more simpler with normal graphical mapping refer the following steps.
    1) To map header node for your example (position1) refer the following steps,
    posnr --> RemoveContext --> sort --> splitByValue(valueChange) --> CollapseContext --> position1
    2) for posnr in target side also u can use same mapping with some change  i.e.
    posnr --> RemoveContext --> sort --> splitByValue(valueChange) --> CollapseContext > splitByValue(EachValue)>posnr.
    3) For other node like articlenr, quantity, articletype,price, payment conditions, route refer the following mapping.
    1st do this.
    posnr --> RemoveContext --> sort --> splitByValue(valueChange) --> CollapseContext --> splitByValue(EachValue).
    then take IfWithOutElse function give 1st input as output of CollapseContext
    2nd input is value like articlenr, quantity, articletype,price, payment conditions or route(one of it) --> FormatByExample(using posnr --> RemoveContext --> sort --> splitByValue(valueChange)) node
    Output of IfWithOutElse give to  splitByValue(EachValue)
    Then give it to Target field.
    Regards,
    Rohit.
    reward points if helpful

  • Mapping Multiple Source fields to Single Target Fields with differnt Values

    Hello Friends,
    I am having a senario  where I have to mapped multiple fileds from source str. to same Idoc Fields with ( differnt default values )
    E.g Source Str.
    - ShopNO
    - OrderTyp
    Has to mapped to Idoc Str E1EDK14-Orgid.
    E.g Mapping:
    So when ShopNo will mapped to E1EDK14-Orgid the default value should be "MOP" & E1EDK14-Qualf should be 019
    and when OrderType will be mapped to E1EDK14-Orgid the default value should be "STD" & E1EDK14-Qualf should be 012
    So I tried of using node "UseOneAsMany".....but there I cant define the vaule of field orgid, and seconly how to specify the values of field Qualf?
    Do i need to write my own specify function ? or I can sovle this issue using standard avaiable functions ?
    Regards,

    Hi Ravi,
    Thanks for your reply....
    I am facing following problem... when I try to duplicate the segment and do mapping....... and then when I save, I got following error msg:
    The source or target structure has been changed or could not be found in the Integration Repository. The mapping definition contains elements or attributes that do not exist in the changed structure. The relevant entries will be deleted
    Target structure has no such path: /ZARVO_ORD/IDOC/E1EDK05[1]/KSCHL. Skipping mapping
    Target structure has no such path: /ZARVO_ORD/IDOC/E1EDK05[1]/KRATE. Skipping mapping
    Any suggestion ?
    in other words, when I do duplicate it creates me the segment, but when I save it, it gets disappered .........
    Regards,
    Edited by: Shah H on Oct 26, 2009 3:17 PM

  • Select an attribute of a multiple node......?

    Hi,
    I have created on simpletype in local dictronary(Key) in .... and i have created anoter key of this type in custom contoller... i have mapped this to my view context node attribute..... I have DropDownByIndex element i want to set Key node element to my texts property.... but i am getting the "Select an attribute of a multiple node.." error.....why i am getting this?
    and
    I have created a materialNumber model attribute in my view context and i mapped this to materialNumber of custom controller context attribute...... i want to set this to texts property of DropDownByIndex element... but i am getting the same error.... why i am getting this error...
    Help me
    Best Regards
    Ravi Shankar B
    Message was edited by: RaviShankar B

    Ravi,
    Then let us fix this error instead of introducing other one
    1. You have some context attribute in custom/component controller.
    2. You map this attribute to attribute in view controller.
    3. You are trying to modify simple type of attribute in view controller.
    Step 3 is wrong -- move your code that modifies simple type of attribute to custom/component controller, where attribute was defined. Mapped attribute in view controller will get modified type automatically.
    Then, obviously, use DropDownByKey.
    Valery Silaev
    EPAM Systems
    http://www.NetWeaverTeam.com

  • Unable to assign multiple nodes

    Hi
    I am trying human task over here. My case-study scenario is like this:
    I am a clerk. I've the job of passing on the files to my supervisor. I've number of files with number of details which I am maintaining as array of valueobjects. Now I'll pass onto these array of VO's to my supervisor. So that he can click on one of the ids and get the specific details to the item clicked. I am introducing a human task after invoking my process from where I am getting an array of VO's. Now I need to assign these array to Human Task. I tried to assign but it gives me the following error in the BPEL Console.
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    <part name="summary">
    <summary>XPath query string returns multiple nodes.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /ns1:retrieveSupervisorWorkOrderStatus1Response/return should not return multipe nodes.
    Please check the BPEL source at line number "150" and verify the part and xpath query /ns1:retrieveSupervisorWorkOrderStatus1Response/return.
    </summary>
    </part>
    </selectionFailure>
    The id which supervisor clicks to get the details, I want that Id to be my response from the Human task.
    Can anyone tell me as to how to go for it? How to assign the multiple nodes in the Human Task and How to get back the response?
    Thanks & Regards

    Hmm weird.
    Only thing i could think of is that the transformation is getting executed before the assign.
    After the transformation the field task:taskDefinitionURI isnt there anymore...in the initiateTask i mean.
    Still dont think your transformation is correct. You only map a few fields, so after this, the initiateTask will only contain something like :
    <task:task>
    <task:systemMessageAttributes>
    <task:textAttribute1>
    <xsl:value-of select="workorderId"/>
    </task:textAttribute1>
    </task:systemMessageAttributes>
    <task:systemMessageAttributes>
    <task:textAttribute1>
    <xsl:value-of select="workorderId"/>
    </task:textAttribute1>
    </task:systemMessageAttributes>
    <task:systemMessageAttributes>
    <task:textAttribute1>
    <xsl:value-of select="workorderId"/>
    </task:textAttribute1>
    </task:systemMessageAttributes>
    </task:task>
    This isn't a valid definition of the task-variable.
        <element name="task">
          <complexType>
            <sequence>
              <element name="title" type="xsd:string" minOccurs="0"/>
              <element name="payload" type="xsd:anyType" minOccurs="1" maxOccurs="1"/>
              <element name="taskDefinitionURI" type="xsd:string" minOccurs="0"/>
              <element name="creator" type="xsd:string" minOccurs="0"/>
              <element name="ownerUser" type="xsd:string" minOccurs="0"/>
              <element name="ownerGroup" type="xsd:string" minOccurs="0"/>
              <element name="priority" type="tns:priorityType" minOccurs="0"/>
              <element name="identityContext" type="xsd:string" minOccurs="0"/>
              <element name="userComment" type="tns:commentType" minOccurs="0" maxOccurs="unbounded"/>
              <element name="attachment" type="tns:attachmentType" minOccurs="0" maxOccurs="unbounded"/>
              <element name="processInfo" type="tns:processType" minOccurs="0"/>
              <element name="systemAttributes" type="tns:systemAttributesType" minOccurs="0"/>
              <element name="systemMessageAttributes" type="tns:systemMessageAttributesType" minOccurs="0"/>
              <element name="titleResourceKey" type="xsd:string" minOccurs="0"/>
              <element name="callback" type="tns:callbackType" minOccurs="0"/>
              <element name="identificationKey" type="xsd:string" minOccurs="0"/>
            </sequence>
          </complexType>
        </element>so only 1 element of systemMessageAttributes allowed.
    the same for the content in the systemMessageAttributes element.
    <element name="textAttribute1" type="xsd:string" minOccurs="0"/>only one element of textAttribute1 allowed.
    so guess you still need to fix your transformation.

  • How to get the data from multiple nodes to one table

    Hi All,
    How to get the data from multiple nodes to one table.examples nodes are like  A B C D E relation also maintained
    Regards,
    Indra

    HI Indra,
    From Node A, get the values of the attributes as
    lo_NodeA->GET_STATIC_ATTRIBUTES(  IMPORTING STATIC_ATTRIBUTES = ls_attributesA  ).
    Similarily get all the node values from B, C, D and E.
    Finally append all your ls records to the table.
    Hope you are clear.
    BR,
    RAM.

  • BW 3.5 works with multiple nodes for authorizations

    Hi,
    Does BW 3.5 allow to do authorizations on mutiple nodes? It seems that from the How to wotk with hierarchy authorizations paper, the variable can only allow filtering 1 node. for 2.0B. We have requirements to allow viweing multiple nodes in a hierarchy.
    Thanks
    Will

    Hi Will,
    creat a hierarchy-node variable fill by authorizations in the frontend. The type has to be multiple entries (not single value). In RSSM at the hierarchy authorization creation you have to use the F4 for selecting nodes. The F4 allows to drag more nodes into the right frame.
    Cheers
    Peter

  • How would I delete multiple nodes at a time in OSB

    I want to delete multiple nodes in OSB at a time. I have a request and that needs to get rid of the Nodes instead of using multiple delete actions I want to achieve in one shot. Any suggestions

    Hi,
    You should be able to delete all nodes selected by an XPath expression... Have a look at this...
    http://docs.oracle.com/cd/E28280_01/dev.1111/e15866/ui_ref.htm#i1290003
    Cheers,
    Vlad

  • How to create multiple nodes for a feature in PE03

    Hi Specialists,
    I have a requirement for australia where we need to maintain multiple nodes  in a feature ( Tcode : PE03).
    Action Type      Action Reason
    L6                      00
                              01
    L7                      06
                              08
    L2                      01
    Issue is : 1) How can we maintian the above values in a feature tree.
                    2) The SAP standard structure is using PME14 but PME14 does not contain the 2 above mentioned
                         fields i.e.( Action Type & Action Reason). Istead it is contained in structure PME04 .
                        SO how can we modify the SAP standard structure.
                    3) The above strucure PME14 is being read in an SAP standard report RPCPSPQ0 :
                         i.e Payment Summary Report tcode: PC00_M13_PSGEN . If we want to accomodate the new requirement for        australia does that mean we need to modify SAP standard report / or is there a user exit/BADI available to avoid making changes to SAP standard report.
    Please suggest.

    Can you please supply the name of the Feature you are trying to use?  it will help to understand the full picture.

  • Mapping multiple Siebel BC's to a single OPA entity

    My colleague referred me to this forum, so glad to know there's support for such niched technology.
    Wondering if anyone has tried mapping multiple BC's to the same OPA entity using IO?  This is not possible via BO Mapping due to user-key constraint on Entity Name.  However, thought this may be achievable w/ IO Mapping by defining IO Component user property.
    The goal is to create multiple instances of an OPA entity based on different Siebel components.  Initial attempts resulted in the last IC processed overwriting previous entity instances collected.  Not sure if I missed additional development steps but wanted to verify w/ everyone before seeking alternative solution.
    Thanks for sharing any advise or ideas.
    Kevin

    Hi Kevin, welcome to the forums.
    With IO mappings you can map different Integration Components (ICs) into the same OPA entity under certain conditions.
    The most typcial case of this is when you want to map the attributes of a child (ic) into the same entity that its parent is mapped to. The most important thing here is that there must be only one child otherwise it will not be clear which child to use to populate the attributes.
    You can do this by specifying the following User Properities on the Integration Component that you want to merge with its parent
    name: OPAEntity  value: the OPA Entity that the Integration component should be mapped to
    name: OPAParent value: the OPA Entity that will by the parent of the above property. If the entity specified in "OPA Entity" is global this property is not necessary
    See "Integrtion Object User Properties" in Oracle Policy Automation Connector for Siebel Developer's Guide
    Example
    We have a mapping for the Employee Business object as an IO mapping (I'll use the "Employee Interface" IO). This Integration object has a subcomponent "Personal Address". We want to map both the Employee and Personal Address components to the global entity.
    Because Employee is the top level component of the IO, it will be mapped to global by default.
    To map Personal Address component to attributes int the global enity, I only need to set the User Property "OPAEntity" to "global". Attributes will be mapped automatically if name matches can be found, otherwise I can specify the attributes using the OPAAttribute property.
    Note: this only works when there is one (or none) Personal Addresses for the Employee, if an attempt to load an employee with more than one Personal Address is made, the attributes of Personal Address is unknown.
    Hope this helps
    Cheers
    Frank

  • External Context Mapping and "The Mapping to Node...Has Not Been Completed"

    Hi there,
    I've got 2 components: A, B where A consumes the data provided by B.
    I'm calling the component B which includes a view provided by A. This view (provided by A) needs data inputted by the user in a view in B.
    The context of B contains a node called MULTIVALUES flagged as Interface + Input Element Ext.
    The component A uses the component B, in the component usage interface controller of the component A I've referenced the component controller of A. I have then created a node in A's component controller and done the mapping from the component usage interface controller of A to A's component controller.
    The manually created component controller node in A is NOT an interface.
    Now when I invoke B I'm getting an error:
    The Mapping to Node COMPONENTCONTROLLER.1.MULTIVALUES Has Not Been Completed.
    What's still missing?
    Thank you!

    it is indeed much more complex and you need lot of understanding about the component instances and their life time.
    What i do normally for such complex cyclic dependency , i try to split the common part which is needed in bot component_a and component_b and create a new super component_s.
    Component_s is used in both components. You can even go further that you create view component which has nothing but the viewContainer UI elements to embed the views from component_a and Component_b.
    The view component has to create all the used components (comp_s,comp_a,comp_b) and after creating call the interface method in comp_a and comp_b to set the component usage of comp_s (use the if_wd_comp_usage=>entering-referencemode).
    In this way the comp_a,comp_b share the same instance of comp_s.
    What i am saying is to look for a solution in application architecture and not with in the exiting components coding.

  • The Mapping to Node &ATTRIBUTE_NAME& Has Not Been Completed.

    Hi All,
    Could anybody tell me when this exception arises.
    we could not track this exception as all the mappings have been done as desired.
    Need help immediately.
    Regards,
    ARti.

    Hi Aarti,
    I encountered the same problem, but could resolve it.
    There are two kinds of context mapping possible:
    1)Cross component context mapping - In this case, the properties of the interface context node of the used component would look like:
    Interface Node: X
    Input Element (Ext.): must not be set
    Then in the COMPONENT CONTROLLER of the using component, map the desired context node on the left hand side (of the component controller) to the interface node of the used component on the right hand side.
    This is done when we need to receive value of the interface context node of the used component in the using component.
    2)External context mapping: In this case, properties of the interface context node of the used component would look like:
    Interface Node: X
    Input Element (Ext.): X
    Next in the CONTROLLER USAGE in the using component(this is a new node added in the hierarchy in SE80 when displaying the WD component, when component usage has been declared in the current component), right click the desired component usage and select 'Create controller usage'. Now it is here where you define mapping between the interface context node and the context node of the current component controller. By doing this, component controller of the using component would act as the data source.
    This is done when we need to pass value to the used component from the using component.
    The important point to remember is that whenever attribute Input Element (Ext.) of the interface node has been marked as X, ensure to define a mapping for this context, else it results in a runtime error "The Mapping to Node COMPONENTCONTROLLER.1.<interface_context_node> Has Not Been Completed" .
    Regards,
    Chitrali

Maybe you are looking for