Get_audit_id

Hi All,
I have ORACLE 11gr2 and i can create a mapping OWB with PRE/POST mapping.
In the POST Mapping I insert a Procedure that capture the AUDIT_ID and insert its in
a new Table "T25_AUDIT".
My Problem is that when I Deploy tha Mapping;OWB give me two Warning
1.ORA-06550: PACKAGE BODY, line 1056, column 20:
2.PLS-00201: l'identificativo 'EXPRESSION_1_OAUDIT' deve essere dichiarato
     ORA-06550: PACKAGE BODY, line 1056, column 8:
     PL/SQL: Statement ignored
If I run this mapping OWB present this Error
ORA-04063
If use a function <NameMapping>.get_audit_id in a Costant Palette and insert this
value in POSTMapping, the value in the table "T25_AUDIT" is 0.

type get_runtime_audit_id in constant and then check "Is Predefined Constant".
(mark it helpful or correct if it is )
Cheers
Nawneet
Edited by: Nawneet on Jun 10, 2010 5:49 AM

Similar Messages

  • Getting an process-flow audit id in the process flow itself

    Hi,
    I am using OWB 11gR2 and want to capture the audit_id of the process flow itself at the process-flow level.
    I want to use this to pass it tru to the mappings in the process flow.
    I know how to get audit_id when you're in the mapping (get_audit_id), but i want the audit_id of the process flow when i am "inside" the process flow.
    When i have this i can let all of my mappings in the flow receive the same id.
    When i setup a parameter at the process flow and specify get_audit_id there it errors on me.
    Does anybody what to specify here ?

    ok,
    i figured it out myself and answered myself in another thread.
    Basically it goes like this:
    In the master flow you have sub-processflow objects which you want to pass along the audit_id of the master flow.
    So that you can pass along the same audit-id to every mapping in all of the flows.
    But it would be nice to be able to run sub flows independently from the master flows (for testing etc.)but still feed the same id(whatever that is) to the mappings in that process flow.
    And on the lowest level this applies to mappings as well: be able to run a mapping and get a id to store in a field.
    The same applies to feeding a process date to all the mappings in your flows(used for dwh purposes)
    How does this work on the mappings ?
    Create a mapping input parameter, put 2 params in it.
    One date, one number. The date part is easy: just put SYSDATE in it.
    The number part would ideally hold get_audit_id as default value. Unfortunately this generates an error.
    So put default value of 1 here. Create a constant on the mapping with value get_audit_id in it.
    Create expression that tests if input_param has something else than 1 as the value ; if so then there was no audit_id fed into the mapping by a process flow. Make the expression use the constant then. Use the output of the expression in your mapping.
    How does this work in process flows ?
    You'll have two different parts here:
    -feeding from flow to a sub-flow
    -feeding from flow to mapping
    Flow to subflow:
    You can not bind a flowparameter to subprocess paramter so you'll need to create 2 variables.(process date / audit id)
    Create two parameters, one date with sysdate as default, one number with 1 as default.
    Use assign operator to bind audit_id parameter to the audit id variable.
    Use another one to bind to the same variable, but specify parent_audit_id as value instead of binding it to the paramter.
    Use conditonal routing on these two assign operators to have one of these be executed.
    This will ensure that the variabel either gets parent_audit or the value of the input parameter of the flow.
    Use another assign op. to bind the date input to the date variabel.
    Bind the parameters of the sub flows to the variables.
    Flow to mapping:
    Use the same procedure as descibed above. Only difference here is that you can bind a mapping parameter to a parameter.
    This means that you'll don't need the assign stuff for the date parameter since you can bind the date parameter of the mapping to the input parameter of the flow.
    Hope this helps someone ...

  • How to find count of records based on batch wise.

    Hi All,
    We are working on OWB10gr2. I would like share one requirement. Any one can suggest me how to do it and which is the best way to get accurate information.
    We have 2 schemas’ like nia_src and nia_tgt. currently we are moving data from nia_src to nia_tgt for that reason we implemented some mappings based on requirement. In my source schema (nia_src) having 100 tables with data and similar structure replicated in target schema (nia_tgt).
    In source schema every table having one date field for which record is inserted and based on that field we can find how may records are inserted on particular table ,particular time.
    Same like target also maintaining date fields for tracking purposes.
    We have done some mappings and scheduled also. Every day we are into the target with incremental data. All are working fine not any issues.
    I wanted to know how many records inserted, updated, merged for particular batch
    How can we find?
    Can we find exact information in OWB_REP_OWNER schema on WB_RT_AUDIT?.
    For tracking purposes I need to find those values how many records are available in
    Source table and how many records are populated to the target schema?
    How to find schedule batch count of records table wise for batch wise?
    Please suggest me any one on this.
    thanks and regards,
    venkat.

    RE: based on pre operator can we find count of records. if yes how to do it.
    No, you cannot tell from the pre- operator how many records will be inserted or updated into a mapping. How could you? The mapping hasn't run yet!
    At best (if you have simple mappings with single targets) you could come up with a strategy to have the pre-mapping procedure aware of it's package name, then select from user_source for that package body until you find that first cursor used for the row-based processing, copy the cursor into a local variable, and then execute immediate select count(*) from that cursor definition. But still, all that would get you is the number of rows selected - not inserted / updated / errored etc.
    A post-mapping procedure that is aware of the package name will, however, run prior to package exit so that the package spec is still in memory so you can access the public variables in the package spec. We do that in our standard post-mapping procedure
    CREATE OR REPLACE procedure erscntrl_finalize_prc(
                           p_process_id     in  number,
                           p_process_name   in  varchar2)
    as
          l_numread      number         := 0;
          l_numInserted  number         := 0;
          l_numUpdated   number         := 0;
          l_numMerged    number         := 0;
          l_owb_audit_id number         := 0;
          l_owb_status   number         := 0;
          sqlStmt        varchar2(2000) :=
                               'begin '||
                               '  :1 := '||p_process_name||'.get_selected; '||
                               '  :2 := '||p_process_name||'.get_inserted; '||
                               '  :3 := '||p_process_name||'.get_updated; '||
                               '  :4 := '||p_process_name||'.get_merged; '||
                               '  :5 := '||p_process_name||'.get_audit_id; '||
                               '  :6 := '||p_process_name||'.get_status; '||
                               ' end;';
    begin
          -- we use dynamic SQL to return required audit field values.
          --  This allows us to alter which values we need at a later date
          --  without impacting the deployed mappings.
        execute immediate sqlStmt
        using   out l_numread,   out l_numInserted,  out l_numUpdated,
                out l_numMerged, out l_owb_audit_id, out l_owb_status;
      -- then execute our own logging package.
       owb_mapping_log_pkg.finalize(
                           p_process_id,
                           p_process_name,
                           l_numread,
                           l_numInserted,
                           l_numUpdated,
                           l_numMerged,
                           l_owb_audit_id,
                           l_owb_status
    end;
    /However, even in this case bear in mind that if you run the mapping in set-base mode, all Oracle returns is the number merged which does not give values for the inserted and updated counts. If you really need those values you need to either a) run in row-based mode or row-based-target-only, or come up with some custom queries. For example, in your pre-mapping do a select count(*) from your_target_table, then run the mapping, then get the number merged, then do another select count(*) from your_target_table. With these values and basic math you could tell the number inserted by the growth in the table, and the rest of the number merged must have been updates.
    That being said, if you are playing with dimensions as large as most of the ones I am - there is no bloody way that you want to do two select count(*) statements on each run without a really, really good reason.....
    Cheers,
    Mike

  • HOW TO SET ANOTHER DOWNLOADER FOR FIREFOX?

    i want to set orbit downloader for my firefox........

    The system_paramters field is a comma-separated list of name/value pairs, e.g:
    'PARAM1=1,PARAM2=true'
    These are then parsed and put into a WB_RT_MAPAUDIT.WB_RT_NAME_VALUES object which is used in the call to main() for you mapping.
    The system parameters can be deduced from the initialize() procedure in your mappings:
    IF p_env(i).param_name = 'MAX_NO_OF_ERRORS' THEN
    get_max_errors := p_env(i).param_value;
    ELSIF p_env(i).param_name = 'COMMIT_FREQUENCY' THEN
    get_commit_frequency := p_env(i).param_value;
    ELSIF p_env(i).param_name = 'OPERATING_MODE' THEN
    get_operating_mode := p_env(i).param_value;
    ELSIF p_env(i).param_name = 'BULK_SIZE' THEN
    get_bulk_size := p_env(i).param_value;
    ELSIF p_env(i).param_name = 'AUDIT_LEVEL' THEN
    get_audit_level := p_env(i).param_value;
    ELSIF p_env(i).param_name = 'AUDIT_ID' THEN
    get_audit_id := p_env(i).param_value;
    ELSIF p_env(i).param_name = 'PURGE_GROUP' THEN
    get_purge_group := p_env(i).param_value;
    You may also have custom parameters defined for your mappings, and they are passed in a similar way to the p_custom_params variable in run_task()
    Mike

  • Is it possible to have one plugable mapping combining 2 other plug.map.

    hi,
    Using OWB10gR2 is it possible to combine 2 existing plugable mappings in one new plugable mapping.
    I tried it out but always got an java error (index out of bound) when trying to do so.
    Thanks for any input.
    Maurice

    Hi,
    we had the requirement to log audit information of the mappings to another logging application for overall monitoring.
    In the pluggable mapping we have an expression operator with attributes get_audit_id, get_inserted, get_merged etc. The attributes have the corresponding values get_audit_id, get_inserted, get_merged etc. These are variables generated by owb in every mapping and can therefore be accessed within a mapping.
    We use a pl/sql procedure (post mapping process) to write these values to our propitary logging framework.
    The status of a pluggable mapping cannot be monitored. During generation (deplyoment) the pluggable mapping's code is "merged" with the parents mapping code. After deployment there is just one mapping.
    Regards,
    Carsten.

  • Auditing loads?

    I've already looked at OWB's Runtime Audit Browser and I like it. But my auditing needs are different.
    First let me explain, what I know and have already.
    I'm executing OWB mappings with OEM jobs. To do this, I use the oem_exec_template.sql script provided with OWB. This script stores an audit_id in the variable l_audit_id. I need to put exactly this audit_id into the table(s) that where created/loaded by a mapping.
    I could modify this oem_exec_template.sql script, so that after the load finished, I update all rows with this audit_id.
    The problem is, that this is going to be too slow. I tried this with a small table with ~7 million rows and it delayed the overall execution time very much.
    Is there a "correct and well performing" way to do this? Or I'm thinking way to complicated, maybe there is a nice solution.
    Maybe you ask: why do I need this?
    The tables are loaded once a day, and we must be able to tell exactly:
    1) which rows were loaded
    2) when where they loaded
    3) any problem during this load (-> with the audit id, it is easy to find it in the OWB Audit Browser again)

    01) I added an external table.
    02) I linked all field from the ext_table to the target table.
    03) In the target table I created an attribute AUDIT_ID and reconcile outbound.
    04) The I added an expression.
    05) In the expression's outgroup I added an attribute AUDIT_ID.
    06) On (expression) AUDIT_ID, right-click -> expression
    07) I entered M_MAP02.get_audit_id (since my mapping is M_MAP02)
    08) I created an input field dummy.
    09) I created a constant with the expression 1, which is linked to the expression.dummy input field.
    10) I validated the mapping and it was okay.
    11) I registered every LOCATION that was missing
    Validation and deployment were successful.
    Did I do everything right?
    No! When I execute the mapping from the deployment manager, 0 rows get loaded :(
    No. Now I get a "funny" error, that really starts getting to me:
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout ORA-29400: data cartridge error KUP-00554: error encountered while parsing access parameters KUP-01006: error signalled during parse of access parameters KUP-00562: unknown escape sequence.
    What is going wrong? I used the same flatfile definition that I used for the previous SQLLoader mappings. The file description must be correct, nothing changed.
    I do however believe, that this error is still on my side, but I already hear my project leader telling me, that sticking with MS DTS packages would have been better, at least when it comes to usability of the product. None the less, OWB is the ETL tool for Oracle DBs, so there must be a way to take advantage of this tool...... (it is just boring, to do trial&error)

  • Can not use get_runtime_audit_id in Expression Operator , Constant Operator

    Hi All,
    I am using OWB 11.2.
    I want to get current id by using get_runtime_audit_id (== RTA_IID), get_audit_id (== RTE_IID) and get_cycle_date (== RTA_DATE) in Expression Operator , but i got the error that get_runtime_audit_id ,get_audit_id , and get_cycle_date must be identified.
    I have search some resource not found the same problem, i also tried <mapping name>.get_runtime_audit_id in Expression Operator in my mapping, but it still not work,
    can anyone give me any clue.
    Thanks very much.
    Rachel
    Edited by: Pengqi on 23/03/2011 20:01
    Edited by: Pengqi on 23/03/2011 20:02

    Where can we find get_runtime_audit_id, get_audit_id and get_cycle_date in OWB 11gR2?
    I did not find those under public transformation node within expression.
    I did not find reference to those in documentation as well.
    Thanks in helping.

Maybe you are looking for

  • Font rendering quality in Illustrator is terrible!

    What the heck rode Adobe when they implemented the new font engine? Why, oh why is Apple's font rendering so much better? And why wouldn't Adobe use something that's already readily available on the mac platform? I have a huge problem mocking up webs

  • Alarm clock issue

    So there is an issue with alarm clock since 4.4.4 update and it is still in 5.0.2. When i try to clangw Alarm clocks sound it opens File commander not stock sound! In 4.4.4 usualy after Restarting phone all worked fine for some time, but now in 5.0.2

  • Website Optimization Software Question

    If I drop a published folder from iWeb into Rage WEBCRUSHER is the folder now optimized such that I could use it with any kind of FTP transport ? .................or do I need to export the file from WEBCRUSHER in order to consummate the optimization

  • Struts tag within struts tag

    Hi, i'm trying to preselect my dropdown list in my jsp page from a value inside a javabean: <td>          <html:select property="value(profType)" value="<bean:write name="item" ignore="true" property="profType"/>">           <html:option value="postp

  • Using FF ver 3.6.23 when trying to use a "Finish button" the java console provides error: document.forms 0 .submit and I cannot submit the document

    document.forms[0].action=AWURL; document.forms[0].elements["WWWACTION"].value='APPLY'; //12-1TEDHRQ - identify the action as legitimate, to avoid the warning popup legitimateAction = true; //12-1TEDHRQ - eof document.forms[0].onsubmit(); formatHTML()