Objects in OWB

The OWB documentation tells you how to 'drive' objects - but is not clarify when to use them - or give examples of how to use
So, can anybody tell me
Why and when would I use:
- a Mapping Input Parameter
- a Mapping Output Parameter
- an External Process object
- a Mapping Sequence
- A Pre Mapping Process and Post Mapping Process
and finally
- a Key Lookup
Sorry if it is long question....
Much obliged
Chris McGill

Hi,
- a Mapping Input Parameter A mapping becomes a PL/SQL package, and mapping input parameters become part of the signature of the MAIN procedure in this package. So if you want to feed information into the package you add a mapping Input parameter to the mapping. This then allows you to funnel information from the outside world into the pl/sql.
- a Mapping Output Parameter This is a similar thing as the input paramter, however this becomes an OUT parameter on the main signature, and can be used to give information to the outside world from the PL/SQL
- an External Process object You can use this to call an external process. For example if you need to launch an OS call from within PL/SQL you will use this external process.
- a Mapping Sequence is a database sequence. In other words it is a number generator which you can use to create surrogate keys while loading data into for example a dimension.
- A Pre Mapping Process and Post Mapping Process The OWB package that holds the mapping consists of the following:
Pre mapping process
exec <your procedure>
Main mapping process
exec mapping diagram in SQL
Post mapping process
exec <your procedure>
As you can see the mapping consists of 3 parts. The pre mapping process runs before you run the actual mapping. The post mapping one runs after the ETL mapping is complete. You can use these entry points to perform any activity just before or just after the mapping runs. An example of a post mapping process could be to truncate a table of data that you just loaded.
and finally
- a Key Lookup If you use surrogate keys in a dimension, you will have to do a key-lookup to determine which original record belongs to the surrogate key. The most common example is when loading a fact table (let's say orders with records that have product and time keys). You do have the product code, but you need to find the product_id (surrogate key). So you do a lookup to the dimension to find the product_id that belongs to the product code. Then insert that number into the fact to form the FK to the dimension.
For more information on surrogate keys I would suggest to read Ralph Kimball's book on data warehousing.
Hope this helps,
Jean-Pierre

Similar Messages

  • Import objects into OWB 10.2.0.4 from Oracle database 11.2

    Hi,
    I am using database version 11.2.0.1.0
    and OWB version 10.2.0.4...
    This owb version in incompatible with the above mentioned database version. I have to import data from this database to this owb repository...
    Can anybody suggest a workaround.
    Be it using database, OMB+ etc...
    Required urgently
    Thanks in advance,
    Rohit

    Hi Suthirtha,
    I tried to implement the dblink, I created a dblikn bw the org source(11.2 schema) to my repository owner(also 11.2 schema)... I copied a few tables to the repository owner schema.
    Now I opened the design center and tried to look into the tables.. but the confusion is I have multiple mprojects and mdules in my design center. Where would I find the the tables i have copied...
    also is there anything i need to do before looking into the design center.. I tried to create a owb location using the dblink, but cant do it coz obth my schema's are in 11.2(not supported by OWB 10.2)
    Please Advice....
    Thanks,
    Rohit

  • Moving Objects in OWB from one instance to another

    Ok - I have been using OWB for years now. What I did was set up my DEV - TEST - PROD as individual projects in one OWB Repository. Now I want to copy and paste a Map for example from DEV to TEST. When I do this I get all the old connection information. What I did to correct this is paste the map in TEST next I do a sync by position for all the tables - then I bring in the table from the TEST (do an OWB Import) now I sync by OUID - this all works fine - except the sync of the Lookups and Functions. I have to recreate the Lookups. Does anyone have a better process? I tried using one Project and then setting different configurations and deploying to multiple Targets but this is not good since I want to have the 3 environments (DEV - TEST - PROD).

    Hi, you can import the OWB schema from dump file, you will must create or set some privilegies to new user on the new database and import the data, you can get more information on the Note:235658.1 on Metalink site.
    Some privilegies are:
    grant execute on sys.dbms_stats to <user>;
    grant create database link to <user>;
    grant create dimension to <user>;
    grant global query rewrite to <user>;
    grant create indextype to <user>;
    grant create procedure to <user>;
    grant create sequence to <user>;
    grant create session to <user>;
    grant alter session to <user>;
    grant create snapshot to <user>;
    grant create synonym to <user>;
    grant create public synonym to <user>;
    grant drop public synonym to <user>;
    grant create table to <user>;
    grant create view to <user>;
    grant unlimited tablespace to <user>;
    grant create trigger to <user>;
    grant execute on dbms_aqadm to <user>;
    grant execute on dbms_aq to <user>;
    grant create any type to <user>;
    grant AQ_USER_ROLE to <user>;
    Also you can use Migration Toolkit to Oracle Warehouse Builder for move that schemas, i never use that utility but you can review the documentation on Oracle Site.
    Luck.
    Have a good day.
    Regards.

  • Variable-like object in OWB

    Hi all,
    I am creating a mapping from which I want to use the values contained in an external file, which looks like follows:
    2701
    2702
    2703
    2704
    I need to compare a field from each record introduced in the mapping and see if it starts with any of the values stated in the external file mentioned above.
    What I did was loading the file in a staging table, and creating a function in which, for every record in the mapping I try to match one of its fields with any of the values in the external file, using a cursor. The problem is, input files have around 50 million subscribers, and with this solution I am fetching the values in the external file 50 million times, and overall performance is hugely affected.
    Is there any way of storing those values stated above in a variable/array/something in order to not to use a cursor to query the database as many times as records the input files have?
    Thanks in advance
    G.
    Edited by: [email protected] on Nov 4, 2009 3:28 PM

    No, the values can vary but there is a maximum of 11 characters.I think the fastest way is to autogenerate "lookup" function before each mapping run,
    the source code of this function should be like
    create or replace function func_lookup(P_FIELD IN VARCHAR2) return VARCHAR2 is
    begin
      if P_FIELD like '2701%' then return '2701';
      elsif P_FIELD like '2702%' then return '2702';
      elsif P_FIELD like '2703%' then return '2703';
      // code for rest rows from from external table
      end if;
      return NULL;
    end;For generating "lookup" function you can use other stored PL/SQL procedure, for example
    create or replace function proc_gen_lookup is
      v_source_code VARCHAR2(32000);
    begin
      v_source_code := 'create or replace function func_lookup(P_FIELD IN VARCHAR2) return VARCHAR2 is begin ';
      for exttab_rec in (select code from your_extrnal_table order by length(code) desc) LOOP
          // ADD correct code for first iteration - genrate IF instead ELSIF
          v_source_code := v_source_code || ' elsif P_FIELD like '''||exttab_rec.code||'%'' then return '''||exttab_rec.code||'''; ';
      END LOOP;
      v_source_code := v_source_code || ' end if; return NULL; end;';
      EXECUTE IMMEDIATE v_source_code;
    end;How many rows in your external table (large number of rows can produce VERY large code for "lookup" procedure which doesn't fit into PL/SQL varchar2 variable)?
    Or you can try rewrite your function (with cursor) to select from index organised table (instead of external table).
    Regards,
    Oleg

  • Problem Running Process Flow When Database Objects Deployed Outside of OWB

    Hi
    I am having a few problems running process flows that I'm deploying through OMB.
    My set up is as follows:
    All database updates are done outside of OWB (for version control purposes).
    Each object within OWB is exported to an MDL file, which is then imported into the production repository using an OMB Script.
    Once everything has been imported into my production version, I'm then deploying the process flows from within the OMB script.
    When I then go to run the process flow, I get the following error ...
    RPE-02075: Oracle Workflow failed to process the execution request for Activity LOAD_COUNTRY_PF:LOAD_COUNTRY. This may be because dependent objects have not yet been deployed.
    I can see through the Control Center, that the status of all the objects that the process flow is going to use are set to having a Design Status of 'New'. So obviously OWB doesn't realize that these objects already exist in the database, which is why the process flow errors.
    Is there any way around this? Can I somehow set the Design Status of all the objects to 'Unchanged' through OMB? Is there a way to fool the process flow into thinking that the objects do exist? Can I run the process flow outside of OWB?
    Any help would be appreciated.
    Thanks
    Liffey

    Hi Liffey,
    Is there any way around this?
    Can I somehow set the Design Status of all the objects to 'Unchanged' through OMB?
    Is there a way to fool the process flow into thinking that the objects do exist?of course you must deploy mappings before deploying processflow
    and as I know there is no legal method for avoiding this.
    Regards,
    Oleg
    PS. Look at this thread [Deploying without Deploy|http://forums.oracle.com/forums/thread.jspa?messageID=2655726&#2655726]
    It seems for OWB10gR1 exists method for manual modification OWB runtime repository tables for mark mappings as deployed

  • Is OWB the Best Tool for Designing Warehouse Tables?

    My current site uses OWB for ETL but mandates the use of TOAD Data Modeller for design and build of the warehouse tables.
    I always thought that OWB could do this task just as well as TOAD, but I'm not very experienced with OWB.
    Can anyone advise?

    You can design table with OWB and deploy to database, but is better create database objects [tables, views ets.] with SQL by DDL script and import this objects to OWB.
    You can define physical properties, keys, constraints, partitions, indexes, grants ets. for one table in one SQL-script.

  • Can I create a DIMENSION object mappign without a Dimension table?

    I understand how I can create a dimension object and it's associated table. However, can I map my enterprise data directly to the dimension object itself and skip the loading of the dimension table? The enterprise data for most of my reporting warehouse for the greater part is fairly simple and requires only joins to some reference data.

    Matthew,
    Like you stated, the dimension object in OWB will generate scripts for two object types. The first is a dimension object and the second is a table. In the dimension object the hierarchical structure(s) (meta data) is stored and the table stores the data. So you always have to load your enterprise data into the table.
    Hope this helps.
    With kind regards,
    Bas Roelands

  • User Defined Object

    Hi,
    I’m trying do create the UDO object in the OWB(paris) and based on this definition generate the PL/SQL code.
    The first step, define and create UDO is clear and works as I expected.
    But the generation step is question for me. I see only one solution to write OMB scripts.
    Are there any other possibilities how to generate code from UDOs?
    Do you have any experience with generation of UDO objects from OWB repository? Any example or suggestion will be very helpful.
    Thank you
    Lad

    Hi Lad
    You can create an expert which is your code generator and add this expert as a shortcut to your UDO instance. Within the expert framework you can get the object the expert was invoked from and generate code from it.
    The OLAP accelerator experts on the exchange generate PLSQL packages that contain AWXML for supporting some OLAP extensions related to forecasting allocation. These are based on core types in OWB plus some user input, but the principles are the same.
    With OMB you use OMBRETRIEVE on UDO instances to query the referenced objects:
    OMBRETRIEVE UD_MEASUREFOLDER 'MF' GET REFERENCE MEASUREFOLDER_MEASURES
    So I think all of the building blocks are there, its just there isn't a generation framework for UDOs.
    Cheers
    David

  • ORA-34492: Analytic workspace object __XML_GET_FULLTOAW_NAME does not exist

    Hi,
    We are experiencing the following error when trying to retrieve data from the OLAP layer in our front-end:
    ORA-34492: Analytic workspace object __XML_GET_FULLTOAW_NAME does not exist.
    to be more specific, the following happens:
    We are using the Oracle OLAP Java api's to query the analytical workspace. We create a Source object that contains the joins we want. This source is prepared and committed via the TransactionProvider class. Via the DataProvider we then create an SQLCursorManager and generate the SQL and execute it via JDBC.
    We were able to execute it without problems on an XP development platform. When switching to another platform that we use, it gives the following error messages:
    (platform with the error is Linux x86-64; more version info further down)
    Caused by: java.sql.SQLException: ORA-34492: Analytic workspace object __XML_GET_FULLTOAW_NAME does not exist.
    ORA-06512: at "SYS.OLAPIMPL_T", line 23
    ORA-06512: at "SYS.OLAPIMPL_T", line 17
    ORA-06512: at line 4
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:626)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:113)
    at oracle.jdbc.driver.T4CStatement.execute_for_describe(T4CStatement.java:352)
    at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:894)
    at oracle.jdbc.driver.T4CStatement.execute_maybe_describe(T4CStatement.java:384)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:984)
    at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1124)
    Platform/version info that produces the error:
    Linux x86-64
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
    PL/SQL Release 10.2.0.3.0 - Production
    CORE     10.2.0.3.0     Production
    TNS for Linux: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    OLAP A patch for 10.2.0.3 is applied.
    Platform where this works without problems:
    Windows XP
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE 10.2.0.1.0 Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    Any info on resolving this issue is greatly appreciated!
    Thanks,
    Ed

    Hi Keith,
    Yesterday I actually fully rebuilt/redeployed the AW. (I only patched our 10.2.0.3 installation with the OLAP A patch very recently.) Even the AW's tablespace was recreated, just to make sure everything was gone. Redeployment of the OLAP objects from OWB control center went without any problems.
    Let me answer your questions one by one below.
    1) How did you build the AW?
    We use OWB. The only thing I used AWM for is to actually create the AW. Once created, I use OWB to design and deploy. The front-end developers use AWM sometimes for viewing data in the OLAP objects. (I use OWB or AWM for that.)
    2) Can you connect to the AW via AWM, if so can you use the Data Viewer option to view:
    a) each dimension and check you can drill up and down.
    b) each cube
    I have been playing around a bit with the dim's and cubes in the AWM by right-clicking and selecting view data ... (that's the data viewer option?) and encountered no problems.
    3) You are using the OLAP API directly, what sort of application are you building - Java Client, JSP, Applet and are you using BI Beans?
    We are building a JSP type application, but so far only servlet code is being executed as the failure occurs on issuing the query. We are not using BI BEans.
    Thanks for your feedback!
    grts,
    Ed

  • OWB 10.2.0.1 - Error Table

    Hi All,
    how can I use successfully the Error Table in a Mapping ? I have created 2 table (t_source [col_1 varchar2(10)] and t_target [col_2 varchar2(5)] ). I have configured mapping as rowbased and created with DBMS_ERRLOG.CREATE_ERROR_LOG one error table for each table.
    But when i run mpaing (who discards every records ) i obtein empty error table ?!!
    What can i do ?
    Thanks,
    Marco
    Oracle 10Gr2
    OWB 10.2.0.1
    Unix
    Message was edited by:
    Marco A.
    Message was edited by:
    Marco A.

    Hi,
    I have not tried to implement what has been said in the link, this link I had got from one of the replies in this forum.
    One more approach you can try
    For each of the object in OWB you can create data rules. There is a set of built-in data rules and also you can create your own set of data rules.
    Once you have created these data rules on the fields of the table, you can deploy this table into your target schema. In the database, an error table is created for the table object.
    Now when you use this table as a target in a mapping, click over the target table operator you will find the data rules node. Expand the node corresponding to the data rules for which you want error logging and then select 'MOVE TO ERROR' as Rule action.
    Deploy the target table object and the mapping and execute it. Hopefully the rejections due to rule violations should get logged into error table, if you have set the Rule Action appropriately.
    HTH
    -AP

  • OWB Change Management/Version Control Best Practice

    Hi
    I am about to start developing a data warehouse using OWB 10g R2, and I've been doing quite a lot of research into the various deployment/change management/version control techniques that can be used, but am still unsure which is the best to use.
    We will have 2-3 developers working on the project, and will be deploying from Development, to Test, to Production (each will have a separate repository). We want to be able to easily identify changes made between 1 release and the next to have a greater degree of control and awareness of what goes into each release. We also wish to use a source control system to track changes (we'll probably use SVN, but I don't think that the actual SCS tool makes a big difference to our decision at this point).
    The options available (that I'm aware of), are:
    1. Full MDL export/import.
    2. Snapshot MDL export/import.
    3. Manual coding of everything using OMB Plus.
    I am loath to use the full MDL export/import functionality since it will be difficult, if not impossible, to identify easily the changes made between 1 release and the next.
    The snapshot MDL export/import functionality is a little better at comparing releases, but it's still difficult to see exactly what has changed between 1 version and the next - particularly when a change to a transformation has been made. It also doesn't cope that well with tracking individually made changes to different components of the model.
    The manual coding using OMB Plus seems like the best option at the moment, though I keep thinking "What's the point of using a GUI tool, if I'm just going to code everything in scripts anyway?".
    I know that you can create OMB Plus code generation scripts to create your 'creation' scripts, but the code generation of the Alteration scripts seems that it would be more complicated than just writing the Alteration scripts manually.
    Any thoughts anyone out there has would be much appreciated.
    Thanks
    Liffey

    Well, you can also do per-object MDL exports and then manage those in your version control system. With a proper directory structure it would be fairly simple to code an OMB+ Script that scans a release directory tree and imports the objects one by one. I have done this before, although if you are using OWB as the primary metadata location for database objects then you have to come up with some way to manage object dependency order issues.
    The nice thing about this sort of system is that a patch can be easily shipped with only those objects that need to be updated.
    And if you force developers to put object-level MDL into your version control system then your system should also have pretty reporting on what objects were changed for a release and why.
    At my current job we do full exports of the project MDL and have a deployment script that drops the pre-existing deployed version of the project before importing and deploying the new version, which also works quite well - although as you note the tracking of what has changed in a release then needs to be carefully managed elsewhere. But we don't deploy any of our physical database objects through OWB. Those are deployed from Designer, and our patch script applies all physical changes first before we replace the mappings from the OWB project. We don't even bother synching the project metadata for tables / views / etc. at deployment. If the OWB project's metadata for database objects is not in sync with Designer, then we wind up with deployment errors. But on the whole it works pretty well.

  • Replacing or Deleting Corrupted OWB Maps

    OWB (ver 10.2.0.4) gave me this message while synchronizing objects in a mapping:
    MMM1061: Corrupted array: position mismatch at 0
    I've tried deleting/undeleting the map, renaming the map, reimporting the metadata for the map (Update, Replace, Create New using both Universal Identifier and Name options). Also no log files were generated during any reimports for this object. OWB seems to have lost the handle on this object but not completely.
    HOW do I replace this object?

    Well, I don't know why but OWB finally replaced the object. Redressed the problem after an hour. Logged out and back into OWB. Object was renamed in the previous session so I tried reimporting the metadata with options "Create new metadata only" and "Match By Names". This approach didn't work in the previous session, even with logging out and back in. This time OWB created a log file and the "new" object shows under Mappings.
    Go figure!

  • Scripts generated post deployment in OWB

    Hi,
    I have a query regarding the sccripts generated after deployment of any object in OWB.
    When we create a map in OWB and deploy it, two scripts are generated. one is the package which physically create the mappning process in target schema. The other script is a ddl script e.g. map_name_drop.ddl.
    Can you provide me an understanding why this ddl script is generated.
    Many Thanks

    Nothing specific at the moment but would like to know if its possible and to what level its possible to interact via scripts or other methods with the applications in CS6 after deployment
    Can projects be opened in Captivate via script?
    Can publishing settings be set for labs of captivate installs so all have a common set of custom settings?
    Can projects be published via scripting?

  • Deployment location in OWB 10.2.1.

    Hi ,
    I have installed the OWB 10.2.1 on Windows XP Platform successfully. I had an export file done in the previous version 10.1.4 and import it - migrating beforehand the import- to the new version. Everything was OK , except for just a warning about the difference between the base language on the export file and the new OWB installation.
    When i try to deploy a mapping , i get the error message RTC-5272: There are invalid target locations DEPLOYMENT LOCATION.
    There are one or more locations specified as deployment locations that are either of type database or are source locations.
    Where are defined these deployment locations.... as this new OWB version is slightly to much different to the previous version.... Is it under the Configurations directory...in thw OWB client Tool environment????
    I haven't found any property value database or source location regarding the deployment location.
    What can I do in order to disassociate the deployment locations from the objects - as OWB points out...?????
    Regards,
    Simon

    I got this same error after importing projects. This is what I did to resolve:
    My "location" was brought over when I did the import. But the properties were not set on the "location". I had to go to the "Connection Center" and set the properties for my "location". Basically, I had to set the username/pwd, node, port, service name, etc. After this, I was able to deploy.

  • Change OWB-user password after import

    Hi there,
    I set up a new empty 11.2 Warehousbuilder Repository instance, created a workspace and several DB-users (not in OWB) to prepare for MDL-Import.
    Into that I run MDL-Import from 10.2 (it creats a MDL-file for 11.2), which was successfuly imported.
    Immediatly after import I can not see any content as workspace-owner (may be logical since WS-Owner is not owner of any object imported ?)
    and I can't connect as OWB-user as well.
    So I tried to change imported OWB-user's password, but how to ?
    OWB Install and Admin guide says in chapter 13.10.2, that I would not need to do anything special in OWB, just set password in DB as usual.
    But I can't connect as those OWB-user !?
    So how to change OWB-users password correctly ?
    thanks for any hint.
    LaoDe

    seems my question wan't clear enough.
    So here is an easy scenario step by step:
    0. create a new empty Instance 11.2. Create several schema with only connect, resource grants to match later OWB-import's OWB-users.
    1. create new, empty repository 11.2 + 1 workspace. OWB-Schema, who created WS = OWB_WS_OWNER
    2. run Import from Export MDL-file. This includes several OWB-users.
    3. After Import successful endet, no new objects, OWB-users or anything new is to see. (still beeing OWB_WS_OWNER). Even restart OWB does not show any new objects or OWB-users.
    4. Can't connect to OWB with 1 of those imported Schema, to see any imported objects. Might be logical, because OWB-password for imported OWB-Schemas is unkown -> DB-Password does not help (what is logical).
    5. As OWB_WS_OWNER or OWBSYS: how to change those imported OWB-user's password, when I don't see them as OWB-users ???
    please help, thanks Laode

Maybe you are looking for

  • Mini dvi adapter and long cables. Weak signal?

    Hi. I'm having a big problem with my Macbook and a projector (a cinema theatre projector to be more accurate). The projector stays 10m away from the computer. The screen flickers all the time, and colors doesn't appear right. I already spent so much

  • How to delete the trailng zeros in my table

    Hai I had a serious problem My table name called nrgp_main Here nrgpno declared as char(8) i had changed as 10 by mistake and i have update two times the number is like this 003800001 i need to cut the first '0' and update it Thanks & regards Srikkan

  • Photoshop elements 9. Why does it keep saying "editor busy"?

    Every time I try to edit a photo in PSE 9 it says unable to complete command. Editor busy. I don't know what it's busy doing but how do I correct this problem?

  • InDesign CS5 crashes when saving new empty document.

    It also crashes when printing, saving, resaving or exporting existing files. Many are converted files from Quark Xpress using Q2ID. Never had any problems until the past few weeks. Help! I have renamed preference files and uninstalled and reinstalled

  • SWCV conflict in SPROXY

    Hi, I am trying to send a proxy message from a R/3 system (SAP BASIS 6.20) to a XI 3.0 system (SAP BASIS 6.40). When I try to generate the outbound proxies on R/3 using SPROXY, I do not see any SWCV of SAP BASIS. I've gone thru some of the messages o