XI Mapping : complex Case to me

Hi,
here i will explain my mapping case :
Source :
Items :
item1
item2
item3
TextItems
1 texta for item1
1 textb for item1
3 text for item3
Target Structure(take care about cardinality)
Items(0...unbounded)
Itemdetail(1..1)
   ItemText(0..1)
     LinesOfText(1..n)
       LineOfText(0..1)
So with my example i want to reach this result :
Items(0...unbounded)
Itemdetail(1..1)
    item1
    ItemText(0..1)
    1
     LinesOfText(1..n)
             LineOfText(0..1)
                1 texta for item1
             LineOfText(0..1)
                1 textb for item1      
   item2
   item3
    ItemText(0..1)
    1
     LinesOfText(1..n)
             LineOfText(0..1)
                3 text for item3
I think i will loose my head if i'm still searching for the solution.
Help me not becoming totally crazy
Thank you

Hi Laurent,
Could you please send me the source and target Message Type screen shots to my mail id [email protected],bcoz here i could find the hierarchy between nodes.
send me some sample source data too.
Cheers,
Jag

Similar Messages

  • Mapping a CASE constraint gives error:The expression is not properly formed

    Hi
    I am hoping someone can help us with this as we cannot find it in the usual places:
    I have the following WHERE clause in my query:
    WHERE xd.cii_owner_account_id = hca.cust_account_id
    AND incidentb.incident_status_id = incident_status.incident_status_id
    AND incident_number = xd.sr_number
    AND ( (CASE
    WHEN buyout_immediate_flag <> 'Immediate'
    THEN '-'
    END) = '-'
    OR (CASE
    WHEN buyout_immediate_flag = 'Immediate'
    THEN incident_status.NAME
    END
    ) LIKE '%Authorised%'
    OR (CASE
    WHEN buyout_immediate_flag = 'Immediate'
    THEN incident_status.NAME
    END
    ) LIKE '%IT Appro%'
    We are unsure how to map the CASE expression and where it is meant to go. Possibly in the join ? Or expression compaonent. Problem is that both do not allow for CASE statements.
    Please advise.

    Hi there
    Please can you clarify this because I am unsure where the expression operator would go in my example. You see, the CASE is seperate for each part of my clause and the CASE is what gives the left hand side of the WHERE statement in each line whereas the right hand side is written outside of the CASE.
    I hope you understand what I mean, if not let me know and I will try to clarify it for you.
    Thanks

  • Graphical Message mapping complexity in SAP PI 7.31 single stack

    Hi All,
    I have a source structure 1..unbounded
    <Material>
    <row>    1....unbounded
    <Mat_ID>123<Mat_ID>
    <Desc><text</Desc>
    <uom>EA</uom>
    <plant>AB</plant>
    <org>XY</org>
    </row>
    <row>
    <Mat_ID>123<Mat_ID>
    <Desc><text</Desc>
    <uom>ST</uom>
    <plant>CD</plant>
    <org>FG</org>
    </row>
    <row>
    <Mat_ID>123<Mat_ID>
    <Desc><text</Desc>
    <uom>XY</uom>
    <plant>DE</plant>
    <org>ZX</org>
    </row>
    </Material>
    Target Structure
    <Material>
    <row>  --->  1....unbounded
    <Mat_ID>123<Mat_ID>
    <Desc><text</Desc>
    <uomdata> ---> 0 ----unbounded
    <uom>EA</uom>
    <uomdata>
    <uomdata>
    <uom>ST</uom>
    </uomdata>
    <uomdata>
    <uom>XY</uom>
    </uomdata>
    <plantdata> ----> 0 ----unbounded
    <plant>AB</plant>
    </plantdata>
    <plantdata>
    <plant>CD</plant>
    </plantdata>
    <plant>DE</plant>
    </plantdata>
    <orgdata> ---->  0 ----unbounded
    <org>XY</org>
    </orgdata>
    <orgdata>
    <org>FG</org>
    </orgdata>
    <orgdata>
    <org>ZX</org>
    </orgdata>
    </row>
    </Material>
    How do I do message mapping (preferably graphical mapping) to achieve the target structure. The values of each elements are manipulated for easiness. There are more than one fields under each node in real scenario. Please let me know
    thx
    mike

    Beautiful..Thx...
    I will try out and let you know Amit
    One more request.
    I have to do this mapping first and use it in receiver interfaces of ICO using an operation mapping and inbound interface as usual.
    Now, I have to add 2 more inbound interfaces in the receiver interfaces and maintain order at Runtime to execute the above mapping first always and then execute the 2 additional inbound interfaces based on some condition.
    The condition has to be something like this (source structure <flag> field value dependent condition)
    /Material/row/flag  = 'N'       call the second inbound interface to execute a operation mapping
    /Material/row/flag  = 'N'       call the third interface to execute another operation mapping
    Now the complexity here is:
    If the source structure is like this below
    <Material>
    <row>    1....unbounded
    <Mat_ID>123<Mat_ID>
    <Desc><text</Desc>
    <uom>EA</uom>
    <plant>AB</plant>
    <org>XY</org>
    <flag>N</flag>  -- this is the flag field for the first material
    </row>
    <row>
    <Mat_ID>123<Mat_ID>
    <Desc><text</Desc>
    <flag>N</flag> -- this is the flag field for the first material again
    <uom>ST</uom>
    <plant>CD</plant>
    <org>FG</org>
    </row>
    <row>
    <Mat_ID>345<Mat_ID>
    <Desc><text</Desc>
    <flag>N</flag> --this is the flag field for the second material
    <uom>XY</uom>
    <plant>DE</plant>
    <org>ZX</org>
    </row>
    and so on
    </Material>
    The target structure for the additional 2 inbound interface are shown below
    2nd inbound interface target structure
    <Material>
    <Mat_ID>123</Mat_ID> 
    <flag>N</flag>  - constant value 'N'
    <Mat_ID>345</Mat_ID>
    <flag>N</flag> - constant value 'N'
    </Material>
    3rd inbound interface target structure
    <Material>
    <Mat_ID>123</Mat_ID> 
    <flag>Y</flag>  - constant value 'Y'
    <Mat_ID>345</Mat_ID>
    <flag>Y</flag>  - constant value 'Y'
    </Material>
    first question: how do I write a condition for checking the source structure <flag> field value for every unique material ?
    second question: what would be the message mapping and operation mapping for the 2nd and 3rd inbound interfaces?
    thx
    mike

  • Mapping with case insensitivity in Filter operator expression

    I need to import data from an ODS into DW table.
    How can I set this before a certain mapping is run to make it case insensitive?
    execute immediate 'alter session set NLS_SORT=BINARY_CI';
    execute immediate 'alter session set NLS_COMP=LINGUISTIC';
    Thanks,
    JGP

    Hi,
    Use upper(column) in the filter expression.
    Regards
    Bharath

  • Mapping : Complex Structured Source to JDBC receiver structure

    Hello...
    We have a source structure as
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MTO_Corporate xmlns:ns0="http://axis.com/authorization">
       <Details>
          <Corporate_Details> ---------- (occurence 1 to n)
             <ID/>
             <Name/>
             <Address/>
             <Delivery_Address/>
             <Email_ID/>
             <Request_Limit/>
             <Total_Limit/>
             <Used_Limit/>
             <Availability_Limit/>
             <Sanction_Date/>
             <Created_By/>
             <Created_Date/>
             <Fax_No/>
             <Max_Authorizers/>
             <Account_Details> ---------- (occurence 1 to m)
                <Corp_Acc_Type/>
                <Corp_Acc_Num/>
                <Branch_Code/>
                <Branch_Name/>
                <Bank_City/>
             </Account_Details>
             <Department_Details> ---------- (occurence 0 to x)
                <Dept_Code/>
                <Dept_Name/>
             </Department_Details>
             <Designation_Details>---------- (occurence 0 to y)
                <Desig_Code/>
                <Desig_Name/>
             </Designation_Details>
             <Status/>
             <State/>
          </Corporate_Details>
       </Details>
    </ns0:MTO_Corporate>
    In this structure, each corporate can have more than one accounts and departments and designations. We need to map this with the following target structure:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MTI_Corporate_DB xmlns:ns0="http://axis.com/authorization">
    <StatementCorporate>
    <AXIS_STORED_PROCEDURE action="EXECUTE">
    <Table>SP_CORPORATE_MASTER_INSERT</Table>
    <f_corp_code isInput="true"></f_corp_code>
    <f_corp_name isInput="true"></f_corp_name>
    <f_corp_addr1 isInput="true"></f_corp_addr1>
    <f_corp_addr2 isInput="true"></f_corp_addr2>
    <f_primary_email isInput="true"></f_primary_email>
    <f_corp_req_limit isInput="true"></f_corp_req_limit>
    <f_corp_total_limit isInput="true"></f_corp_total_limit>
    <f_corp_upper_limit isInput="true"></f_corp_upper_limit>
    <f_corp_avail_limit isInput="true"></f_corp_avail_limit>
    <f_effective_from isInput="true"></f_effective_from>
    <f_created_by isInput="true"></f_created_by>
    <f_created_date isInput="true"></f_created_date>
    <f_corp_fax isInput="true"></f_corp_fax>
    <f_Max_Authorizers isInput="true"></f_Max_Authorizers>
    <f_corp_acc_type isInput="true"></f_corp_acc_type>
    <f_corp_acc_num isInput="true"></f_corp_acc_num>
    <f_corp_branch_code isInput="true"></f_corp_branch_code>
    <f_corp_branch_name isInput="true"></f_corp_branch_name>
    <f_corp_bank_city isInput="true"></f_corp_bank_city>
    <f_corp_dept_code isInput="true"></f_corp_dept_code>
    <f_corp_dept_name isInput="true"></f_corp_dept_name>
    <f_corp_desig_code type="true"></f_corp_desig_code>
    <f_corp_desig_name isInput="true"></f_corp_desig_name>
    <f_corp_enable isInput="true"></f_corp_enable>
    <f_corp_status isInput="true"></f_corp_status>
    <p_err_msg isOutput="true" type="VARCHAR">
    </p_err_msg><p_status isOutput="true" ype="VARCHAR">
    </p_status>
    </AXIS_STORED_PROCEDURE>
    </StatementCorporate>
    </ns0:MTI_Corporate_DB>
    Yes, we are using a stored procedure which will insert 5 tables. The problem is in the mapping between souce and target fields.
    Plese provide your inputs on this query.
    Regards
    Suraj

    Hi Manisha,
    >>U need to create number of target message as that of number of account details so that it will be one query for ur database.
    Yes this could have been done if we were sure that a corporate will have more accounts than departments/designations... But that is not always the case.
    >>So map ur source <account_details> node with target root node and change context of <account_detail> to <details>..these will create number of target messages.
    So what I did is to check the larger of account, department and designation and then repeat the traget strucutre that much times...
    >>Now map ur target node with account, dept, and designation details by changing it context to root node
    But still I have some elements like ID, name etc.which comes one for each corporate and they also needs to repeated.. I am thinking that this will not be an easy solution.
    Anyway thanks for the reply and please keep updated if you have any other idea.
    Regards
    Suraj

  • Mapping Complex Types in a UDF

    Hi,
    I have a big text file that is very messed up that I need to clean up. I'm doing this clean up in a UDF. When doing the mapping, i would like to cater for the whole complex type and not just the individual nodes. Is this possible, and if so how?
    Thank you

    Hi,
    I would not recommend this doing in udf because it would be tedious. Also how will you read the whole complex file into one field when you also have other fields? May be if you can give the file here and tell us what you are trying to do then somebody can tell a design or an approach. Else if you feel that you cannot handle it in udf then you can try other mappings.
    Regards,
    ---Satish

  • Another message mapping complex issue  part 2

    Hi All.
    In addtion to my previous question , thers has been another requirement.
    I have to map one field on the condition of another field
    the new source can be like this
    <Header>
    <seg24>
    <matpos>10</matpos>
    <seg12>
    <matdesc>red</matdesc>
    <length>100</length>
    </seg12>
    <seg12>
    <matdesc>green</matdesc>
    <length>200</length>
    </seg12>
    <seg12>
    <matdesc>black</matdesc>
    <length>300</length>
    </seg12>
    </seg24>
    <seg24>
    <matpos>20</matpos>
    <seg12>
    <matdesc>green</matdesc>
    <length>200</length>
    </seg12>
    <seg12>
    <matdesc>black</matdesc>
    <length>300</length>
    </seg12>
    </seg24>
    <seg24>
    <matpos>30</matpos>
    <seg12>
    <matdesc>red</matdesc>
    <length>500</length>
    </seg12>
    <seg12>
    <matdesc>green</matdesc>
    <length>800</length>
    </seg12>
    <seg12>
    <matdesc>black</matdesc>
    <length>900</length>
    </seg12>
    </seg24>
    <seg24>
    <matpos>80</matpos>
    <seg12>
    <matdesc>red</matdesc>
    <length>400</length>
    </seg12>
    <seg12>
    <matdesc>green</matdesc>
    <length>800</length>
    </seg12>
    <seg12>
    <matdesc>black</matdesc>
    <length>900</length>
    </seg12>
    </seg24>
    <LineItem>
    <Itempos>30</Itempos>
    <Itempos>10</Itempos>
    </LineItem>
    <LineItem>
    <Itempos>20</Itempos>
    <Itempos>80</Itempos>
    <Itempos>90</Itempos>
    </LineItem>
    </Header>
    seg12 is a sub segment of seg 24
    the target can be like this
    <Target>
    <field1></field1>
    <field2></field2>
    <targetitempos></targetitempos>
    <targetlength></targetlength>
    </Target>
    I have to create one <Target> node for each LineItem, in this case 2 <Target> node and map the first found <Itempos> to targetitempos
    I have only to map the <lenght> to <targetlength>.if the <matdesc> is red.
    for this I have to compare the Itempos and matpos.
    first map <LineItem> -
    > <Target>
    then
    <Itempos>  -
    > split value  targetitempos
    so far so good but my problem is when mapping the <length>
    if <matdesc> is red
    and
    if Itempos (sort ascending )eq matpos
    then
    <length> -
    > <targetlength>.
    the result I am getting is 2 <Target> node
    <Target>
    <targetitempos>30</targetitempos>
    <targetlength>500</targetlength>
    </Target>
    which is correct
    but the second one is getting the targetlength from another <matpos> and putting it into the <Target> node with the <targetitempos> 20 , which is the first position of <Target> node 2
    <Target>
    <targetitempos>20</targetitempos>
    <targetlength>400</targetlength>
    </Target>
    now <matpos>20 in seg 24 does nor have any lenght neither any seg12 but it is taking it from  another <matpos>
    I have really tried with many options without help
    Please suggest and many thaks.

    Hi Samer,
    This is due to you haven't check the condition for matdesc = "red" & if it "red" doesn't exists map blank.
    for below iteration where matpos = 20 but there is no matdesc with 'Red'.
    </seg24>
    <seg24>
    <matpos>20</matpos>
    <seg12>
    <matdesc>green</matdesc>
    <length>200</length>
    </seg12>
    <seg12>
    <matdesc>black</matdesc>
    <length>300</length>
    </seg12>
    </seg24>
    Thanks,
    Jyoti

  • Mapping complex objects to DataGridColumn

    Hi there,
    I'm having some problems with my mapping to my datagrid.
    My list is filled with object of the type Address. Each Address object contains a property called city, which is an object of the type City.
    So, I'm mapping the column city of my DataGrid to the property city.name. Therefore, when I run my code, nothing is showed in that column.
    Is Flex able to perform this kind of mapping?
    Thanks in advance.
    Roberto.

    That should be supported in 3.4.
    Alex Harui
    Flex SDK Developer
    Adobe Systems Inc.
    Blog: http://blogs.adobe.com/aharui

  • Another message mapping complex issue

    Hi All.
    I have to map one field on the condition of another field
    the source can be like this
    <Header>
    <seg24>
    <matpos>10</matpos>
    <seg12>
    <matdesc>red</matdesc>
    <length>100</length>
    </seg12>
    <seg12>
    <matdesc>green</matdesc>
    <length>200</length>
    </seg12>
    <seg12>
    <matdesc>black</matdesc>
    <length>300</length>
    </seg12>
    </seg24>
    <seg24>
    <matpos>20</matpos>
    <seg12>
    <matdesc>red</matdesc>
    <length>100</length>
    </seg12>
    <seg12>
    <matdesc>green</matdesc>
    <length>200</length>
    </seg12>
    <seg12>
    <matdesc>black</matdesc>
    <length>300</length>
    </seg12>
    </seg24>
    <seg24>
    <matpos>30</matpos>
    <seg12>
    <matdesc>red</matdesc>
    <length>500</length>
    </seg12>
    <seg12>
    <matdesc>green</matdesc>
    <length>800</length>
    </seg12>
    <seg12>
    <matdesc>black</matdesc>
    <length>900</length>
    </seg12>
    </seg24>
    <LineItem>
    <Itempos>30</Itempos>
    </LineItem>
    <LineItem>
    <Itempos>10</Itempos>
    </LineItem>
    <LineItem>
    <Itempos>20</Itempos>
    </LineItem>
    </Header>
    seg12 is a sub segment of seg 24
    the target can be like this
    <Target>
    <field1></field1>
    <field2></field2>
    <targetlength></targetlength>
    </Target>
    I have only to map the <lenght> to <targetlength>.if the <matdesc>  is  red.
    for this I have to compare the Itempos and matpos.
    if <matdesc> is red -
    if  Itempos eq matpos -
    <length> -
    > <targetlength>.
    the problem is in <material> node  the <matpos> is in the right sequence (10,20,30) but in <Itempos> it in the opposite order(30,10,20).
    I can not get the the comparison to return true because it is compares 1 --- 1 and comparing (10 to 30) and (20 to 10) .......... will fail and hence the field red is never mapped.
    is there any way I can compare the 2 positions that at some point it will get the comparison to work.
    Thanks in advance

    Hello,
    the problem is in <material> node the <matpos> is in the right sequence (10,20,30) but in <Itempos> it in the opposite order(30,10,20).
    I can not get the the comparison to return true because it is compares 1 --- 1 and comparing (10 to 30) and (20 to 10)
    You can use this mapping to reorder the values in itempos
    Itempos -> removeContext -> sort:ascending -> splitByValue:eachValue -> your comparison logic here
    Hope this helps,
    Mark

  • How to map complex queries to ADF

    I have an SQL query that I would like to map to ADF business components but am having difficulty.
    The query is:
    SELECT ENTA.KEYA, ENTA.ATTA1, ENTB.ATTB1 FROM ENTA, ENTB WHERE (ENTA.KEYA = '?') AND (ENTA.ATTA2 = ENTB.KEYB) AND (ENTA.ATTA1 BETWEEN ? AND (SELECT MIN(ENTA.ATTA1) FROM ENTA , ENTB WHERE (ENTA.ATTA2 = ENTB.KEYB) AND (ENTB.ATTB2 = 'D') AND (ENTA.KEYA = '?') AND (ENTA.ATTA1 >= ?)))
    I don't know if I should use one view object for the inner query or one view object for the whole query. Whatever I try I still have problems with the ViewLink.
    To make matters more complicated parameters 1 and 3 are identical as are parameters 2 and 4.
    Can anyone help?

    Stephen,
    if the problem is that you cannot execute the query in teh BC4J tester, then this is because it doesn't support testing with parameters.
    Another way of doing what you want is to create two EO and then have the VO select the attributes from both. However, to do the filtering you still need to add parameters to the query.
    Frank

  • Iphone maps use cases

    Apple's iPhone maps application has some very nice graphics, but I've found it awkward to use at times. I would like to start a constructive discussion of what we, as users, want from the map application. Usually, the best way to start this kind of discussion is with a cooperative brainstorm, inventing little scenarios where we would like the map application to answer a question or solve a problem.
    Here are some examples:
    - I feel lost, where am I in relation to surrounding streets and businesses?
    - I'm in a strange city. How do I get from A to B?
    - Where am I on the path from A to B?
    - I'm in a familiar city, and I want to optimize my travel from A to B. What is the fastest route? What is the shortest route? What is the best way to go if I really like driving on avenue C?
    - I'm trying to get to work, and I'm using surface streets to bypass stop and go traffic on the freeways. Where am I in relation to traffic jams on nearby freeways?
    - Where is the nearest XYZ (coffee, sushi, hospital, police)?
    - I'm in a traffic jam. How long will it last?
    - My car broke down and I'm in the middle of nowhere. What can I do?
    - I've really enjoyed my time here. How can I remember where this is and what was so special about it?
    - I'm feeling a bit lonely. I wonder if any of my friends are close by and interested in joining me?
    - I'm going to be late picking up the kids at soccer practice. Is one of the other soccer parents close enough to pick them up today?

    Many of the points you mention are addressed.
    Carl Sutton wrote:
    Here are some examples:
    - I feel lost, where am I in relation to surrounding streets and businesses?
    Find me gives you an approximate location, comparing that to the street signs, and/or satellite view.
    - I'm in a strange city. How do I get from A to B?
    You can look up directions, either from two addresses or from the current location to an address.
    - Where am I on the path from A to B?
    If you have a route, you can view it turn by turn. Find me combined with a route being displayed can also be used to location yourself.
    - I'm in a familiar city, and I want to optimize my travel from A to B. What is the fastest route? What is the shortest route? What is the best way to go if I really like driving on avenue C?
    The iPhone map application doesn't support moving the route. However, it will route around traffic data when available. When I was traveling to MacWorld from somewhere north of Sacramento, when I re-entered my route it adjusted it based on traffic.
    - I'm trying to get to work, and I'm using surface streets to bypass stop and go traffic on the freeways. Where am I in relation to traffic jams on nearby freeways?
    Traffic does show sections of traffic that are stopped. The traffic data is provided to Google from a variety of private and public entities. Google then provides the map data. If your area doesn't usually show anything with the traffic button, you can look at San Francisco.
    - Where is the nearest XYZ (coffee, sushi, hospital, police)?
    In the search box put in coffee and it will look for business/places with coffee in their name centered on the current view. You can also put coffee and a zip/postal code or city,state/province to search. That was the example shown in the "Calamari" commercial that aired before the iPhone was released.
    - I'm in a traffic jam. How long will it last?
    It may not show how long, but can show the general area
    - My car broke down and I'm in the middle of nowhere. What can I do?
    Find me will give a general location, and from that you can call a tow company.
    - I've really enjoyed my time here. How can I remember where this is and what was so special about it?
    Drop a pin, and then you can enter in the name of the bookmark. In the name field you can include keywords to remind you of the experience. It doesn't link to pictures directly. You could also create a contact for that address, and apply the picture to the contact.
    - I'm feeling a bit lonely. I wonder if any of my friends are close by and interested in joining me?
    - I'm going to be late picking up the kids at soccer practice. Is one of the other soccer parents close enough to pick them up today?
    There are some potential privacy concerns with such a feature. What if your wife found out your present to her was from Tiffany's because you spent 3 hours there? What if you actually waiting to pick something up for your boss or coworker? Sure, it might be the material for a sitcom, but in real life wouldn't be so funny.
    The best place to submit ideas like these would be:
    http://www.apple.com/feedback/iphone.html
    As always, my opinions are my own.
    Hope this helps,
    Nathan C.
    Message was edited by: Nathan C - route, not router.

  • IN CRM 2011: when a Case to serviceActivity mapping?

    Hello,
    We added a new lookup field to service activity entity and when ever a service activity is created from case (by clicking ribbon on the "Add" tab of Case entity) we want information from case to be propagated from case to service activity. 
    I cant find the mapping between case and service activity. Please advice.
    Thanks

    Create a new 1:N relationship from the Case entity to the Service Activity and the mappings option will be available.
    Regards, Donna

  • External context mapping

    Hi everybody,
    I have a question please help me out.
    As stated in tutorial 14 (Server side eventing):
    <At design time, a Web Dynpro component does not know the context structures of its embedding Web Dynpro component. Therefore, it is not possible at design time to map context elements in the component interface controller of Web Dynpro component A to context elements that belong to a controller context of Web Dynpro component B, which has declared a usage of A. However, if Web Dynpro component A itself uses another Web Dynpro component within itself, this is possible (general context mapping)>
    Let say that I have some properties (let say some options)in component A to be set from component B. Is there any  way to do an external mapping given that component A is not inside component B (embedding component) or I must create a new method with parameters in interface controller A to be called from component B?
    Thanks a lot guys in advance
    Raplh

    Ralph,
    <i>Later I found out that external context mapping worked only on component within another component only</i>... Absolutely correct, hence <b>Inner</b>A and <b>Outer</b>B should work. Why this is not working for you? Could you provide more detals? Runt-time error? Any messages in designer?
    Re-read my post -- I described more complex case, i.e. there are actually 3 components, Outer, InnerA and InnerB. 2-nd and 3-rd are children of first. So even InnerA and InnerB has no parent-child relationship, they may communicate via common parent.
    Valery Silaev
    SaM Solutions
    http://www.sam-solutions.net

  • Oracle database integration with SAP PI for high volume & Complex Structure

    Hi
    We have requirement for integrating oracle database to SAP PI 7.0 for sending data which is eventually transferred to multiple receivers. The involved data structure is hugely complex (around 18 child tables) with high volume processing requirement (100K+ objects need to be processed in 6-7 hours). We need to implement logic for prioritizing the object i.e. high priority objects must be processed first and then objects with normal priority.
    We could think of implementing this kind of logic in database procedures (at least it provides flexibility for implementing data selection logic as well as processed data can be marked as success in the same SP) but since PI sender adapter doesn't support calling Oracle stored procedures currently so this option is rules out. we can try implementing complex data selection using oracle table function but table function doesn't allow any SQL query which changes data (UPDATE, INSERT, DELETE etc) so it is impossible to mark selected objects in table function from PI communication channel "Update Query" option.
    Also, we need to make sure that we are not processing all the objects at once as message size for 20 objects can vary from 100 KB to 15 MB which could really lead to serious performance issues for bigger messages.
    Please share any implementation experience for handling issues:
    1 - Database Integration involving Oracle at sender side
    2 - Complex Data structures
    3 - High Volume Processing
    4 - Controlled data selection from database to contro the message size in PI
    Thanks,
    Panchdev

    Hi,
          We can call the stored procedure using receiver adapter using ccBPM, we can follow different approaches for reading the data in this case.
    a) In this  a ccBPM instance needs to be triggered using some dummy message, after receiving this message the ccBPM can make  a sync call to the Oracle database the store procedure(this can be done using the specific receiver data type strucure), on getting the response message the ccBPM  can then proceed with the further steps.The stored procedure needs to be optimized for improving the performance as the mapping complexity will largely get affected by the structure in which the stored procedure returns the message.Prioritization of the objects can be handled in the stored procedure.
    b) In this a ccBPM instance can first read data from the header level table, then it can make subsequent sync calls to Oracle tables for reading data from the child tables.This approach is less suitable for this interface as the number child tables is big.
    Pravesh.

  • Key Mapping activates Versus Import Manager

    Hello,
    I have Key mapping activated in the console and Supress Unchaged Records activated in my syndication map.
    Case  : I import files (suppliers catalogs) to MDM via Import Manager manually. I am not sure about it, but since I activated Key mapping property,
    I noticed that for each supplier ID in the Supplier table, a lot of remote keys were created. Previously I only had one remote key for each supplier and now I have a list of other supplier's ID. ( Existent or nonexistent supplier IDs). This becomes an issue for my import, because  when I try to import a file where the supplier id does not exist in the MDM ( this scenario used to block my import and this is what a expect, as supplier is a key in my mapping),  the system automatically maps that nonexistent supplier to other supplier.
    Can you help me to understand if this is caused for the key mapping property ? Any Idea ?
    Thank you very much
    Luciana.

    Hello Stanley,
    The remote keys are form the same remote system.
    My story is : When I am importing a file , suppose my file has an invalid supplier ID. ( this means this supplier is not in the lookup table Suppliers)
    1)The import manager will give me a message such as : Map Supplier ID Values. This behavior was expected.
    2)I decided to test the automap. The invalid supplier was not mapped to a different value. I am ok with that.
    3)If the user ( dont ask me the reason ;-)) decides to map that invalid supplier ID to a different one, he/she is allowed to do so. I remember when the key mapping was not activated this option did not exist. The map and automap button was deactivated.
    What I am trying to make sure is : a remote key will be created for invalid suppliers ONLY if I choose to map it with a different supplier ID.
    Do you have any comments about it ?
    Thank you very much
    Luciana.

Maybe you are looking for

  • Triangle Intercept Theorem -

    import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Dimension; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JFrame; import javax.swing.JPanel; public class G {     CardLayout ca

  • R12: Multiple Tab Reports (Content Set)

    All, We are on R12 and we are using Report Manager and WebADI. In Report Manager if we run an FSG report with a content set it opens up in Excel, with one tab for each value in the content set. So, all is good. However, in core GL when we run Program

  • Write through URLConnection object

    Hi all, I have a small problem with URLConnection. I make a URL connection to my server and I am trying to write some content to this connection after setting dooutput(). But data is not writing to other end until I call read inputstream. I don't kno

  • Repalce comma with Space in Webi report.

    Hi Experts, My address Column in Webi report is showing data is like : Address (this is the field coming for BW) House No1,Flat J10,New Delhi,INDIA. Can we replace Comma with the space so that the ablove data would be like : House No1 Flat J10 New De

  • Satellite L850 - 13N - Function keys ("FN") doesn't work

    Hello, I have Toshiba Satellite L850-13N with Windows 7 x64. The problem is that my function keys doesn't work. Could someone write me which drivers i need to install ? PS. sorry for my english :) Thanks for the help.