Post mapping for Reject records!!

hi
I would like to capture all the rejected records when I am loading the fact table. I know I can get this information from WB_RT_ERRORS and WB_RT_ERROR_SOURCES. But, what I would like to do is to have Post mapping process which and the action set to "on error", I would like to capture all the reject records into a flat file. Is there a way I can identify reject in the post mapping process other than referring to WB_RT_ERRORS and WB_RT_ERROR_SOURCES in runtime.Because this is what client is requesting for , Any help on this would be greatly appreciated.
Please mark me directly also since I do not get emails sometimes through the distribution list.
Thanks in Anticipation,
Balaji

Reposting the response from M.Van Der Wiel:
2 comments:
- Ideally, you would explicitly capture the errors, and insert those into a separate table. This would enable you to run the mapping in set-based mode (traditionally this means: no error logging) for optimal performance, and you still get the errors. This does mean you would have
to explicitly design what may go wrong, so you should know what your data looks like. Your flat file could then be created out of the explicit error records, which is probably a bit easier (and faster) than to go from the WB_RT_ERRORS.
- The mapping errors out once the maximum number of errors is reached (as passed at runtime; is defaulted by the configuration setting). Anything in between 0 and the maximum number of errors will result in a status warning.
To do what you want to do, you could indeed use the post mapping process, but perhaps you want to design a separate mapping to write the errors to a file, and use a process flow (with conditional sequencing) to run the second mapping (only if the first one fails or results in a warning). This may be a nicer solution than to write the code manually and implement it as a standalone post-mapping process.
Finally, notice that WB_RT_ERRORS and the like are not tables you should directly query (they will change in the future). Rather you should use the ALL_RT_<something> views to access the same information. Going forward, as the customer desires to migrate to a later release, it is
more likely that their customizations still work.
Thanks,
Mark.
PS.
Another possiblity - if the errors violate a key constraint - would be to configure the mapping target with the constraints parameter set to false and redirect the error records to a error table (this can be done in the mapping configuration - sources and targets section). This configuration will disable the constraints during the load and re-enable them after the load, putting the offending records in the error table. You can then download the records from the error table into a flat file in a separate mapping or in a post-mapping process.
Regards:
Igor

Similar Messages

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

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

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

  • Posting date issue for COGI records.

    Hi all,
      I have one issue regarding the posting date for the records which are being cleared from COGI.
    _In case of MF47 (Postprocessing for REM) following is the behaviour,_
    In this if GR has happened on say 1st and due to stock un-availability components are gone to Post processing, Now when stock of component inwarded on say 20th then GI posting happens on 20th in post processing record clearance
    _Now in case of COGI (Automatic goods movement : Error handling) behaviour is different,_
    In this scenario if GR has happened on say 1st and due to stock un-availability components are gone to Post processing (COGI), Now when stock of component inwarded on say 20th then GI posting happens on 1st in post processing record clearance
    I want same should be happened in case of COGI also, is there any note/ correction/option available??
    Thanks in advance
    Regards,
    Vinayak.

    Dear,
    There are backlogs from the backflush in repetitive manufacturing. You can display these using Transaction MF47 and/or Transaction COGI. So schedule a job for program RMSERI11 on daily basis or hourly basis  so it will clear the postprocessing errors.
    But for some of the errors, it needs manual intervention like updating storage location, posting dates due to posting period block etc.
    Hope clear to you.
    Regards,
    R.Brahmankar

  • Load Identifier for Input Records

    Hi
    OWB Version 9.0.3 (9.0.4 available)
    Having created an initial source file load mapping (loading a STG1_GOOD table) I also plan to load the 'bad' file generated by SQL*Loader for rejected records (into a STG1_ERR table) in a second mapping.
    Do you have any suggestions on how I can generate a record id that spans both these tables and will represent the position of the record in the original source file ??
    Many thanks.

    Not sure about your configuration, but you should use a sequence. 9.0.4 also has multi table insert that might be useful in these cases.
    Regards:
    Igor

  • How to generate keys for the records

    Hi Gurus,
          can anybody explain me how to create keys for the recors while working with keymapping.
    Regards
    Ravikumar

    Hi Yugandher,
    Is your Question pertaining to Key generation in MDM or using the Remote key for importing and syndication in MDM?
    Remote Keys are system specific uniques maintained in MDM while importing source records from different source system.You need to Enable key mapping in Console and then map the <Remote key> field to the unique key in Import manager and do similar mapping in syndicator as well.
    You can view the key mapping for differnt records under the Edit key mapping (context menu) right clicking on any record.
    To know more on this refer the below link:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/7051c376-f939-2b10-7da1-c4f8f9eecc8c  (Key mapping) 
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/30843106-5539-2b10-75a9-da483911b0d9  (Key mapping)
    For Key generation in MDM you can use the Qualified range property of Remote system in Console for Key genearation.However these keys will be genearted only after syndication and are created and assigned within MDM and not maintained from any source remote system.
    Hope It Helped
    Thanks & Regards
    Simona Pinto

  • Mapping issue: FCC: Idoc for each record in file

    Hi,
    I have file to Idoc scenario.
    I receive csv file with multiple records.
    The requirement is to create an Idoc for each record.
    For eg.
    source file
    A1,B1,C1
    A2,B2,C2
    A3,B3,C3
    After FCC
    <MT>
    <TRANS>
    <ROW>
    <A>A1</A>
    <B>B1</B>
    <C>C1</C>
    </ROW>
    <ROW>
    <A>A2</A>
    <B>B2</B>
    <C>C2</C>
    </ROW>
    <ROW>
    <A>A3</A>
    <B>B3</B>
    <C>C3</C>
    </ROW>
    </TRANS>
    <MT>
    I have first tested it with only 1 record to test end to end connectivity. It works as expected and Idoc is posted to target system.
    Now when I am trying to send multiple records, I am getting some issues.
    Below are the steps that I have taken to process multiple records:
    1. Changed the cardinality of ROW (child of RecordSet) from 1 to Unbounded.
    2. Changed the occurance of Idoc to Unbounded.
    3. Mapped ROW to Idoc root.
    I have tested the mapping in IR and it generates multiple IDOCs.
    When I send the test file, it fails with error Tag found instead of tag IDOC BEGIN=
    I can see the xml message created with multiple ROWs in XI by File adapter in sxmb_moni.
    When I do Test Configuration in ID, with the XML message extracted from sxmbmoni, the result that I got was:_
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"><ns0:Message1></ns0:Message1></ns0:Messages>
    This means that idoc was not created while mapping.
    But the same sample message works OK in IR!
    Pls help where I have missed.
    Regards,
    Anirudh.

    Sudhir,
    Thanks for your response.
    FCC is working fine. I have taken the XML message in XI created after FCC from csv sample message.
    I have tested this message in IR by placing it between
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
       <ns0:Message1>
    </ns0:Message1>
    </ns0:Message>
    It is working fine and Idocs are created in mapping in IR.
    But the same sample message is creating below output ID!
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"><ns0:Message1></ns0:Message1></ns0:Messages>
    Regards,
    Anirudh.

  • Graphical mapping question - need to create 2 nodes for each record

    The mapping is from flat to nested, i.e. flat file to FIDCC2 idoc. Each record has to go to 2 repeated IDoc segments, each one with different posting key. Right now, I have it working for each record to a segment(for one segment) by using splitByValue (value change). How can I repeat the creation of another but with slightly different constant.
    Also, how do I add line numbers? I remember seeing a posting on this a while ago - cannot locate it.
    Will be Rewarded WELL.
    Thanks,
    Pam

    Hi, Pam
    Using the following example to store it as global variable
    SetParameter from GloabalContainer:
    container.getGlobalContainer ().setParameter ("COUNTER", "0");
    GetParameter from GloabalContainer:
    String myCounter = (String) container.getGlobalContainer().getParameter ("COUNTER");
    When you map to your constant, store it in global variable, then you map other field, get current global variable, check its value, based on the value, you do proper mapping.
    Hope it helps
    Liang

  • How to genarate Primary Key for each record in XI  Mapping

    Hi,
    I need to genarate primary key for each record in the paylod in mapping..
    Eg: if i have a 10 reacords i need to have a primary key for each record..starting with the
    Record      Primary key
    First            001
    Secound      002
    Tenth         010
    If i need to write any user defined funtion... can any one provide the code for it.
    Thanks
    Amaresh

    Hi Bavesh,
    I will explain with the example:
    XML:
    <Record 1>
    <Primary key>
    <value1>
    <value2>
    </Record 1>
    <Record 2>
    <Primary Key>
    </Record 2>
    like above i will be getting n number of recored and in each record i need  to genarate primary key in XI.and the key sould be in sequence...
    like for the first record 1 secound 2 like that primary key should add to the privous Primary key.
    and this is for each payload.
    Thanks
    Amaresh

  • 2lis_02_scl extract records with wrong posting date for Good Receipts.

    Hi Experts,
    We are currently having issue of mismatch between BW Schedule Line data with R/3 values for the Goods Receipts posting date updating incorrectly in to BW.
    Example.
    In table EKBE purchase order history we have following records.
    MANDT EBELN        EBELP   ZEKKN VGABE GJAHR BELNR      BUZEI BEWTP BWART BUDAT      MENGE
    501   5600453404   00010   00    1     2010  5012473031 0001  E     101   23.01.2010        1.250,000
    501   5600453404   00010   00    1     2010  5012473031 0002  E     101   23.01.2010        1.250,000
    501   5600453404   00010   00    1     2010  5012473031 0003  E     101   23.01.2010        1.250,000
    501   5600453404   00010   00    1     2010  5012693310 0001  E     101   26.02.2010        1.250,000
    Which means we have on posting date of 23.01.2010 1250*3 i.e. 3750 quantity of Goods Receipts.
    However when we check the extractor we get multiple records in internal table C_T_DATA and in psa.
    Line BWV ETENR   SLFDT              MENGE    ROCA BEDAT                            BUDAT          EBELN
           ORG                                                        NCEL
    1     001     0001     20100125     3750.000          20100113     ZNB     F     00000000     5600453404
    2     001     0002     20100226     1250.000          20100113     ZNB     F     00000000     5600453404
    3     002     0001     20100125     3750.000     X     20100113     ZNB     F     20100123     5600453404
    4     002     0001     20100125     3750.000          20100113     ZNB     F     20100123     5600453404
    5     003     0001     20100125     3750.000     X     20100113     ZNB     F     20100127     5600453404
    6     003     0001     20100125     3750.000          20100113     ZNB     F     20100127     5600453404
    7     002     0001     20100125     3750.000     X     20100113     ZNB     F     20100226     5600453404
    8     002     0001     20100125     3750.000          20100113     ZNB     F     20100226     5600453404
    9     002     0002     20100226     1250.000     X     20100113     ZNB     F     20100226     5600453404
    As can be seen we have record no 8 for ETENR (Schedule line 1) with posting date 26.02.2010 and another record with posting date 23.01.2010.
    Since we are getting 2 records the record with incorrect posting date overwrites the record with correct one.
    Any idea if this could be a standard extractor problem or any other way to resolve this issue.
    Any help would be appreciated.

    First of all, are you using a staging DSO? (You should ideally)
    If yes, is it a Write Optimized DSO? (Again, this is ideal)
    If its a standard DSO, the values maybe over-writing upon activation.
    You have 3 records (quantity = 1250 * 3) that have been receipted on 23.01.2010, where Posting Date = 23.01.2010.
    You also have a record (quantity = 1250 * 1) that has been receipted on 26.01.2010. Posting date = 26.01.2010.
    Now, in RSA3 & in PSA you can see more records than intended.
    This is because you have before & after images. (ROCANCEL = X or blank).
    ROCANCEL = X --> Before Image (record before change)
    ROCANCEL = blank --> After Image (record after change)
    This is a standard property of the extractor.
    Now, we also have something known as BWVORG (Process Keys). Each process, i.e. creating a PO, Goods Receipt, Invoice etc.. have different Process Keys.
    Creation - 001
    Goods Rcpt. - 002
    Invoice - 003
    We can see that record 8, i.e. BWVORG = 002 (GR) has been modified on 26.01.2010.
    That is why there is before image and after image.
    Which one should be the correct posting date? 23.01.2010?
    Normally in a Write optimized DSO, you will have all the records (before and after images & others as well).
    I hope this helps.
    Please let me know if otherwise.

  • RE:  REJECTED RECORDS IN XI OR BW

    I  found a bug in the process between XI and BW.
    Some rejected records occur when a transaction has a Voided line item.
    I think I've found what may be a large part of what's contributing to these rejected records. It looks like if a transaction has a voided line item (but the transaction itself isn't voided) the whole transaction could be rejected by XI/BW because they are looking at the other codes (such as discount reason code, tax codes, etc) but they are ignoring the fact that VOID_CD = 1 for those line items.
    For example, there may be a Return transaction with 3 line items, two of them have return reason codes, but one does not because it has been voided.
    How should this be handled in SAP? Does SAP care about the voided items in general? Should XI skip validation on those ones and "push them through"? Or is there a special area that voided items can be sent to?
    where should i need the changes? On the mapping process in XI or in the BAPI ZPOSDW_BAPIINPUT_PRE in BW?
    We donu2019t want the transaction to be rejected..only the void item to not be processed.(ours is idoc to file scenario)
    **Please help out in this issue**
    Thanks in advance,
    Amarnath Reddy

    >>I found a bug in the process between XI and BW.
    You can report this to SAP by opening a OSS message on service marketplace:)
    >>We don't want the transaction to be rejected..only the void item to not be processed
    XI considers the who payload as one single message,if any condition fails,it will drop the whole payload.
    You need to split your payload into several payloads with each one containing only 1 line item.in that case only the ones who are wrong will be voided,rest all will go through properly.
    This can be done via modules on sender side,but since you are using IDOC as sender,you can't configure modules.
    Try asking the same question in BW/BI forum,its possible they have some way to handle this in BW.
    Thanks
    Aamir

  • ABAP Mapping with multiple records

    Hi All,
    I am doing an ABAP mapping and I am new to this.
    I have a following record structure:
    <record>
       <field1>
       <field2>
       <fieldn>
    </record>
    I will receive the multiple records with the above structure in single file.
    I have following the Blog from SDN but it is saying only for single record.
    Can please someone post the code for handing multiple records (ie. loop structure).
    or else please mail me at [email protected]
    Regards,
    Shylesh

    Hi Thanks for the reply.
    But actually these threads do not sufficient for my requriement.
    I written the following code and it is working fine for one single record.  But I want to change this code to work for multiple records which I am not able to do as I am new to Object Oriented.
    method IF_MAPPING~EXECUTE.
    initialize iXML
      type-pools: ixml.
      class cl_ixml definition load.
    create main factory
      data: ixmlfactory type ref to if_ixml.
      ixmlfactory = cl_ixml=>create( ).
    create stream factory
      data: streamfactory type ref to if_ixml_stream_factory.
      streamfactory = ixmlfactory->create_stream_factory( ).
    create input stream
      data: istream type ref to if_ixml_istream.
      istream = streamfactory->create_istream_xstring( source ).
    parse input document =================================================
    initialize input document
      data: idocument type ref to if_ixml_document.
      idocument = ixmlfactory->create_document( ).
    parse input document
      data: iparser type ref to if_ixml_parser.
      iparser = ixmlfactory->create_parser( stream_factory = streamfactory
                                                     istream = istream
                                                    document = idocument ).
      iparser->parse( ).
    get message content of tag <empno>
      data: incode type ref to if_ixml_node_collection.
      data: incode1 type ref to if_ixml_node_collection.
      data: incode2 type ref to if_ixml_node_collection.
      data: incode3 type ref to if_ixml_node_collection.
      data: incode4 type ref to if_ixml_node_collection.
      data: incode5 type ref to if_ixml_node_collection.
      data: incode6 type ref to if_ixml_node_collection.
      data: incode7 type ref to if_ixml_node_collection.
      data: incode8 type ref to if_ixml_node_collection.
      data: incode9 type ref to if_ixml_node_collection.
      incode = idocument->get_elements_by_tag_name( 'empno' ).
      incode1 = idocument->get_elements_by_tag_name( 'empname' ).
      incode2 = idocument->get_elements_by_tag_name( 'address1' ).
      incode3 = idocument->get_elements_by_tag_name( 'address2' ).
      incode4 = idocument->get_elements_by_tag_name( 'address3' ).
      incode5 = idocument->get_elements_by_tag_name( 'zipcode' ).
      incode6 = idocument->get_elements_by_tag_name( 'mailid' ).
      incode7 = idocument->get_elements_by_tag_name( 'phoneno' ).
      incode8 = idocument->get_elements_by_tag_name( 'country' ).
      incode9 = idocument->get_elements_by_tag_name( 'city' ).
    get XI header data (here: "Sender Service")
      data: l_sender_service type string.
      l_sender_service = param->get( if_mapping_param=>sender_service ).
    add trace (appears in message monitoring)
      data: l_trace type string.
      concatenate 'Sender Service = ' l_sender_service into l_trace.
      trace->trace( level = '1'
      message = l_trace ).
    build up output document =============================================
    create output document
      data: odocument type ref to if_ixml_document.
      odocument = ixmlfactory->create_document( ).
    create element 'SenderService' and add it to the document
      data: msgtype type ref to if_ixml_element.
      msgtype = odocument->create_simple_element( name = 'record'
                                                parent = odocument ).
    create element 'SenderService' and add it to the output document
      data: elementsender type ref to if_ixml_element.
      elementsender = odocument->create_simple_element( name = 'SenderService'
                                                       value = l_sender_service
                                                      parent = msgtype ).
    add node to the output document
      data: outcode type ref to if_ixml_node.
      data: outcode1 type ref to if_ixml_node.
      data: outcode2 type ref to if_ixml_node.
      data: outcode3 type ref to if_ixml_node.
      data: outcode4 type ref to if_ixml_node.
      data: outcode5 type ref to if_ixml_node.
      data: outcode6 type ref to if_ixml_node.
      data: outcode7 type ref to if_ixml_node.
      data: outcode8 type ref to if_ixml_node.
      data: outcode9 type ref to if_ixml_node.
      outcode = incode->get_item( index = 0 ).
      outcode1 = incode1->get_item( index = 0 ).
      outcode2 = incode2->get_item( index = 0 ).
      outcode3 = incode3->get_item( index = 0 ).
      outcode4 = incode4->get_item( index = 0 ).
      outcode5 = incode5->get_item( index = 0 ).
      outcode6 = incode6->get_item( index = 0 ).
      outcode7 = incode7->get_item( index = 0 ).
      outcode8 = incode8->get_item( index = 0 ).
      outcode9 = incode9->get_item( index = 0 ).
      data irc type i.
      irc = msgtype->append_child( outcode ).
      irc = msgtype->append_child( outcode1 ).
      irc = msgtype->append_child( outcode2 ).
      irc = msgtype->append_child( outcode3 ).
      irc = msgtype->append_child( outcode4 ).
      irc = msgtype->append_child( outcode5 ).
      irc = msgtype->append_child( outcode6 ).
      irc = msgtype->append_child( outcode7 ).
      irc = msgtype->append_child( outcode8 ).
      irc = msgtype->append_child( outcode9 ).
    render document ======================================================
    create output stream
      data: ostream type ref to if_ixml_ostream.
      ostream = streamfactory->create_ostream_xstring( result ).
    create renderer
      data: renderer type ref to if_ixml_renderer.
      renderer = ixmlfactory->create_renderer( ostream = ostream
                                              document = odocument ).
      irc = renderer->render( ).
    endmethod.
    Can anybody help me making these changes.
    Thanks in advance.
    Shylesh

  • Error in codepage mapping for source system. Error

    Hi BW Experts,
    I am facing following error:
    Error message: Error in codepage mapping for source system. Error text:
    Details: Inbound Processing ( 1000  Records ) : Errors occurred
                Error in codepage mapping for source system. Error text:
                Update PSA ( 0 Records posted ) : Missing messages
    I repeated the delta working and everything fine.
    Does anybody know why this error occurs?

    Run rsa13 (for bi 7.0) find your source system which one you are using for data transfer and double  click on it and find special options there select  the optioned i mentioned already.
    Please search SDN you can fin threads related to this thread
    if not let me know.
    Regards.

  • Mapping with repeating records

    Hello,
    I have once schema which has two child records out of that second child has many child fields with repeating records, but when I mapped it further I am getting that second schema only once even it has multiple.
    Help me please ASAP
    Thanks in advance

    Nilesh,
    You have two options:
    Option1:
    Just ensure in schemas, in second child records, set the repeating child record's (repeating record under second child record) "Max Occurs" property is set to
    * (or unbounded). Ensure that this property (Max Occurs =
    *) is set for repeating records in both source and destination schemas. By this way, particular child record will repeat. This way gives more control on which child record you want to
    set as repeatable.
    Options2:
    Just set the second child record (which has the repeating records under it) "Group Max Occurs" property to
    * (or unbounded). By this way, all the child records of this second child, will be set to repeating record.
    Also ensure that the repeating records (not just the child elements, but also the repeating records) are mapped from source to destination.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • Help with multi-table mapping for one-to-many object inheritance

    Hi,
    I have posted on here before regarding this (Toplink mapping for one-to-many object inheritance but I am still having problems mapping my object model to my schema.
    Object model
    The Person and Organisation objects contain base information and have the primary keys person_id and organisation_id. It is important that there is no duplication of person and organisation records, no matter how many times they are saved in different roles.
    There are two types of licenceholder in the problem domain, and the ILicenceHolder interface defines information and methods that are common to both. The PersonalLicenceHolder object represents one of these types of licenceholder, and is always a person, so this class extends Person and implements ILicenceHolder.
    The additional information and methods that are required by the second type of licenceholder are defined in the interface IPremisesLicenceHolder, which extends ILicenceHolder. Premises licence holders can either be people or organisations, so I have two objects to represent these - PremisesLicenceHolderPerson which implements IPremisesLicenceHolder and extends Person, and PremisesLicenceHolderOrganisation which implements IPremisesLicenceHolder and extends Organisation.
    The model is further complicated by the fact that any single Person may be both a PersonalLicenceHolder and a PremisesLicenceHolderPerson, and may be so several times over. In this case, the same basic Person information needs to be linked to several different sets of licenceholder information. In the same way, any single Organisation may be a PremisesLicenceHolderOrganisation several times over.
    Sorry this is complicated!
    Schema
    I have Person and Organisation tables containing the basic information with the primary keys person_id and organisation_id.
    I have tried to follow Donald Smith's advice and have created a Role table to record the specialised information for the different types of licence holder. I want the foreign keys in this table to be licenceholder_id and licence_id. Licenceholder_id will reference either organisation_id or person_id, and licence_id will reference the primary key of the Licence table to link the licenceholder to the licence. Because I am struggling with the mapping, I have changed licenceholder_id to person_id in an attempt to get it working with the Person object before I try the Organisation.
    Then, when a new licenceholder is added, if the person/organisation is already in the database, a new record is created in the Role table linking the existing person/organisation to the existing licence rather than duplicating the person/organisation information.
    Mapping
    I am trying to use the toplink mapping workbench to map my PremisesLicenceHolderPerson object to my schema. I have mapped all inherited attributes to superclass (Person). The primary table that the attributes are mapped to is Person, and I have used the multi-table info tab to add Roles as an additional table and map the remaining attributes to that.
    I have created the references PERSON_ROLES which maps person.person_id to roles.person_id, ROLES_PERSON which maps roles.person_id to person.person_id and ROLES_LICENCE which maps roles.licence_id to licence.licence_id.
    I think I have put in all the relationships, but I cannot get rid of the error message "The following primary key fields are unmapped: PERSON_ID".
    Please can somebody tell me how to map this properly?
    Thank you.

    I'm not positive about your mappings, but it looks like the Person object should really have a 1:M or M:M mapping to the Licenceholder table. This then means that your object model should be similar, in that Person object could have many Licenses, instead of being LicenceHolders. From the looks of it, you have it set up from the LicenceHolder perspective. What could be done instead if a LicenceHolder could have a 1:1 reference to a person data object, rather than actually be a Person. This would allow the person data to be easily shared among licences.
    LicenceHolder1 has an entry in the LicenceHolder table and Person table. LicenceHolder2 also has entries in these tables, but uses the same entry in the Person table- essentially it is the same person/person_ID. If both are new objects, TopLink would try to insert the same person object into the Person table twice. I'm not sure how you have gotten around or are planning to get around this problem.
    Since you are using inheritance, it means that LicenceHolder needs a writable mapping to the person.person_id field- most commonly done through a direct to field mapping. From the description, it looks like roles.person_id is a foreign key in the multiple table mapping, meaning it would be set based on the value in the person.person_id field, but the person.person_id isn't actually mapped in the object. Check to make sure that the ID attribute LicenceHolder is inheriting from person hasn't been remapped in the LicenceHolder descriptor to a different field.
    Best Regards,
    Chris

  • Post-mapping process error

    I have built all of my process in v9.0.2.62.3 except for once the row is loaded into my staging table, I want to delete this row from the source. I was trying to use the post-mapping process to call a procedure that would perform the deletion. However, I can not get the post-mapping process to work.
    The manual states to add a post-mapping process operator to a mapping:
    Drop a Post-Mapping Process operator onto the Mapping Editor canvas.
    Select the appropriate procedure from the selection list. This were I select a procedure called drop_ind with one input parameter, v_ind_id, of type number.
    Connect the output attribute of a source operator to the INOUTGRP1 of the Post-Mapping Process operator.
    This is where things start to go wrong with the manual. There is no INOUTGRP1, but only an INPUTS. If I try and attach the target column to the INPUTS, I get an API8009 cannot add attributes to POSTMAPPING INPUTS error. So I attach my target column directly to the input parameter
    Rename the operator:
    This goes well enough.
    Then I try and validate, and I get the following message wehn I try to generate the mapping :
    Code cannot be generated.
    Specify another operating mode or see validation messages for details.
    When I validate I get :VLD-2451 Illegal connection to POSTMAPPING. details = Illegal connection to POSTMAPPING.
    Obviously, I am doing something wrong, but what?

    Matthew,
    First a question, what are you trying to add to the post mapping process? The ID of the single row that is processed?
    In that case, you will have to rethink the strategy. What happens in a post map process (and the rest of the map) is the following:
    1) execute any pre mapping processes
    2) execute the main body of the mapping (this is you diagram excluding pre and post mapping processes)
    3) execute the post mapping process
    This means that the post mapping process will be run whenever the rest of the mapping is complete.
    So to do what you want, you can use the post mapping process but you would add a marker to every inserted record and then in the post map procedure delete all the ones that have this marker in the target from the source.
    In that case you would need any parameters from your map into the procedure and you should be all set.
    Hope this helps,
    Jean-Pierre

Maybe you are looking for

  • Max concurrent RT engines is ignored

    Dear experts, my use case is to execute initial load jobs for a large number of backend systems in an automated fashion without any resource contention. I've configured an IdM 7.2 SP7 system with one dispatcher to start at most two concurrent runtime

  • How to reject pulses

    Hi, This is one project that I am doing for some time using sinar sensor which generates pulse with to measure the distance to object. This sensor is being controlle dby basic stamp2. My problem is that I am getting signal from the signal out put of

  • Responsible Organisation determination by Employee Responsible

    Hi Experts, In our scenario the sales representative is assigned via the relationship to the business partner. When creating an activity or opportunity the responsible organizational unit should be determined from the partner function employee respon

  • Encore CS5.5 Will Not Install

    Here's the error log... Exit Code: 6 -------------------------------------- Summary -------------------------------------- - 0 fatal error(s), 10 error(s), 17 warning(s) WARNING: DW066: OS requirements not met for {0D96CFE6-376D-44B8-808A-16F3BEB7326

  • HT1657 can i put a movie on a dvd cd

    If i download a movie can i put it on a CD? SO I CAN PUT IT ON MY DVD PLAYER?