DBAT Child table Reconciliation issue

I have the following environment
IDM 11gR2 (11.1.2.1) Activedirectory-11.1.1.5.0, Database_App_Tables_9.1.0.5.0. Target Database Oracle 11gR2.
I have created a DBAT connector for the Target Database that is having One Master Table and One Child table.
The issue is that the Target reconciliation doesn’t work.
If I run the reconciliation with a single target table it works fine (setting up a new connector for test) but if I run a reconciliation with a target that is having a child table as well it fails.
Summry:
Reconciliation of a target DB with Master-Child Tables is not working.

there is an existing issue with child table recon in oim11gr2
http://docs.oracle.com/cd/E27559_01/relnotes.1112/e35820/id_mgr.htm#CHDDGDCC
Raise SR to oracle

Similar Messages

  • Foreign-key autocreation in child table giving issue in the application

    Hi,
      I am facing an issue with partitioning a table that foreign key relationship is created on the original table with interim table. This gives exception in the application because of its existence. Please suggest me how to get rid of this issue.
    Let's say my table T_TABLENAME has to be partitioned. It has a child table T_CHILD_TABLENAME which references (FK_T1) ID column of T_TABLENAME.
    While partitioning, COPY_TABLE_DEPENDENTS function copies/creates the key/index/trigger objects for the interim table. [I need copy_constraints => TRUE in COPY_TABLE_DEP call], Fine.
    But, after partitioning is done, the foreign key (TMP$$_FK_T1) object exists with the child table which should absolutely not happen as this forms dependency with interim table as well along with parent table.
    Here my script goes:
    i) Creating interim table
    CREATE TABLE T_TABLENAME_PT
    PARTITION BY RANGE (CREATED_DATE)
    (PARTITION P_2007 VALUES LESS THAN (TO_DATE('01-JAN-2008','dd-MON-yyyy')),
    PARTITION P_2009 VALUES LESS THAN (TO_DATE('01-JAN-2010','dd-MON-yyyy')),
    PARTITION P_2011 VALUES LESS THAN (TO_DATE('01-JAN-2012','dd-MON-yyyy')),
    PARTITION P_2012 VALUES LESS THAN (TO_DATE('01-JAN-2013','dd-MON-yyyy')),
    PARTITION P_RECENT VALUES LESS THAN (MAXVALUE))
    AS SELECT * FROM T_TABLENAME WHERE 1=2;
    ii) Partitioning Script
    declare
      v_username varchar2(50);
      v_exception varchar2(220);
      l_num_errors PLS_INTEGER;
      v_source_table  varchar2(35) := 'T_TABLENAME';
      v_interim_table varchar2(35) := 'T_TABLENAME_PT';
    BEGIN
      select USERNAME into v_username from USER_USERS where rownum <= 1;
      begin
          DBMS_REDEFINITION.CAN_REDEF_TABLE(v_username, v_source_table, DBMS_REDEFINITION.CONS_USE_PK);
          DBMS_REDEFINITION.START_REDEF_TABLE(
            uname      => v_username,
            orig_table => v_source_table,
            int_table  => v_interim_table);
          DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS(
            uname      => v_username,
            orig_table => v_source_table,
            int_table  => v_interim_table,
            copy_indexes => 1,
            copy_triggers => TRUE,
            copy_constraints => TRUE,
            copy_privileges => TRUE,
            ignore_errors => TRUE,
            num_errors => l_num_errors);
          DBMS_REDEFINITION.SYNC_INTERIM_TABLE(v_username, v_source_table, v_interim_table);
          begin
           DBMS_REDEFINITION.FINISH_REDEF_TABLE(
            UNAME      => v_username,
            ORIG_TABLE => v_source_table,
            INT_TABLE  => v_interim_table);       
         EXCEPTION
         WHEN OTHERS THEN
           DBMS_REDEFINITION.ABORT_REDEF_TABLE(
            UNAME      => v_username,
            ORIG_TABLE => v_source_table,
            INT_TABLE  => v_interim_table);
          end;     
          exception
              when others then
                v_exception :=substr(SQLERRM,1,150);
      end;
    exception
      when others then
        v_exception := substr(SQLERRM,1,175);
    END;

    Thanks for your information. I am using Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit.
    1) I am logging the exceptions in a logger table.
    2) If CAN_REDEF_TABLE gives exception, flow goes to the final EXCEPTION block and program terminates. So if no exceptions, the other steps comes into the flow of execution.
    Complete Details
    (1) Parent Table (existing): T_SOH_SUBREQ_INSTALLATION_ADDR
    create table T_SOH_SUBREQ_INSTALLATION_ADDR
      ACCOUNT_ADDRESS_ID  NUMBER(10),
      SUBREQ_ADDRESS_ID   NUMBER(10) not null,
      COMMUNITY_ID        NUMBER(10),
      STREET_ID           NUMBER(10),
      BUILDING_ID         NUMBER(10),
      CREATED_USER_ID     VARCHAR2(40) not null,
      MODIFIED_USER_ID    VARCHAR2(40) not null,
      CREATED_DATE        TIMESTAMP(6) not null,
      MODIFIED_DATE       TIMESTAMP(6) not null,
      DELETION_STATUS     CHAR(1) not null
    alter table T_SOH_SUBREQ_INSTALLATION_ADDR
      add constraint PK_T_SOH_SUBREQ_INST_ADDR primary key (SUBREQ_ADDRESS_ID);
    alter table T_SOH_SUBREQ_INSTALLATION_ADDR
      add constraint FK_T_SOH_SUBREQ_INSTALLATIO624 foreign key (ACCOUNT_ADDRESS_ID)
      references T_SOH_ACCT_INSTALLATION_ADDR (ACCOUNT_ADDRESS_ID);
    (2) Child Table (existing): T_SOH_SUBREQ_LINKED_INST_ADDR
    create table T_SOH_SUBREQ_LINKED_INST_ADDR
      CREATED_DATE      TIMESTAMP(6) not null,
      CREATED_USER_ID   VARCHAR2(40) not null,
      MODIFIED_DATE     TIMESTAMP(6) not null,
      MODIFIED_USER_ID  VARCHAR2(20) not null,
      DELETION_STATUS   CHAR(1) not null,
      SUBREQ_ADDRESS_ID NUMBER(10) not null,
      SUBREQUEST_ID     NUMBER(10) not null,
      CIRCUIT_POINT     NUMBER(10)
    alter table T_SOH_SUBREQ_LINKED_INST_ADDR
      add constraint PK_T_SOH_SUBREQ_LINK_INST_ADDR primary key (SUBREQ_ADDRESS_ID, SUBREQUEST_ID);
    alter table T_SOH_SUBREQ_LINKED_INST_ADDR
      add constraint FK_T_SOH_SUBREQ_LINKED_INST626 foreign key (SUBREQ_ADDRESS_ID)
      references T_SOH_SUBREQ_INSTALLATION_ADDR (SUBREQ_ADDRESS_ID);
    (3) Partitioning is done on Parent Table
    CREATE TABLE T_TMP_PARTITION_LOGS
      LOG_MSG  VARCHAR2(250),
      LOG_TIME TIMESTAMP(6)
    CREATE TABLE T_SOH_SUBREQ_INSTALL_ADDR_PT
    PARTITION BY RANGE (CREATED_DATE)
    (PARTITION P_2007 VALUES LESS THAN (TO_DATE('01-JAN-2008','dd-MON-yyyy')),
    PARTITION P_2009 VALUES LESS THAN (TO_DATE('01-JAN-2010','dd-MON-yyyy')),
    PARTITION P_2011 VALUES LESS THAN (TO_DATE('01-JAN-2012','dd-MON-yyyy')),
    PARTITION P_2012 VALUES LESS THAN (TO_DATE('01-JAN-2013','dd-MON-yyyy')),
    PARTITION P_RECENT VALUES LESS THAN (MAXVALUE))
    AS SELECT * FROM T_SOH_SUBREQ_INSTALLATION_ADDR WHERE 1=2;
    insert into t_tmp_partition_logs(log_msg,log_time) values('01_CreateTable: T_SOH_SUBREQ_INSTALL_ADDR_PT Table Created', systimestamp);
    (4) Script for REDEFINITION
    declare
      v_username varchar2(50);
      v_exception varchar2(220);
      l_num_errors PLS_INTEGER;
      v_source_table  varchar2(35) := 'T_SOH_SUBREQ_INSTALLATION_ADDR';
      v_interim_table varchar2(35) := 'T_SOH_SUBREQ_INSTALL_ADDR_PT';
      v_file_name     varchar2(20) := '02_Redefine';
    BEGIN
      insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name || '.sql --> Starts', systimestamp);
      select USERNAME into v_username from USER_USERS where rownum <= 1;
      insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name || ': UserName-'|| v_username, systimestamp);
      begin
          DBMS_REDEFINITION.CAN_REDEF_TABLE(v_username, v_source_table, DBMS_REDEFINITION.CONS_USE_PK);
          insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||': '|| v_source_table ||' After CAN_REDEF_TABLE', systimestamp);
          DBMS_REDEFINITION.START_REDEF_TABLE(
            uname      => v_username,
            orig_table => v_source_table,
            int_table  => v_interim_table);
          insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||': '|| v_source_table ||' After START_REDEF_TABLE', systimestamp);
          DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS(
            uname      => v_username,
            orig_table => v_source_table,
            int_table  => v_interim_table,
            copy_indexes => 1,
            copy_triggers => TRUE,
            copy_constraints => TRUE,
            copy_privileges => TRUE,
            ignore_errors => TRUE,
            num_errors => l_num_errors);
          insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||': '|| v_source_table ||' After COPY_TABLE_DEPENDENTS - l_num_errors:' || l_num_errors, systimestamp);
          DBMS_REDEFINITION.SYNC_INTERIM_TABLE(v_username, v_source_table, v_interim_table);
          insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||': After SYNC_INTERIM_TABLE on '|| v_source_table, systimestamp);
          begin
           DBMS_REDEFINITION.FINISH_REDEF_TABLE(
            UNAME      => v_username,
            ORIG_TABLE => v_source_table,
            INT_TABLE  => v_interim_table);       
          insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||': After FINISH_REDEF_TABLE on '|| v_source_table, systimestamp);
         EXCEPTION
         WHEN OTHERS THEN
           DBMS_REDEFINITION.ABORT_REDEF_TABLE(
            UNAME      => v_username,
            ORIG_TABLE => v_source_table,
            INT_TABLE  => v_interim_table);
           insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||': Aborted '|| v_source_table, systimestamp);
          end;     
        insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||': '|| v_source_table ||' redefined', systimestamp);
          exception
              when others then
                v_exception :=substr(SQLERRM,1,150);
                insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||'-EXCEPTION:'|| v_source_table ||'-' || v_exception, systimestamp);
      end;
      insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||'.sql <-- Ends', systimestamp);
    exception
      when others then
        v_exception := substr(SQLERRM,1,175);
        insert into t_tmp_partition_logs(log_msg,log_time) values(v_file_name ||'-EXCEPTION:' || v_exception, systimestamp);
    END;
    ==> NOW THE ISSUE
    My child table T_SOH_SUBREQ_LINKED_INST_ADDR is having another foreign key column TMP$$_FK_T_SOH_SUBREQ_LIN4 with the interim table T_SOH_SUBREQ_INSTALL_ADDR_PT.

  • Child table provisioning to SQL using DBAT

    I have a Multivalued attribute named 'AuthzIds' coming from Sun LDAP thru target reconciliation. I wanted to provision this value to SQL's 'MyAuthz' table (Child of MyUser table) using GTC - DBAT.
    USR table -> already provisioned to -> MyUser table
    UD_AUTHZ table -> to be provisioned to -> MyAuthZ table.
    How will I make this child table provisioning work ? Do I have to write any custom adapter ? I see a task 'Child Table UD_MYAUTHZ row inserted" task in SQL_GTC process, which uses a adpSQL_GTC adapter.
    Thanks!
    Kabi

    After Create User User, you'll have to add one more task which will read the data from iplanet user form and add in Child Table using Form APIs.*
    You are suggesting to add a dependent-task to GTC-Process's "create user" task. Is my understanding correct ?
    If yes, this may not work for the following reason.
    I assume GTC task 'create User' invoked when the use is created in SQL. In my use case, users are created in SQL thru auto provisioning during 'iPlanet trusted Recon'. The SQL child table 'MuAuthz' suppose to be provisioned with child data when I run 'iPlanet Target Recon' (not 'trusted Recon'). Because 'target Recon' brings the mutlivalue attribute AuthzId to iPlanet resource UD_AUTHZ table (already associated to OIM Users). I run the 'iPlanet Target Recon' separately after successful completion of 'trustes recon'. So create user may not be the appropriate place for adding this dependent task, since there will be no child data available to OIM user after 'trusted recon' .
    Another question related to this. I see few tasks like "Child Table UD_MYAUTHZ row inserted/ updated/ deleted" in GTC process. What are these tasks used for ?

  • Hello Gurus..... ISSUE with child Table update

    I have an issue with child table update
    I have created a GTC with one parent table and two child tables. I'm able to update the parent table and the values are found in db, but the ISSUE is the child Table values are not updating the db.
    please give me a solution
    regards
    Srikanth

    If you are keeping referential integrity in the database, not in the application, it is easy to find the child and parent tables. Here is a quick and dirty query. You can join this to dba_cons_columns to find out on which columns the referential constraints are defined. This lists all child-parent table including SYS and SYSTEM users. You can run this for specific users of course.
    select cons1.owner child_owner,cons1.table_name child_table,
    cons2.owner parent_owner,cons2.table_name parent_table
    from dba_constraints cons1,dba_constraints cons2
    where cons1.constraint_type='R'
    and cons1.r_constraint_name=cons2.constraint_name;

  • Perfomance Issue on Parent Child table SQL

    I am having table a and child table b contains data and message .
    both are linked with id column. how can i pick the latest message from b against id . how can we make fastest sql.
    I tried with subquries but it is taking time and working slow.
    When i checking the cost of the sql in plan it is showing more than which i am expecting
    Edited by: SA123 on Jun 22, 2009 3:22 PM

    Old Structure output
    PLAN_TABLE_OUTPUT                                   
    | 0 | SELECT STATEMENT | | 194 | 149K|                                   
    591 (7)| 00:00:08 |                                   
    | 1 | SORT ORDER BY | | 194 | 149K|                                   
    591 (7)| 00:00:08 |                                   
    |* 2 | HASH JOIN | | 194 | 149K|                                   
    590 (7)| 00:00:08 |                                   
    |* 3 | HASH JOIN RIGHT OUTER | | 192 | 142K|                                   
    504 (8)| 00:00:07 |                                   
    PLAN_TABLE_OUTPUT                                   
    | 4 | VIEW | | 5 | 2535 |                                   
    288 (4)| 00:00:04 |                                   
    |* 5 | FILTER | | | |                                   
    | |                                   
    | 6 | HASH GROUP BY | | 5 | 570 |                                   
    288 (4)| 00:00:04 |                                   
    |* 7 | HASH JOIN | | 32116 | 3575K|                                   
    PLAN_TABLE_OUTPUT                                   
    283 (2)| 00:00:04 |                                   
    | 8 | TABLE ACCESS FULL | b | 31837 | 373K|                                   
    141 (2)| 00:00:02 |                                   
    | 9 | TABLE ACCESS FULL | b | 31837 | 3171K|                                   
    141 (2)| 00:00:02 |                                   
    | 10 | NESTED LOOPS | | 192 | 48768 |                                   
    216 (13)| 00:00:03 |          
    New Structure
    PLAN_TABLE_OUTPUT
    | 0 | SELECT STATEMENT | | 196 | 152K|
    | 1108 (4)| 00:00:14 |
    | 1 | SORT ORDER BY | | 196 | 152K|
    | 1108 (4)| 00:00:14 |
    |* 2 | HASH JOIN | | 196 | 152K|
    | 1107 (4)| 00:00:14 |
    |* 3 | HASH JOIN | | 193 | 145K|
    | 1021 (4)| 00:00:13 |
    PLAN_TABLE_OUTPUT
    | 4 | NESTED LOOPS | | 192 | 48192 |
    | 216 (13)| 00:00:03 |
    |* 5 | HASH JOIN | | 3832 | 419K|
    | 206 (11)| 00:00:03 |

  • Parent - child table issue wrt to count - SQL question

    I have a scenario:
    There are 2 tables (parent and child). lets say, case summary table and task level dimension table.
    for every case id in case summary table, there would be multiple tasks in task level dim table with a flag indicator set to 1 for all tasks.
    but while counting the number of cases active with flag indicator 1 (ofcourse when joining case summary table with task dimension table), for a case id only 1 instance of task needs to be accounted (even though it has more than one task , for counting active cases, the flag ind corresponding to a task in a case if set to 1 , then the case is considered active)..but while joining and taking count of case ids with flag indicator as 1, you get the count of every task row of a case which is incorrect logically. how to discard the rest of child records of a case in child table (task dimension table)?
    I am not sure how to achieve this in sql query
    Kindly help!
    Case summary table
    case id, busininess_unit, agent_name
    1001, admin, Ram
    1002, Finance, Sam
    task table
    case id, task_id,task_name, flag_indicator
    1001, 1, 'New', 1
    1001,2, 'Open',1
    1001,3,'In progress',1
    1002, 4, 'New', 1
    (In fact task_id is not a big deal... even you can assume task id doesn't exist..only task name ... )
    now my question... if my query should get the current active cases (ind=1); as per above it should essentially give 2... but my query gives me 4..you know the reason why.. but how do i get the correct count?
    Thanks!

    may be you need just this:
    select count(distinct case_id) from task
    where indicator = 1;
    If this is not what you are looking for, please elaborate and tell us the expected output and rest of the details as mentioned in FAQ Re: 2. How do I ask a question on the forums?:

  • Child table data Recon is not happening

    Hi All,
    I have a requirement to create a custom scheduler in OIM11g, to generate recon events.
    -I have one parent field - which is 'required' in the RO recon mapping
    - Rest 5 fileds are together as one in a child table and again mentioned in RO recon field mappings
    While I am able to generate the recon event, but have not been able to pass the child table data/rows, as together, to the child table data in the recon.
    *********Also I am able to pass child data and generate an event, if I create 5 child tables- one for each field linked to the parent form by using the following methods:
    reconciliationOperationsIntf.createReconciliationEvent(resObjName, usrAttributes,false);
    reconciliationOperationsIntf.addMultiAttributeData()
    reconciliationOperationsIntf.providingAllMultiAttributeData()
    ******However my requirement is to have only one child table- with all the 5 fields as rows in that only one child table (whose recon data then should come in recon event).
    ******I am getting the following error frequently when I am trying to do solve this issue, by using reconciliationOperationsIntf methods
    "Oim Child Table Name is null based on child mapping <fieldname> "
    Kindly tell what approach should be taken to solve this issue. Any general code for the same, posted will be a great help.
    Also tell me if the above issue is some configuration issue with recon mappings or something else.
    Regards

    Hi Suren,
    I am creating recon profile whenever I am doing configuration changes .
    I have mapped the child table--- inside RO-> Object Reconciliation mapping--> Add Field
    I am giving any name to this field, and type as 'multi valued attribute'
    Under this above created field , I have then added the 5 fields of Child table.
    Created recon profile.
    It is still giving the same error as- " oracle.iam.reconciliation.exception.ReconciliationException: Oim Child Table Name is null based on child mapping <Field 1 of the 5 fields>l "
    on encoutering this---
    reconAPI.addMultiAttributeData(eventkey, <Field 1 of the 5 fields>, map)

  • OIM 11g DBAT connector - trusted reconciliation for user roles

    Hi,
    We have a database table containing a bunch of user records, and a table with a foreign key that contains all the associations user-group. We would like to do trusted reconciliation from those two tables into OIM. I already did that for target reconciliation but now I am having a look at the DBAT connector docs, and I have found this:
    "Child Table/View Names
    If you want to use the connector for trusted source reconciliation, then do not enter a
    value. If you want to use the connector for target resource reconciliation and if user data is
    spread across parent and child tables, then enter a comma-separated list of child table
    names."
    Does this mean that role membership trusted reconciliation is not supported by the DBAT connector?
    thanks in advance

    DBAT connector does not support trusted source with child data.
    But that does not mean you cannot configure user table as trusted source.
    What is it that you want to do with child table ?

  • Reconcile user data in child tables in OIM

    Hello,
    I have a Oracle Table (i.e. Employee) contains employee records. An employee has a multiple department IDs and its details and this is stored as different records in the source table. For example in the below table there are two different entries for a employee "E1" due to two DEPT_ID (D1, D2).
    Example: Sample Oracle Table: Employee
    EMP_ID EMP_NAME      DEPT_ID DEPT_NAME           Contact
    E1 Steve      D1      ADMIN           C1
    E1      Steve           D2      HR           C1
    Now the problem is that, I would like to perform trusted reconciliation on such table in OIM. While performing reconciliation I wanted to store DEPT information as child table of a employee record, since OIM user table schema cannot contain multi-valued attributes. I am not able to figure out how to achieve this. I am using Database Application Table Connector. The OOTB GTC 9.1 connector does not seem to have any functionality with respect to reconciling data in child tables in OIM. What would be the best way to go about doing this? Will I have to write a new GTC?
    Any help would be greatly appreciated!
    Regards,
    Hardew

    Hi,
    I'm afraid GTC cannot be configured to reconcile Organizations. I think you'll need to build custom task wich querys your Departments table and creates the Organizations throug APIs (using the "*tcOrganizationOperationsIntf*" interface you can manage Organizations).
    Also, the OOTB GTC wont let you assing more than one Organization in your trusted GTC, so probably you'll need to code an algorithm in the Scheduled Task (using APIs too) that querys your User-Departments table and does the appropiate Organization assignations.
    To be honest I've never done this before, but It seems to be a quite compicated development if you want to ensure that all the possible issues are solved in the code.

  • Problem with Master and Child table

    Hi,
    Working in jdev 11.1.1.2.0. I have one strange issue. i have master and child tables, the model is working fine with the view link. but when drag drop the same into my jsff. when i query the result 1st time 2 tables are refershing properly and data is coming. but the when i trying to select another row in the 1st table my 2nd table(child table) is not refreshing.
    i put partial trigger of the 2nd table as 1st table id.
    can any one help wht is issue here.
    Edited by: user5802014 on Jul 15, 2010 3:44 PM

    Check this post might help you
    http://baigsorcl.blogspot.com/2010/03/creating-master-detail-form-in-adf.html

  • View cluster table child table calling problem!

    Hi All,
    I have created a cluster table with one table as header and one as item...
    Header table : ZRAJ1
    ITEM TABLE : ZRAJ2
    ZRAJ1 :
    ZPRODUCT
    ZPROD_DESC
    ZSTATUS
    ZUSER
    ZRAJ2:
    ZPRODUCT
    ZLABEL
    This clearly shows that zraj2 is depending on ZRAJ1.
    Created a cluster with these two tables.
    Also, created events for ZRAJ1.
    EVENT 05:
    FORM create_entry.
      yraj1-zuser = sy-uname.
    ENDFORM.
    EVENT 02:
    FORM after_save.
      IF yraj1-zstatus = 'L'.
        CALL TRANSACTION 'ZRAJ_VIEW'.
      ENDIF.
    ENDFORM.
    If the Zstatus is "L" in ZRAJ1, a new transaction will be called to maintain the child table zraj2.
    Trasnaction 'ZRAJ_VIEW'.
    REPORT 'ZRAJ_VIEW'.
    INITIALIZATION.
    *declaration:
      DATA : itab LIKE vimsellist OCCURS 0 WITH HEADER LINE.
    START-OF-SELECTION.
    *To call the MAintanence screen directly through the program:
      CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
        EXPORTING
          action                               = 'S'
      CORR_NUMBER                          = ' '
      GENERATE_MAINT_TOOL_IF_MISSING       = ' '
      SHOW_SELECTION_POPUP                 = ' '
          view_name                            = 'YRAJ2'
      NO_WARNING_FOR_CLIENTINDEP           = ' '
      RFC_DESTINATION_FOR_UPGRADE          = ' '
      CLIENT_FOR_UPGRADE                   = ' '
      VARIANT_FOR_SELECTION                = ' '
      COMPLEX_SELCONDS_USED                = ' '
       TABLES
          dba_sellist                          = itab
      EXCL_CUA_FUNCT                       =
    EXCEPTIONS
      CLIENT_REFERENCE                     = 1
      FOREIGN_LOCK                         = 2
      INVALID_ACTION                       = 3
      NO_CLIENTINDEPENDENT_AUTH            = 4
      NO_DATABASE_FUNCTION                 = 5
      NO_EDITOR_FUNCTION                   = 6
      NO_SHOW_AUTH                         = 7
      NO_TVDIR_ENTRY                       = 8
      NO_UPD_AUTH                          = 9
      ONLY_SHOW_ALLOWED                    = 10
      SYSTEM_FAILURE                       = 11
      UNKNOWN_FIELD_IN_DBA_SELLIST         = 12
      VIEW_NOT_FOUND                       = 13
      OTHERS                               = 14
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    it is calling, ok no issues but it is not allowing me to create a new entry in the child table zraj2.
    Error: Table is locked by the user Raj.Checked in SM12 yes there is an lock entry for the table zrst(cluster),  zraj1, zraj2.
    Question :
    By default in the execution of cluster will there be a lock in all the child table as well.
    if so how to create new entries....
    For your information : Standalone it is working fine.That is if i execute ZRAJ1 in SM31 i am able to create new entries..
    Can any one provide some input on this............
    Tahnks,
    raj.

    I don't know any direct transaction for your purpose, but you can use this program RSTXSCRP to download your form into the local file and than you can open it to view.
    Regards,
    Naimesh Patel

  • Inserting a new row in a child table referencing an already existing parent

    I have two tables PARENT & CHILD (one to many), both of which are populated at different times.
    In our toplink mappings, parent contains a collection of child Domain Objects, & and child Domain object contains a one - one to parent.
    How can I insert a new row in a child table with reference to an already existing row in parent?
    When I fetch the parent Domain object and try to set it in the child Domain Object and use the unitOfWork.registerObject() it goes into a circular loop of selecting from 2 other tables.
    Please suggest.

    Odd, have you disabled caching and indirection? (NoIdentityMap, dontUseIndirection, or alwaysRefresh/disableCacheHits). If so, then this could be the issue.
    Otherwise please include the sample code you use to perform this, and verify that you do not have any unusual code in your set/get methods or in descriptor events. Also turn TopLink logging on and include a sample. Also ensure that you do not modify your objects until after registering them in the unit of work, and only modify the unit of work clones.

  • Commit Rollback for Parent & Child table

    Hi,
    I need to load data to a parent table and child table (Record by Record), i.e one record will be loaded to the parent table and the related child record will be loaded to child table.
    After first record loaded to child table, the next record will be loaded to the parent table.
    My requirement is, I should not commit the parent table before the child record is transferred (so that i can rollback if my record got failed). So I have set the parent table IKM commit option to NO. Because of this, my child record is not loaded to the correcsponding target table, its failed because the parent record is not commited.
    Do we have any possiblities to overcome this issue.
    Thanks in Advance,
    Ram Mohan T

    Cezar,
    I couldn't make the CKM options to "No Commit". When i did that i am getting the following error at step "16 - Control - CUSTOMER_DET - insert PK errors" ,
    12838 : 72000 : java.sql.SQLException: ORA-12838: cannot read/modify an object after modifying it in parallel.
    This error occurs at the CKM. so i have made all the CKM options to "commit" and IKM, LKM to "No Commit". It seems to be fine.
    Cezar,
    I have some plan for the scenario that i mentioned in the previous update (One dept id and all related employees). Please verify this,
    1) create a procedure which extracts dept_id from source tab and passes it to the scenario(in target tab) of a package.
    2) This package has the variable of dept_id, interface1 which loads data to dept and following that another procedure(2).
    3) This procedure2 will extract the emp_id that corresponds to the value of the variable dept_id. And passes this emp_id to tha scenario in target tab.
    4) This scenario is of a package which has the emp_id variable and interface2 for loading employees.
    While executing this plan, the problem is,
    1) Interface1 which loads Dept_Id is not commited (due to the KMs with commit set to "No Commit"), so that the employee records are getting loaded to the error table.
    2) I have made the interface1 KM commit option to "Default: Yes " (But still the Knowledge modules steps are No commit), but still the child records are getting loaded to error table.
    3) As per the above scenario, all these transforamtions are not taking in the same transaction. Thats the problem i believe.
    Do we have any possiblities to overcome this Cezar?
    Thanks in Advance,
    Ram Mohan T
    Edited by: T. Ram Mohan on Mar 5, 2009 11:43 AM

  • Update column data to Upper Case in parent and child table

    Hi ,
    I am facing issue while updating column value to upper case in parent table and child table. How can i do that ?
    when updating parent row:
    ORA-02292: integrity constraint (XXXXXXXXXXXXXX_FK) violated - child record found
    When updatng corresponding child row:
    ORA-02291: integrity constraint (XXXXXXXXXXXXXXXX_FK) violated - parent key not found
    how can i update on both the places ?
    Regards,
    AA

    I am facing issue while updating column value to upper case in parent table and child table. How can i do that ?
    Why do you need to do that?
    That is just ONE of several questions you should answer before you start modifying your data.
    1. What is your 4 digit Oracle version? (result of SELECT * FROM V$VERSION)
    2. If both values are the same case what difference does it make what that case is?hen you don't need to alter your original data.
    3. What is the source of the column values you are using now? If you change your data to upper case it will no longer be identical to the source data.
    4. What is your plan for enforcing future values to be stored in UPPER case? Are you going to use a trigger? Have you written and tested such a trigger to see if it will even work the way you expect?
    5. Why aren't you using a surrogate key instead of a 'business' data item? You have just demonstrated one reason why surrogate keys can be useful: their actual value is NOT important.
    You should reexamine your problem and architecture and consider other alternatives.
    One alternative is to add a new 'surrogate key' column to use as the primary key. Just create a new sequence and use a trigger to populate the new column. Your current plans will require a trigger to perform the case conversion so instead of the just use the trigger to provide the value.
    If the change is being done to facilitate searching you could just add a VIRTUAL column UPPER_MY_COLUMN and index that instead. Then you could search on that new virtual column and the data values would still be identical to the original data source.

  • Insert data Flatfile table to Parent and child tables

    Hi All,
        I have Flatfile table which is we getting from daily txt files and i want to populate flatfile data to parent as well as child tables. parent table has primary key as ID. This ID is foreign key of child tables. 
    Here i have mentioned our process.
    1. Flatfile duplicates has to remove with condition of daily date.
    2. Before Insert parent table have to check duplicate(we have Unique key of 4 columns in parent) if duplicate is there we have to delete duplicate then Insert into parent table unique records(Primary key is ID).(here why we are delete duplicate record meaning
    we getting daily files so if any records updated in future that record should be insert to parent and child table so only we delete old records and insert new records).
    3.After insert parent we have to populate child tables from Flatfile table as well as we have to insert parent table primary key as foreign key of child tables.
    4. if any truncation error occurs that errors should go to error log table.
    Right now we are using cursor for this concept and cursor has performance issue. so we are trying to optimize other way to populate parent and child table to increase performance to populate.
    Please help us to which way to do this process increase of performance .
    Please  can any one reply.

    Hi RajVasu,
    Since this issue is related to Transact-SQL, I will move this thread to Transact-SQL forum. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated. 
    Thank you for your understanding and support.
    Regards,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

Maybe you are looking for