Mapping 2 source structures to a single target database

Hi Experts, My scenario is a Proxy to JDBC in which I need to send data from 2 source structures to 1 target table.
Source structures :                                           Target:
ABC                                                                 XYZ
  row1                                                                 InsertStatement
    Item1                                                                  DBTable
                                                                    Action
   (Fields)                                                     Table
                                                                                acess
DEF                                                                              -
  row2                                                                          -
   item2                                                                         -
  (Fields)
(Fields)
Please let me know how to map the 2 source nodes to the target access node to transfer data from the source tables to target database.
Regards,
Krishna

You should make use of BPM to collect the two source structures.
One of the BPM examples mentioned in IR --> SAP BASIS ---> SystemPatterns can be referred for this purpose.
Once the messages are collected, perform a 2:1 mapping (two Proxies as source message and one JDBC message as target).
If you want the mapping logic then please provide a proper format of both your Source and Target messages and the expected mapping, so that someone from SDN can help you out.
The target structure provided is a bit confusing.
Are you going to receive two different proxy messages (i.e. two different calls) or just one Proxy call and there you will have two different nodes within the same message??? ...... me confused
Regards,
Abhishek.
Edited by: abhishek salvi on Sep 25, 2009 11:51 AM

Similar Messages

  • How to handle 1 Source Structure and N ( multiple Target Structure

    Hi           I have One source structure , Which is Source1 and mulitple target structure which Target1 , Target2 and Target3
    I need Map this Source1 to Target1 and Target2 and Target3 based on the condition of one field of source1
    ianyone please tell me how to do it
    Thanking you
    Sridhar

    Hi Sridhar,
    Yes Multimapping is possible without BPM from SP14 and above. But there are certain limitation on that as well. You can do only 1:N multi mapping and N:1 is not possible without BPM. In the case of 1:N mapping you would need to go for Enhanced Interface Determination and you will have a full advantage of that mapping if you use a adapter other than IDOC, HTTP and XI. In otherwords this holds good for adapters that runs on Adapter framework and not on Integration Engine.
    BPM involved:
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    /people/narendra.jain/blog/2005/12/30/various-multi-mappings-and-optimizing-their-implementation-in-integration-processes-bpm-in-xi
    Without BPM:
    http://help.sap.com/saphelp_nw04/helpdata/en/42/f3b31d48fb1bc8e10000000a11466f/content.htm
    /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    Thanks
    Ravi

  • Need to load data from source .CSV files to oracle target database.

    Hi,
    This is the my scenario
    I have .CSV files in ftp folder and need to load the data into target tables.
    For that i need to create package and load the data into daily basis.
    But some time .csv file name will vary daily basis.
    can you any one suggest me???
    Thanks in Advacne.
    Zakeer

    Dear Roy,
    Thanks for your response
    Now I am able to extract the .zip file OdiUnZip (file). and loading data into target this is chapping in static way
    and my scenario is that some time i will get .zip files with different names with different .csv files
    i need to dynamically find the new .zip file and extract it and load the data into target.
    Please advice me..
    Thanks in advance
    Zakeer

  • Biztalk Map: Map repeating structures into a single node

    Simple one for the experts. I have the following two samples. Can somebody please guide me on how to achieve my output? Just a caveat. The Errorlist may or may not have errors in which case just an empty tag should suffice.
    Input
    <Detail Att1="a">
    <Value1>Test</Value1>
    <Value2>Test2</Value2>
    <ErrorList>
    <Error>Error_0</Error>
    <Error>Error_1</Error>
    <Error>Error_2</Error>
    </ErrorList>
    </Detail>
    Output1: Could be one or more xmls depending on the number of errors
    <Detail Att1="a">
    <Value1>Test</Value1>
    <Value2>Test2</Value2>
    <Error>Error_0</Error>
    </Detail>
    <Detail Att1="a">
    <Value1>Test</Value1>
    <Value2>Test2</Value2>
    <Error>Error_1</Error>
    </Detail>
    <Detail Att1="a">
    <Value1>Test</Value1>
    <Value2>Test2</Value2>
    <Error>Error_2</Error>
    </Detail>
    Output 2: Concatenation of errors using a suitable delimiter (I used pipe..pls suggest)
    <Detail Att1="a">
    <Value1>Test</Value1>
    <Value2>Test2</Value2>
    <Error>Error_0 | Error_1 | Error_2</Error>
    </Detail>
    Thanks

    Hello ZIntegrator,
    for your second output case, you can build map like below . since error can occur zero or more times, make sure you set the "Error" element  max occurs property to unbounded and Min occurs to 0 in the input schema.
    so just drop String concatenation and cumulative concatenation functiods like above.
    and for String concatenation, supply second parameter as the character pipe  "|".  that's it, it should work.
    And coming to your first output case, as per your input you have 3 error cases. so do you want to create 3 different xml messages?
    please note that a map can only output one message (of course we can create more than one using transform shape in orchestration, that is different case).
    if you want seperate xml documents to be generated for each error, then normal mapping cannot work. 
    Please mark the post as answer if this answers your question. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • Message mapping---1 source structure and n target structures

    I would like to know how many message mappings we need if we are mapping one source structure to 3 different target structures of a single receiver. I am assuming its just one message mapping.
    Depending on the above answer how many interface mappings do we need.

    Kalyan,
    you need multi-mapping that maps one source structure to multiple target structures. Just search multi mapping in SDN and you will find many good posts.
    Basically, in MM editor, go to signature tab and in the target messages add additional message types. Simple.  --> Only one MM and one IM
    Jayson

  • Issue in OWB mapping - when changing source and target database

    Hi,
    I need help for resolution of the issue I am facing when moving mapping from development environment to QA.
    Here is situation,
    We develop ETL using one source, one staging and one target database.
    In development we use one control_center for Source to staging and another control center staging to target.
    All works fine in development.
    Now I have created new runtime repository and imported all OWB projects (with full dependencies, exact replica of development). Now I need to change source and staging and target as different database.
    I have created new database location connections and defined/attached DB connectors with stage and target location.
    Now issues are
    1.     Two Staging mapping are not able to bound with source table (giving different error
    a.     One mapping show error for source synonym translation no longer valid when deploying this mapping , but validation comes without any issue)
    b.     Other mapping show error for source table/object not bound to repository
    2.     All the target mapping show validation successful, but when deploying says “table or view does not exist”. But tables are exists on source stage and target. (also permission are set correctly for target user to read from staging tables).
    Not sure how to proceed from here.
    I have recreated new repository and re-imported all project/mappings and defined all connection but still same issue.
    Thanks in advance,
    Vipin

    1. Two Staging mapping are not able to bound with source table (giving different error
    a. One mapping show error for source synonym translation no longer valid when deploying this mapping , but validation comes without any issue)
    b. Other mapping show error for source table/object not bound to repository
    The above error were resolved when re-synchronized the table (for few I have to reimport the table) and mapping.
    2. All the target mapping show validation successful, but when deploying says “table or view does not exist”. But tables are exists on source stage and target. (also permission are set correctly for target user to read from staging tables).
    The above error still pending. My target mapping are not able to deployed/compiled.
    For the above I have defined one Staging location to one target target location and target location have connector to staging (not sure if I have to define connector name same as staging location, as I have created DB connector with different name but reference database is same as staging location).
    Mapping are assoicated with desired data locatoin and meta data.
    control center is also have that data location.
    Mapping are configured for the desired location.

  • Load into single target table frm multiple source table in single interfac

    Hi
    I have four source table and a single target table.
    I need to move data from either of these tables into a target table , and we have to decide the source table based on user input.
    Example :
    Lets say there are four tables A,B,C,D and one target table T.
    If user input says A
    then the data from table A will move to table T
    And again , if the user says table C then data from table C will move to table T.
    And we have to create only one interface for achieving this in oracle Data Integrator ( ODI ).
    You can take assumptions in source and target table.

    Hi ,
    In ODI 11g , there are new feature callled dataset. It allows to use UNION , MINUS etc.
    Google it , you will get many tutorials on Dataset. check the link
    http://www.rittmanmead.com/2011/06/odi-11g-new-mapping-and-interface-features-part-1/
    In your case , you can provide filter conditions on your tables i.e.
    Say My target table is EMPLOYEE , My source tables are EMPLOYEE and DEPARTMENT
    INSERT INTO EMPLOYEE(CUSTOMER_ID , CUSTOMER_NAME) SELECT CUSTOMER_ID , CUSTOMER_NAME from employee where 'EMPLOYEE' = :EMP
    UNION DEPARTMENT_ID , DEPARTMENT_NAME from departments where 'DEPARTMENT' = :EMP ;
    Just pasted the Screenshots on following page : http://oracoholic.blogspot.in/ . Have a look
    Edited by: user8427112 on Jan 8, 2013 11:04 AM

  • How to map multiple source structures to single target structure

    Hi all,
    I have the scenario of 2 input files so i am using BPM for it. I have created the message types of the 3 input files. I have to finally generate an XML file which will contain the data of all the 2 files. That is i have to do 3:1 mapping.
    Source Structure of File 1:
    <b>DT_PWC_Customer</b>
    <i>RECORDSET</i>
      <u>CUSTOMER</u>
       <i><b>REF_NO</b></i>
       <i><b>CUSTOMER_NO</b></i>
    Source Structure of File 2:
    <b>DT_PWC_Customer</b>
    <i>RECORDSET</i>
      <u>METER</u>
       <i><b>REF_NO
       METER_NO</b></i>
    Target Structure of Final Output File:
    <b>DT_PWC_CustomerMeterData</b>
    <i>RECORDSET</i>
      <u>CUSTOMER_METER</u>
       <i><b>REF_NO
       CUSTOMER_NO
       METER_NO</b></i>
    Above nodes i have shown in a heirarchical order..nodes with same indentation are at same level.
    Can anybody tell me how to do this mapping in IR in graphical editor.
    RAJEEV GUPTA

    Hi,
    To elaborate my requirement, I want to tell that since i will be having 2 input files- one for Customer & one for Meter. I want to finally generate one XML file which will have data from both these 2 input files. That is, if Customer file has 3 records(3 REF_NO, 3 CUSTOMER_NO) and Meter file has 4 records(4 REF_NO, 4 METER_NO), the final output XML file  will   have 7 records(7 REF_NO, 3 CUSTOMER_NO,4 METER_NO).
    Thanks,
    Rajeev Gupta

  • Problem in work flow of PE while mapping 2 source structure into 1 target

    We have scenario in BPM where in we have to mapp 2 source structure's into target.
    To be more specific one structure occurance is 0 to unbounded and other one is of single occurance.
    We have done the mapping with target structure and tested it manually in mapping . its working fine..
    While testing it in Configuration scenario, In the workflow process i.e PE process flow, we were not able to get one of the source message structure as the input Message. Instead of two source messages, it is seen only one. Please guide us in this issue.

    actually we are receiving only one message, henece we do not need a correleation. But once we receive this message we are splitting into multiple messages in the transformation step. and we use these split messages in different transformation steps. but in one of the transformation steps we are unable see one of the split messages in the transformation step(though we have used the proper container element.). Please let me know if any ideas on this.

  • Restore single datafile from source database to target database.

    Here's my issue:
    Database Release : 11.2.0.3 across both the source and targets. (ARCHIVELOG mode)
    O/S: RHEL 5 (Tikanga)
    Database Storage: Using ASM on a stand-alone server (NOT RAC)
    Using Oracle GG to replicate changes on the Source to the Targets.
    My scenario:
    We utilize sequences to keep the primary key in tact and these are replicated utilizing GG. All of my schema tables are located in one tablespace and datafile and all of my indexes are in seperate tablespace (nothing is being partitioned).
    In the event of media failure on the Target or my target schema being completely out of whack, is there a method where I can copy the datafile/tablespace from my source (which is intact) to my target?
    I know there are possibilites of
    1) restore/recover the tablespace to a SCN or timestamp in the past and then I could use GoldenGate to run the transactions in (but this could take time depending on how far back I need to recover the tablespace and how many transactions have processed with GG) (This is not fool-proof).
    2) Could use DataPump to move the data from the Source schema to the Target schema (but the sequences are usually out of order if they haven't fired on the source, get that 'sequence is defined for this session message'). I've tried this scenario.
    3) I could alter the sequences to get them to proper number using the start and increment by feature (again this could take time depending on how many sequences are out of order).
    I would think you could
    1) back up the datafile/tablespace on the source,
    2)then copy the datafile to the target.
    3) startup mount;
    4) Newname the new file copied from the source (this is ASM)
    5) Restore the datafile/tablespace
    6) Recover the datafile/tablespace
    7) alter database open;
    Question 1: Do I need to also copy the backup piece from the source when I execute the backup tablespace on the source as indicated in my step 1?
    Question 2: Do I need to include "plus archivelog" when I execute the backup tablespace on the source as indicated in my step 1?
    Question 3: Do I need to execute an 'alter system switch logfile' on the Target when the recover in step 6 is completed?
    My scenario sounds like a Cold Backup but running with Archivelog mode, so the source could be online while the database is running.
    Just looking for alternate methods of recovery.
    Thanks,
    Jason

    Let me take another stab at sticking a fork into this myth about separating tables and indexes.
    Let's assume you have a production Oracle database environment with multiple users making multiple requests and the exact same time. This assumption mirrors reality everywhere except in a classroom where a student is running a simple demo.
    Let's further assume that the system looks anything like a real Oracle database system where the operating system has caching, the SAN has caching, and the blocks you are trying to read are split between memory and disk.
    Now you want to do some simple piece of work and assume there is an index on the ename column...
    SELECT * FROM emp WHERE ename = 'KING';The myth is that Oracle is going to, in parallel, read the index and read the table segments better, faster, whatever, if they are in separate physical files mapped by separate logical tablespaces somehow to separate physical spindles.
    Apply some synapses to this myth and it falls apart.
    You issue your SQL statement and Oracle does what? It looks for those index blocks where? In memory. If it finds them it never goes to disk. If it does not it goes to disk.
    While all this is happening the hundreds or thousands of other users on the database are also making requests. Oracle is not going to stop doing work while it tries to find your index blocks.
    Now it finds the index block and decides to use the ROWID value to read the block containing the row with KING's data. Did it freeze the system? Did it lock out everyone else while it did this? Of course not. It puts your read request into the queue and, again, first checks memory to see if it needs to go to disk.
    Where in here is there anything that indicates an advantage to having separate physical files?
    And even if there was some theoretical reason why separate files might be better ... are they separate in the SAN's cache? No. Are they definitely located on separate stripes or separate physical disks? Of course not.
    Oracle uses logical mappings (tables and tablespaces) and SANS use logical mappings so you, the DBA or developer, have no clue as to where anything physically is located.
    PS: Ouija Boards don't work either.

  • 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;

  • 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

  • Same source structure and different target structure without BPM

    Hi Experts,
    I am using PI 7.11.My requirement is at sender side the source structure is same.Basically invoice data coming from ECC to PI as a proxy message.
    Receiver side adapter is JMS.At target side ,PI has to send the invoice data to 2 receiver systems.Payment node is coming in source XML,which always comes from ECC.For one of the business system ,Payment node should be sent.For the other BS,this node should be supressed.how to achieve this with single mapping?Payload based routing is not possible in my case as i dont have any field which differentiate the receiving system name.
    Regards,
    Karthiga

    Hi,
    In receiver determination, just input the two receivers (no conditions). In message mapping, you can use the constant function called receiver to suppress or create the node. You can only test it by editing the parameters in test tab e.g
    At runtime, this value (receiver) will be filled out by the entries in receiver determination. So only one mapping is needed.
    Hope this helps,
    Mark

  • Message Mapping of Recursive Source Structure?

    Hello,
    a mapping needs to be implemented from a custom source structure to an IDoc. An XSD has been provided for the source structures which contains recursive elements --> an element of a specific type contains another element with the same type.
    If I import the XSD then the type of the recursive element is displayed in "red", but I still can expand it. If I want to use the source structure in the message mapping I cannot expand the recursive elements anymore. Does anyone of you have an idea how to handle this? I want to avoid XSLT if possible.
    Thank you!

    Hi again Florian,
    please have a look at [Structure Overview in Message Mappings on SAP help|http://help.sap.com/saphelp_nwpi71/helpdata/en/e3/92be7c6cd34fd485c967144e302fb6/content.htm]. There is a paragraph on Recursive Structures:
    ...It is possible to map these elements in the mapping editor in a rudimentary fashion by using the context menu to expand a specific number of subnodes and then use them in target-field mappings...
    That works for both source and target message.

  • How to read the source file and copy the entire content to the target Database field

    Hi All,
    PI system extracts the actual business content from the incoming attachment file and copy the entire format to the target Database field which is a blob data type field.
    Sender Adapter: SOAP
    Receiver Adapter: JDBC
    JDBC Structure
    Can we achived the above requirement by using UDF with out Java Mapping?
    Thanks,
    Mahi.

    Ok, in this case yo can use the conten converion of the file adapter. Therefore you first need to create a Datatype in ESR with the required structure
    Then in your file adapter you need to use this datatype and its required fields:
    The Datatype then can be used as usual within you mapping.
    regards
    Christian

Maybe you are looking for

  • Can i upgrade my memory for my hp dv7-6c60us laptop to 16G?

    i was just wondering if i can upgrade my ramm to 8g-16g ... if its even possible.. 

  • Error opening PDF file when send as attachment via email

    Hi, I searched around the forum to resolve my issue and there's alot of post that is related but i can't find any answer to my issues. Here's the scenario :- I try to convert the smartform to PDF and then send the PDF as an attachment via email. Afte

  • Limiting maximum rows for page of a D2K report

    Hi all I have created a report which is giving 96 rows and i want to print only 24 rows per page . for repeating frame in propert i have set maximum record per page as 24 .It is working fine while running in report builder. but after uploading in erp

  • IPhoto 11 upgrade trashed my library

    While upgrading iPhoto 11 to version 9.4, the upgrade would complete about 75%, then cause my iMac to reboot.  After several attempts the upgrade completed.  However, my iPhoto library is gone.  When I start iPhoto it prompts for a library name, or t

  • Report Transfer price of product in FOC order

    Hi Gurus, I need to report from SAP free of charge deliveries in an specific timeframe in kEur. For this purpose Should I need to have a column in our order type ZGFD with the transfer price of product and total sum. or is there any other transation