Unlicenced Options in OWB- target load ordering & variables in workflows

In need to perform overall repository check-up , to see if unlicenced "features" : Target Load Order and Variables in Workflows have been used in Mappings.
Ideally, I would just like to wirte a query, to "comb" the repository and find the offending Mappings and Workflows.
The problem is : I don't know which tables to query - the view structure in Repository is pretty complex. The view ALL_IV_OBJECT_CONFIGURATIONS seemed like a good starting point for detecting usage of target load ordering but I kept getting ORA-22835(since there are CLOBS in underlaying tables) and couldnt get rid of that , since there are 10 levels of sub-views underneath-so I lost track and am not sure which column refers to CLOB any more..
Can anybody help me ? Is there a way at all to retrieve this kind of information from the repository ?
Edited by: Reggy on 01.09.2010 03:13
Edited by: Reggy on 01.09.2010 03:14
Edited by: Reggy on 01.09.2010 03:15

Reggy,
for list of used variables in processflow use ALL_IV_PROCESS_VARIABLES OWB public view.
Regarding Target Load Order - maybe using ONLY configuration property Target Load Ordering is not the base case because this flag enabled by default for new mapping. You need to perform additional check - that mapping contains more then one target table.
I cannot help with ALL_IV_OBJECT_CONFIGURATIONS view (ORA-22835, on OWB 10.2.0.3 have same error), instead try OMB*Plus script like this
OMBCC '/PROJ/TARGET_MODULE'
set mapList [OMBLIST MAPPINGS]
foreach mapName $mapList {
  # it is a configuration property Use Target Load Ordering
  set targetOrderFlag [OMBRETRIEVE MAPPING '$mapName' GET PROPERTIES(TARGET_LOAD_ORDERING)]
  # it is coma separated list of target tables
  set targetTabList [OMBRETRIEVE MAPPING '$mapName' GET PROPERTIES(TARGET_LOAD_ORDER)]
  # check that targetTabList contains more than one tables
}Regrads,
Oleg

Similar Messages

  • Target Load Order is not working

    I work with OWB 10gR2.
    A have mapping with 2 target tables (say A and B). Table A needs to be filled before table B. How can I achieve this?
    I have put 1 in "Target Load Order" property of table A and 2 in "Target Load Order" property of table B but this does not have the expected effect.
    Anyone hase experience with this.

    Hi,
    look at the documentation:
    When you design a PL/SQL mapping with multiple targets, Warehouse Builder calculates a default ordering for loading the targets. If you define foreign key relationships between targets, Warehouse Builder creates a default order that loads the parent and then the child. If you do not create foreign key relationships or if a target table has a recursive relationship, Warehouse Builder assigns a random ordering as the default.
    You can override the default load ordering by setting the Target Load Order property. If you make a mistake when reordering the targets, you can restore the default ordering by selecting the Reset to Default option.
    To specify the loading order for multiple targets:
    Click on whitespace in the mapping canvas to view the mapping properties in the Property Window in the upper right corner.
    Go to the Map Targets Load Order property and click the Ellipses button on the right side.
    Warehouse Builder displays the Map targets load order dialog.
    To change the loading order, select a target and use the shuttle buttons on the right to move the target up or down on the list.
    Regards
    Detlef

  • Adding pre-mapping process breaks target load order

    OWB 11.2.0.2 on Oracle database 11.2.0.2
    I created a mapping that has 4 sources (views on external tables) and 4 targets (3 regular tables).
    V1 => T1 (truncate/insert)
    V2 => T2 (truncate/insert)
    V3 => T3 (truncate/insert)
    V4 => T3 (update/insert)
    The above is the target load order. It tested fine.
    I added a pre-mapping process (packaged procedure) that is unrelated to any of these source/target tables, but just exits or raises a failure to control whether the mapping should continue to run or not.
    When I run it, the selected/inserted/merged counts are identical, but from what I'm seeing in T3 is that the order was update/insert followed by truncate/insert. I verified that the target load order remained the same.
    Has anyone else run into this problem?

    Hi,
    For OWB 11.2.0.2 the target load order property will set to 'False' by default.
    If this is the case you can not guarantee that the targets will be loaded in the order specified. It should be set to 'true'
    Right click on your map and select configure -> Code generation Properties -> Use target load ordering set it to true.
    Please note that you should have ODI EE licence and you must have installed OWB with Enterprise opton to set this property.
    Regards,
    Pnreddy

  • Target load order within dimension operator

    Hi there,
    We are having the following situation, a dimension which has two roles assigned to it is populated via a simple mapping, basically loaded from one staging table.
    It only seems to work when the table which has foreign keys against this table have these fks disabled. If they are not disabled, it is writing all records to the dimension. Is this a known bug?
    Why is this the case? I can see within the mapping a part which talks about target load order on the dimension operator and that this is determined by the fk relationships.
    We could manually configure this target load order but only 1 physical table being populated and the target load order looks to give alot of oracle tables implenetde by owb itself.
    Any advice much appreciated.
    Many Thanks

    Hi,
    You need to unlock the application using the HspUnlock application utility :- http://download.oracle.com/docs/cd/E12825_01/epm.111/hp_admin/ch04s02.html
    I would also advise using an agent and not the local agent if you are doing so.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Target Load Ordering

    Hi,
    if target load ordering is not used (because we do not have the enterprise etl license), what happens if I load data from table A into table B and then from the same table operator B into table C?
    Can I be sure that table B is always loaded first?
    Regards,
    Carsten.

    If You create a queue table A -> table B -> table C You can be sure that B is populated before the data is transferred to C, even if You are not using Enterprise ETL.
    If You create a mapping table A -> table B and table A -> table C then it is not so easy to identify, which table is populated first table A or table C. As far as I know, OWB uses the sequence in which the table operators where dragged into the mapping as a default load order. A "random" approach can not be used, as PL/SQL does not support any random execution in a package ...

  • Target Load order is not working properly in 11.2.0.2

    Hi,
    Mappings whihc are migrated from OWB10.2 version to 11.2 which contains multiple targets are not working in accordance with the target load order given in the mapping.
    The order in which targets are loaded changes between execution.
    To test is this a problem with migration we had created a smaple mapping containg 3 targets and mentioned loading order in each target table as well as in mapping property.
    The order in which the targets are loaded was random. But when we have 2 targets it seems to be working. But for migrated maps this is also not working.
    Is there any bug reported in 11.2.0.2 for this issue? Any help is highly appreciated.
    Thanks and Regards,
    Pnreddy

    Target load ordering is set to false by default in 11.2.
    You need to set it to true if you want your mapping to use it.

  • Target Load Order Bug?

    Version:  12c
    I've set the Target Load Order to:
    T1,T2,T3
    But it always generates the jobs as:
    Load T3 - IKM Oracle Merge
    Load T1_T2 - Unknown KM (this is actually IKM Oracle Multi-Insert.GLOBAL)
    Please help!!!

    There is a workaround, but it requires some work on the physical tab.  You have to drag the items around so that you end up with two targets.  The first target loads the multi-insert to T1 and T2 and the second target loads T3.  They should default to run serially, which is what is needed.  Do not run in parallel.  I had trouble with the icons in the upper left of the execution units (blue boxes) updating.  Switching to logical view and back should fix them.

  • VLD-1137 Target Load Ordering foreign keyrelationships mapping flowconflict

    Hi,
    I face a error when validating the mapping under the following condition.
    Error while validating a mapping after adding foreign key relationship on the table (for the second time. For example a table named journal had a foreign key on the same table (like jou_pk, now I have included one more foreign key to refer the journal table as jou1_fk.
    When used in the mapping this is the only target table, but it is used in the Key Lookup to populate the foreign key column on journal.
    Error Reported while validating / generating the mapping:
    VLD-1137 Target Load Ordering foreign key relationships and mapping flow conflict
    Please help in avoiding this error.
    Thanks,
    Leo.

    Hi,
    how did you solve this....?
    i am also getting this error message
    Thanks

  • Truncate table load order broken

    Hi,
    I have a mapping where two tables are truncate/insert. I need one to be truncate/insert at the start, and the other later in the mapping. Using the Target Load Order feature, I order my targets so that this happens.
    However, when the code is generated - for both set and row-based - , I get this:
    Initialize("P_JOB_RUN_ID", "P_PROCESS_AUDIT_ID",
    p_env);
    -- Initialize all batch status variables
    "FACT_SIO_PROC_RJCT_RESET_T_St" := FALSE;
    "FACT_SIO_St" := FALSE;
    "FACT_SIO_RJCT_St" := FALSE;
    IF get_trigger_success THEN
    Truncate_Targets;
    ...and Truncate_Targets contains statements that will truncate both tables.
    If Initialize succeeds both tables are truncated ignoring the Target Load Order.
    Is it possible to use Target Load Order with truncate/insert?
    Cheers
    Steve

    Hi,
    as an alternative you can use DELETE/INSERT instead of TRUNCATE/INSERT. This empties the corresponding table immediately before inserting. Of course, this is only recommendable if the expected count of rows to delete doesn't exceed some 10.000, since DELETE is hard work for the RDBMS compared to TRUNCATE.
    regards
    Thomas

  • Load Order in a mapping

    any one has done a SINGLE MAPPING WITH multiple SOURCE TO multiple target
    like      source a TO target a
         source b TO target b
         source c TO target c
    in an order, which is first a should be feeded, THEN b and so ON...
    we have load order in Paris to resolve this, I'd like to know is there ANY way we can do it with 10GR1

    I dont think there is anything like load order in 10gR1 but when i had similer problem we sorted that out with use of process flow by spliiting the mappings.
    If you know a better way out then do let me know.
    I have come across a previous thread in the forum on the same issue which says that we can not control load control WITHIN the mapping and OWB decided it by default in the order in which objects are drppoed on canvas!!!!!!!!!!!!!!

  • Wb_rt_api_exec in pl/sql as OWB target

    I've got a question similar to the one posted by Donna Kelley on 26-mar-2007 (
    Re: 10gR2: How do you run OWB from Enterprise Manager (OEM) and Scheduler?
    I'm unable to figure out the grants needed to execute wb_rt_api_exec.run_task within a pl/sql procedure when the procedure is being run by the OWB target user.
    We just upgraded OWB in devo from 10.1.0.4 to 10.2.0.1.31. In the earlier version, there was no problem with the target user executing wb_rt_api_exec (although we used open, execute, close instead of run_task). The runtime repository owner granted execute on wb_rt_api_exec to the target schema. And then the 2 roles wb_r_owbruntime and wb_u_owbruntime were also granted to target. That's all it required.
    In the new version, I can execute wb_rt_api_exec only as the design repository owner. I've granted the target user execute on wb_rt_api_exec. Also granted the 2 roles owb_d_owbowner and owb_o_owbowner roles to the target user (see sqlplus_exec_template.sql). But within a pl/sql procedure with the procedure run as the target user, the return code is 3 (failure). I can also not run sqlplus_exec_template as the target user. But I can run it successfully as the design repository owner.
    This seems strange. We're running ETL mappings to populate target tables. It should be easy to run the pl/sql procedure as the target user. I don't want to run it as the repository owner because that would involve a bunch of grants on target tables. Seems silly.
    I'd welcome any thoughts and advice.
    Many thanks.
    Gary

    First, David, thanks very much for your help. Based on your example, what I'm trying to do should work.
    Below is a very simplified example that demonstrates the problem. Note that executing the procedure as the target user produces an error (ie, the return value is 3) while executing it as the design repository owner succeeds.
    Comments and advice are welcomed from all. I very well could be missing something obvious. Thanks to all.
    devo> @who
    OWBTARGET
    devo> start t1
    devo> create procedure t1 authid current_user as
    2      sql_stmt varchar2(50) := 'set role owb_d_owbdesign, owb_o_owbdesign';
    3 begin
    4      execute immediate sql_stmt;
    5      dbms_output.put_line(to_char(owbdesign.wb_rt_api_exec.run_task(
    6      'RPTDEVO_LOC', 'PLSQLMAP', 'TERM_TO_DMS_CURR', ',', ',', 0, 0)));
    7 end;
    8 /
    Procedure created.
    devo> grant execute on t1 to owbdesign;
    Grant succeeded.
    devo> exec t1
    Stage 1: Decoding Parameters
    | location_name=RPTDEVO_LOC
    | task_type=PLSQLMAP
    | task_name=TERM_TO_DMS_CURR
    Stage 2: Opening Task
    | l_audit_execution_id=5390
    Stage 3: Overriding Parameters
    Stage 4: Executing Task
    | l_audit_result=3 (FAILURE)
    Stage 5: Closing Task
    Stage 6: Processing Result
    | exit=3
    3
    PL/SQL procedure successfully completed.
    devo> @check_role_privs owbtarget
    devo> select grantee "grantee",
    2      granted_role "role",
    3      admin_option "option"
    4 from dba_role_privs
    5 where grantee = upper('&1')
    6 order by 2
    7 ;
    admin
    grantee role option
    OWBTARGET AQ_USER_ROLE NO
    CONNECT NO
    OLAP_USER NO
    OWBR_OWBDESIGN NO
    OWB_D_OWBDESIGN NO
    OWB_OWBDESIGN NO
    OWB_O_OWBDESIGN NO
    RESOURCE NO
    SELECT_CATALOG_ROLE NO
    9 rows selected.
    devo> connect owbdesign
    Connected.
    devo> @who
    OWBDESIGN
    devo> exec owbtarget.t1
    Stage 1: Decoding Parameters
    | location_name=RPTDEVO_LOC
    | task_type=PLSQLMAP
    | task_name=TERM_TO_DMS_CURR
    Stage 2: Opening Task
    | l_audit_execution_id=5400
    Stage 3: Overriding Parameters
    Stage 4: Executing Task
    | l_audit_result=1 (SUCCESS)
    Stage 5: Closing Task
    Stage 6: Processing Result
    | exit=1
    1
    PL/SQL procedure successfully completed.

  • How can I control del Target Load plan in a mapping?

    Hi,I have a mapping (attachment) that does inserts and updates to the same table in 3 different situations. It is a simple mapping that inserts new rows or update one that already exists, but also keeps the instance before update. If one record already exists it inserts a new instance of that record and updates the old one with the modification date.But i'm having an issue because of the order in wich each target is loaded. I know i can make 3 independent pipelines and then use the target load plan but y want to avoid reading the source more than one tiem.Regards, Matías.

    kglad, thank you very much for taking a look.
    Perhaps it would be better to view the entire site here:
    http://www.katodesignstudio.net/linda/index.html
    On the News page, I'd like to have a button that will load
    the Screening page (screening.swf) where the News page is loaded.
    At the link above, the button has been removed until I can find a
    solution but it would be located where the "see screening page for
    details" text is now.
    As you can see by going to any other page, all of the pages
    in the site load into a container clip. From what I can tell so
    far, I need the button to unload the News.swf from the container
    clip and load the Screening.swf into that same container clip,
    similar to what the top Nav menu is doing. The trick seems to be to
    get the button to unload the swf that the button is located in...
    How can this be done?
    thanks again for your help!

  • ODI 11g, Issue with Load plan variable in CASE WHEN STEP

    Hi,
    I am trying to retrieve value of the current context using the following code in refreshing variable:
    Variable name: Context
    Refreshing Code: select  '<%=odiRef.getContext( "CTX_Name" )%>'  from dual
    The variable is returning correct results when I refresh / Call it as part of Run Scenario step.
    Requirement: I want to use the variable Context in CASE step, depending on the value it results I want to execute a selective set of scenarios. I have defined case when steps per the requirements.
    Issue: The behavior of the variable is not as expected when used in CASE WHEN step. Load plan execution always triggers only ELSE part of CASE WHEN step.
    I have tried force refresh option in CASE STEP on the variable Context.
    Need your help and advice on how to fix the issue.
    Thank you,
    Bharani

    HI Bharani,
    Below link may helps you about load plan in ODI
    Help on Load Plan Execution
    Regards,
    Phanikanth

  • Option key is out of order when I want to select a boot disk

    I've upgraded the OsX10.6.8.
    after then, I can't boot by Bootcamp any more, because the Option key is out of order. I've tried it over 10 times. What's wrong?

    Reinstall OS X without erasing the drive
    Do the following:
    1. Repair the Hard Drive and Permissions
    Boot from your Snow Leopard Installer disc. After the installer loads select your language and click on the Continue button. When the menu bar appears select Disk Utility from the Utilities menu. After DU loads select your hard drive entry (mfgr.'s ID and drive size) from the the left side list.  In the DU status area you will see an entry for the S.M.A.R.T. status of the hard drive.  If it does not say "Verified" then the hard drive is failing or failed. (SMART status is not reported on external Firewire or USB drives.) If the drive is "Verified" then select your OS X volume from the list on the left (sub-entry below the drive entry,) click on the First Aid tab, then click on the Repair Disk button. If DU reports any errors that have been fixed, then re-run Repair Disk until no errors are reported. If no errors are reported click on the Repair Permissions button. Wait until the operation completes, then quit DU and return to the installer.
    If DU reports errors it cannot fix, then you will need Disk Warrior and/or Tech Tool Pro to repair the drive. If you don't have either of them or if neither of them can fix the drive, then you will need to reformat the drive and reinstall OS X.
    2. Reinstall Snow Leopard
    If the drive is OK then quit DU and return to the installer.  Proceed with reinstalling OS X.  Note that the Snow Leopard installer will not erase your drive or disturb your files.  After installing a fresh copy of OS X the installer will move your Home folder, third-party applications, support items, and network preferences into the newly installed system.

  • SQL*LOADER(8I) VARIABLE SIZE FIELD를 여러 TABLE에 LOAD하기 (FILLER)

    제품 : ORACLE SERVER
    작성날짜 : 2004-10-29
    ==================================================================
    SQL*LOADER(8I) VARIABLE SIZE FIELD를 여러 TABLE에 LOAD하기 (FILLER)
    ==================================================================
    PURPOSE
    SQL*LOADER 에서 variable length record와 variable size field를 가진 data
    file 을 여러 table에 load하는 방법을 소개하고자 한다.
    ( 8i new feature인 FILLER 절 사용)
    Explanation
    SQL*LOADER SYNTAX
    여러 table에 load하고자 할때에는 control file에 아래와 같이 하면 된다.
    INTO TABLE emp
    INTO TABLE emp1
    fixed length field을 가진 data file을 여러 table에 같은 data을 load하고자
    한다면 아래와 같다.
    INTO TABLE emp
    (empno POSITION(1:4) INTEGER EXTERNAL,
    INTO TABLE emp1
    (empno POSITION(1:4) INTEGER EXTERNAL,
    위와 같이 양쪽 table의 empno field에 각각의 load할 data로부터 1-4까지를
    load 할수 있다. 그러나 field의 길이가 가변적이라면 위와 같이 POSITION 절을
    각 field에 사용할 수 없다.
    Example
    예제 1>
    create table one (
    field_1 varchar2(20),
    field_2 varchar2(20),
    empno varchar(10) );
    create table two (
    field_3 varchar2(20),
    empno varchar(10) );
    load할 record가 comma로 나누어지며 길이가 가변적이라고 가정하자.
    << data.txt >> - load할 data file
    "this is field 1","this is field 2",12345678,"this is field 4"
    << test.ctl >> - control file
    load data infile 'data.txt'
    discardfile 'discard.txt'
    into table one
    replace
    fields terminated by ","
    optionally enclosed by '"' (
    field_1,
    field_2,
    empno )
    into table two
    replace
    fields terminated by ","
    optionally enclosed by '"' (
    field_3,
    dummy1 filler position(1),
    dummy2 filler,
    empno )
    dummy1 field는 filler로 선언되었다. filler로 선언하면 table에 load하지 않는다.
    two라는 table에는 dummy1이라는 field는 없으며 position(1)은 current record의
    처음부터 시작해서 첫번째 field을 dummy1 filler item에 load한다는 것을 말한다.
    그리고 두번째 field을 dummy2 filler item에 load한다. 세번째 field인, one이라는
    table에 load되었던 employee number는 two라는 table에도 load되는 것이다,
    << 실행 >>
    $sqlldr scott/tiger control=test.ctl data=data.txt log=test.log bindsize=300000
    $sqlplus scott/tiger
    SQL> select * from one;
    FIELD_1 FIELD_2 EMPNO
    this is field 1 this is field 2 12345678
    SQL> select * from two;
    FIELD_3 EMPNO
    this is field 4 12345678
    예제 2>
    create table testA (c1 number, c2 varchar2(10), c3 varchar2(10));
    << data1.txt >> - load할 data file
    7782,SALES,CLARK
    7839,MKTG,MILLER
    7934,DEV,JONES
    << test1.ctl >>
    LOAD DATA
    INFILE 'data1.txt'
    INTO TABLE testA
    REPLACE
    FIELDS TERMINATED BY ","
    c1 INTEGER EXTERNAL,
    c2 FILLER CHAR,
    c3 CHAR
    << 실행 >>
    $ sqlldr scott/tiger control=test1.ctl data=data1.txt log=test1.log
    $ sqlplus scott/tiger
    SQL> select * from testA;
    C1 C2 C3
    7782 CLARK
    7839 MILLER
    7934 JONES
    Reference Documents
    <Note:74719.1>

Maybe you are looking for

  • How can I print from my Samsung Galaxy note 8.0 to my HP office jet 6500 a e710n.

    How can I print from my Samsung Galaxy note 8.0 to my HP office jet 6500 a e710n.  I live in the courty and do not have a router and I am using a desktop computer with a Wireless USB Adapter SMCWUSB-N2 installed.

  • Can't get rid of account icon photo in mail header area

    How can I get rid of the thumbnail photo icon in the mail header area when I send an e-mail in Mail? It is one of the supplied icons that is in system preferences for "accounts", to distinguish my account from my wife's on our iMac G5 (10.4.10). I re

  • Adobe:"NO COMPLAINTS PLEASE" Open Letter

    Dear Adobe, Like SO VERY MANY other people, I'm frustrated and angry with you. You make some of the best software, which is why we all tolerate your bad behaviour. Your reluctance to improve only ADDS to our frustration: I've spent the last hour tryi

  • SapScript  'MAIN' Window without 'Text Element'

    Why is it, if we run 'MAIN' Window without defining 'Text Element'(/E), it displays the contents twice.. The same doesn't happens with other 'Variable' windows..

  • Rotation Issue with drawFocus/FocusSkins

    I have run into an issue while trying to rotate a subclass of UIComponent that implements IFocusManagerComponent. The rotation of one focusable component causes all subsequent drawFocus calls to all other focusable components to also rotate. Am I doi