Loop-Construct in Process Flow

Hi,
there are new constructs in OWB 10g Release2 in process editor.
Just try to create a process flow with one mapping and a For-Loop-Construct but it does'nt work. Is there anybody use this feature?
I don't know, what fill into initial value, next value etc.
Thanks a lot
Conny

you can have global variables in process flow.
highlight the start activity.then in bottom left panel add parameters and their type. these need to be passed runtime. these will be global variables to the processflow.
hope this helps
thanks,
kamal

Similar Messages

  • Restart logic and looping logic in process flow

    Is there any restart logic and looping logic in Oracle Warehouse Builder, process flow?

    Hi,
    The answer is NO. The curent version does not have restartable functionality. You have to have your own design for this.
    ta
    mahesh

  • PROCESS FLOW FOR LOOP IN BUSY STATE

    Hi,
    I have designed a process flow, in which FOR loop has been incorporated,within the loop FTP activity along with check of file exsistence is done, if file does not exsist ,it again tries to perform successful FTP, else map the file to table and assigns some value to loop variable so that it exits from the loop.
    The problem is that, although FTP has been done successfully, and file has been found, even mapping has been done sussefully, and in the repository browser it shows COMPLETE EXIT for the loop, but the process flow goes into busy state, with all tasks performed well.
    Please help how to end the process flow.

    I am also facing the similar issue, The process is complete, but the process flow is not stopping, though the seperate exit condition is put. Are you using ver. 11 ?

  • VLD-10005:  The following path in this process flow is a loop and may cause

    Hi,
    [The following path in this process flow is a loop and may cause the process to loop infinitely..]
    The messages comes under following scenario
    S -> Map1 -> Error -> OR1
    Map1 -> Map2 -> Error -> OR1
    OR1 -> End_ERROR
    Map2 -> End_SUCCESS
    Any reasons?
    OWB 9.2.0.2
    The same works in another Process Flow.
    the intention is to let the Process Flow continue when there is no error, and branch to a common email when an error occurs (instead of creating separate email activities)
    - Jojo

    Thanks for that answer. Unfortunately, we donot have a very good inclination (read that as image) for OWB here. So we are still on 9.0.2. So will live with the bug, and ignore the warning.
    Message was edited by:
    Jojo

  • For loop or while loop in process flow

    Hi,
    Is it possible to use a table as driver for a loop ?
    I want to loop (the number of records in my table ) times and use the value of a certain column as parameter in my loop.
    Thanks in advance
    Carolineb

    Carolineb,
    I think this is possible - develop three PL/SQL-procedures
    1) first procedure PR_GET_LAST_VAL - with one OUT parameter for getting ID of last record from your table (for example select max(id) from your_table)
    2) second procedure PR_GET_FIRST_VAL - with one OUT parameter for getting ID of first record
    3) third procedure PR_GET_NEXT_VAL - with one IN/OUT parameter for getting ID of next record (for example select min(id) from your_table where id>P_VALUE , where P_VALUE is a procedure parameter)
    4) define two variable for process - V_CUURENT (loop variable which will be chaned with third procedure) and V_LAST_VALUE
    5) in process flow before LOOP operator insert procedures PR_GET_FIRST_VAL and PR_GET_LAST_VAL and bind parameters to variables V_CUURENT and V_LAST_VALUE respectively
    6) define condition for LOOP operator as V_CUURENT <= V_LAST_VALUE
    7) in body of LOOP operator insert procedure PR_GET_NEXT_VAL and bind parameter to variable V_CUURENT
    Hope my idea is clear.
    Regards
    Oleg

  • Process Flow Validation Warning.

    Hi All,
    OWB Config Details is as follows:
    Oracle 9i Warehouse Builder Client: 9.2.0.2.8
    Oracle 9i Warehouse Builder Repository: 9.2.0.2.0
    1> Following Warning is displayed when Process Flow is validated in Process Editor in OWB.
    VLD-10005: The following path in the process flow is a loop and may cause the process to loop infinitely,
    START->EXT_SHELL_SCRIPT->M_STG_GRADE_OF_SERVICE->EMAIL_ERROR->UPDATE_MAP_PROCESS_ERROR->
    2> A mapping is developed in OWB with some default configuration parameters e.g. In a mapping involves Source Text File as Source and Staging Table as Target.
    Readsize and Bindsize config parameters are set to 5000 respectively. I included the same mapping in process flow as mapping. The above mentioned Config Parameters are modified to 5242880. I committed the changes & synchornized in the process flow editor. I was expecting the modified config parameter will be displayed in the process flow editor. However I found that it still displays old config parameters and not modified config parameters. Is this expected or Did i miss some steps ?
    Can someone please let me know more on these issues?
    Regards,
    Vidyanand

    Please go the OWB forum for these questions:
    Warehouse Builder
    Thanks, Mark

  • Process Flow Warning in OWB.

    Hi All,
    OWB Config Details is as follows:
    Oracle 9i Warehouse Builder Client: 9.2.0.2.8
    Oracle 9i Warehouse Builder Repository: 9.2.0.2.0
    1> Following Warning is displayed when Process Flow is validated in Process Editor in OWB.
    VLD-10005: The following path in the process flow is a loop and may cause the process to loop infinitely,
    START->EXT_SHELL_SCRIPT->M_STG_GRADE_OF_SERVICE->EMAIL_ERROR->UPDATE_MAP_PROCESS_ERROR->
    2> A mapping is developed in OWB with some default configuration parameters e.g. In a mapping involves Source Text File as Source and Staging Table as Target.
    Readsize and Bindsize config parameters are set to 5000 respectively. I included the same mapping in process flow as mapping. The above mentioned Config Parameters are modified to 5242880. I committed the changes & synchornized in the process flow editor. I was expecting the modified config parameter will be displayed in the process flow editor. However I found that it still displays old config parameters and not modified config parameters. Is this expected or Did i miss some steps ?
    Can someone please let me know more on these issues?
    Regards,
    Vidyanand

    Re your first question, you are probably hitting a bug (3035080) that makes OWB generate false warnings. Please ignore the warnings and try to deploy and run the process flow.
    As for your second question - I cannot reproduce this on 9.2.0.2.8. The configuration properties are updated corectly in the SQLLOADER map and I get the same values in the process flow. By the way, why are you not using external tables instead of the SQLLoader maps?
    Regards:
    Igor

  • Regarding Performance Tunning of Mapping & Process Flow

    Hi,
    i have around 60-70 GB data in Target database.
    i need do improve the performance of Mapping and Process flow.
    i have used lookup transformation in mapping.
    Plz give me some tips for improving performance of Process.
    Thanks,

    Please go through a Performance Tuning Book for Oracle 10gR2.
    Most importantly remember that in Oracle 10g, your performace of mappings can be increased manifold by following these steps:
    1. Do not design a mapping wherein you load a table and then select from that table to load another table and so on. This is a bad design.
    2. Keep mappings as simple as possible. In other words if a mapping is complicated in terms of joins or other operators then split the mapping into more than one parts.
    3. Also check that all your source tables should be analyzed using DBMS_STATS. Ensuring this one single step can make your work very easy.
    4. Put indexes where you find your predicate has a very high selectivity. Also keep in mind the column ordering of the index.
    5. Use Set Based operation, since it is always a good idea to achieve the result by running one single query rather than a loop and multiple inserts.
    6. Use APPEND PARALLEL hint while loading the target tables. This will not generate wny redo and save time
    7. Please have a recheck while usng some performance intensive operators like UNION, DISTINCT and AGGREGATION
    8. When using a sequence operator to load a large table, check that the sequence should be cached with some values.
    9. When loading large data HASH JOINS are the most appropriate more often than not. So you can use USE_HASH as the hint for selecting from large tables.
    10. Filter out as much unrequired data from a table as soon as possible in the mapping before doing multiple joins.
    I am sure there are many more ... the above is just a random list that I could remember now. Please go through Oracle Performance Tuning Guide, Tom Kyte's Oracle Expert One on One. Knowledge of performance tuning will grow with experience. I am also learning each day !!!
    Regards
    AP

  • Process flow fails to complete when another in the same package is deployed - OWB 11.2.0.2

    Hi,
    I have  problem with OWB Process Flows whereby whenever I deploy a process flow within an existing package, another Process Flow becomes (unknown to me) invalid and will not complete execution.
    When deploying the first process flow, I am synchronising all mappings within it, saving, validating and saving again before deploying it. This process flow then functions ok but then a random process flow within the same package malfunctions. By this I mean the process flow does not complete, as if it has lost some connectors. Has anybody else had this problem?

    HI Richard,
    Thanks for your reply. Yes I agree with your answer but sadly this does not seem to be the cause of the problem in my case as I always stop any running processes and double check with the list_requests.sql as provided and where necessary execute the deactivate_execution.sql and/or abort_exec_request.sql only if absolutely required. Finally I check again with list_requests.sql and if necessary run in the OWF_MGR schema: WF_PURGE.TOTAL and/or the following sql (again only if required) :
    BEGIN
    FOR cur_rec in (SELECT ITEM_TYPE,ITEM_KEY FROM OWF_MGR.WF_ITEM_ACTIVITY_STATUSES
      WHERE ACTIVITY_STATUS = 'ACTIVE')
    LOOP
    OWF_MGR.WF_PURGE.MOVE_TO_HISTORY(cur_rec.ITEM_TYPE,cur_rec.ITEM_KEY);
    COMMIT;
    END LOOP;
    END;
    So I am sure that no processes are running before I begin deployment. Thanks again for your reply.

  • Problems with setting up the wait in a process flow

    Hi,
    I have process flow where I need to use a wait function.
    The value of minimum_delay is set to 30
    literal = true
    the value of until_date I've been trying to set to a appropriate date format that is consistent with the default in the database.
    When doing this I get the error message ORA-01841:     (full) year must be between -4713 and +9999, and not be 0
    setting the value of until_date to null and literal still true gives me the error ORA-06502:     PL/SQL: numeric or value error. Setting the literal to false also gives me this error.
    Does anyone know how I can set this up correctly? And if its possible, not use the until_date parameter.
    any help is appreciated
    regards,
    Ragnar
    this is on a 10.2.0.3 database, windows 2003 server
    OWB client 10.2.0.3.33
    OWB repository: 10.2.0.3.0
    Message was edited by:
    rhaug

    Thanks for your replies:
    I've tried running the Processflow with different parameters.
    The processflow I am trying to run is in its own Module, with just one processflow, and the wait is the only activity in this.
    Its a nice mix of english and norwegian in the error messages, but I'll try to translate as best I can.
    Minimum_delay: 30
    Literal: true
    Until_date: blank
    Literal: true
    ORA-01867: intervallet er ugyldig (illegal interval)
    ORA-06512: ved "OWB_SYS.WB_RT_CONVERSIONS", line 371
    ORA-06502: PL/SQL: numerisk feil eller verdifeil: feil under konvertering av tegn til tall(numeric error or valueerror: error under conversion from character to number)
    ORA-06512: ved line 3
    Minimum_delay: 30
    Literal: true
    Until_date: null
    Literal: false/true
    RPE-01003: An infrastructure condition prevented the request from completing.
    RPE-01038: Failed to evaluate expression declare "$LOOP_DETECT$" NUMBER := 0;function "WAIT_TEST" return VARCHAR2 is "ITEM_TYPE" VARCHAR2(4000) := (wb_rt_task_variable.get_value(77109));"ITEM_KEY" VARCHAR2(4000) := (wb_rt_task_variable.get_value(77111));"EVAL_LOCATION" VARCHAR2(4000) := (wb_rt_task_variable.get_value(77112));function "WAIT" return VARCHAR2 is "WARNING" NUMBER := 2;"RETURN_RESULT_NUMBER" NUMBER := NULL;"NUMBER_OF_ERRORS" NUMBER := 0;"SUCCESS" NUMBER := 1;"ERROR" NUMBER := 3;"OK" NUMBER := 1;"FAILURE" NUMBER := 3;"AUDIT_ID" NUMBER := 77113;"RETURN_CODE" NUMBER := NULL;"NUMBER_OF_WARNINGS" NUMBER := 0;"RETURN_RESULT" VARCHAR(64) := NULL;"PARENT_AUDIT_ID" NUMBER := 77108;"OK_WITH_WARNINGS" NUMBER := 2;begin "$LOOP_DETECT$" := "$LOOP_DETECT$" + 1;if "$LOOP_DETECT$" > 2 then raise_application_error(-20001, 'Loop detected calling "WAIT"');end if;return wb_rt_conversions.from_timestamp_tz(null);end;begin "$LOOP_DETECT$" := "$LOOP_DETECT$" + 1;if "$LOOP_DETECT$" > 2 then raise_application_error(-20001, 'Loop detected calling "WAIT_TEST"');end if;return "WAIT";end;begin :result := "WAIT_TEST";end;. Please modify the expression, redeploy and retry again.
    ORA-06550: linje 1, kolonne 835:
    PLS-00307: for mange deklarasjoner av FROM_TIMESTAMP_TZ stemmer med dette kallet (to many declarations of FROM_TIMESTAMP_TZ matches with this call)
    ORA-06550: linje 1, kolonne 828:
    PL/SQL: Statement ignored
    Minimum_delay: 30
    Literal: true
    Until_date: 23-05-2009
    Literal: true
    ORA-01867: intervallet er ugyldig (illegal interval)
    ORA-06512: ved "OWB_SYS.WB_RT_CONVERSIONS", line 371
    ORA-06502: PL/SQL: numerisk feil eller verdifeil: feil under konvertering av tegn til tall (numeric error or valueerror: error under conversion from character to number)
    ORA-06512: ved line 3
    Minimum_delay: 30
    Literal: true
    Until_date: ’23-05-2009’
    Literal: true
    RPE-02083: Process WAIT_TEST has errored Activities. Dependent objects may not have been deployed. You can use Oracle Workflow Monitor to retry the activities or abort the Process.
    RPE-02075: Oracle Workflow failed to process the execution request for Activity WAIT_TEST:WAIT. This may be because dependent objects have not yet been deployed.
    ORA-01841: (helt) år må være mellom -4713 og +9999, og ikke være 0 ([whole] year must be between -4713 and +9999, and not be 0)
    WB_RT_WORKFLOW_UTIL_10G.Execute_Any_Task(TEST_MOD, WB_IK_20080602_101807_77183, 12489, RUN)
    WB_RT_WORKFLOW_UTIL_10G.Execute_Wait(TEST_MOD, WB_IK_20080602_101807_77183, 12489, RUN)
    Wf_Engine_Util.Function_Call(WB_RT_WORKFLOW_UTIL_10G.EXECUTE_WAIT, TEST_MOD, WB_IK_20080602_101807_77183, 12489, RUN)
    Minimum_delay: 30
    Literal: true
    Until_date: TO_DATE('23-05-2009','DD-MM-YYYY')
    Literal: false
    ORA-01867: intervallet er ugyldig (illegal interval)
    ORA-06512: ved "OWB_SYS.WB_RT_CONVERSIONS", line 371
    ORA-06502: PL/SQL: numerisk feil eller verdifeil: feil under konvertering av tegn til tall (numeric error or valueerror: error under conversion from character to number)
    ORA-06512: ved line 3
    So thats basically it.
    What language settings have you been using for this to work?
    Ragnar

  • Conversion error in process flow

    I've build a process flow with the following construction
    1. Function call (DB) which returns a date via a OUT parameter (Checked)
    2. Bound the OUT parameter to a Process-flow parameter of type date
    3. Use the proces-flow parameter to bind a input parameter in a following mapping.
    All is well in validation, generation and deployment, but upon running I stumble onto a conversion error. Somehow the process-flow parameter is represented in a format (2006-09-21 00:00:00.000000000 +02:00) which is not accepted in the mapping (tries to convert it using 'yyyy-mm-dd'). I cannot find the conversion in the coding.
    I've tried to see if either in the mapping or in the process-flow I'm able to input the format of the date, but was not successful.
    Anyone any idea

    Chris,
    Looks like a request has not got deleted properly from the table :
    Options that you could look at :
    1. Delete all the data from the ODS and load again ( if that is an option )
    2. There are some entries you need to delete from the RSODSACTREQ table- but for this the suggestion would be to raise an OSS note for SAP to look into the same - we had a similar issue and raised an OSS note for the same and then got some notes from sap.
    Also please mention your BI version and patch level.
    Arun

  • Declare procedure to use in process flow

    Hi
    I am using a function which return ture or false, i have written a while loop condition if ture then execute else exit.
    the while loop condition is calling that function but when ruung owb throws error that function is not declared
    ORA-06550: line 1, column 907:
    PLS-00201: identifier 'CHK_NXT_VAL' must be declared
    ORA-06550: line 1, column 862:
    PL/SQL: Statement ignored
    I have set every thing to true in execution on configuration of process flow, on configuration property i don't get this function any where so can't set it to true.
    Can you help me to declare and where and how to declare
    Thanks

    Did you get this working?
    Cheers
    David

  • Using "Route" activity in process flow

    Hi, I have a situation where I want to run one of two maps, depending on how many rows are in a particular table, i.e. something like:
    If table X rowcount > 100000
    then run map A
    else run map B
    What's the most straight forward way to set this up in a process flow? I assume I need to write a PL/SQL function that returns the # of rows in the table...but after that I'm a bit stuck, and the OWB user guide has next to nothing on how to use the ROUTE operator.
    Thanks in advance!
    Scott

    Hi David, thanks a million, that helps out a ton. I thought we had to use variables, with SET / ASSIGN and the ROUTE operator to do this...all of which are Enterprise ETL functionality.
    It seems like the method you outline below, in addition being easier, actually is legal even if we don't have Enterprise ETL. Is that correct?
    Thanks!
    Scott
    Includes the following advanced process flow functionality:
    - Activity templates
    - Variables support: assigning and passing variables and using the Assign and Set Status activities
    - Looping activities such as For Loop and While Loop
    - Route and Notification activities

  • How to start/stop process flow from sql*plus?

    Hi,
    i know how to start a process flow via sqlplus_exec_template.sql, but i cannot find any information on how to stop (and rollback) a working flow from sql*plus. Any help would be appreciated.
    Greetings
    Christoph
    Message was edited by:
    ctrierweiler

    Hi,
    I've had a go.
    How should I interpret the results of list_requests:
    owner_owr@ORKDEV01> @list_requests
    ====================
    DEPLOYMENTS
    ====================
    Audit ID Status Name Date Owner
    2706 READY Deployment Fri Nov 11-NOV-05 10:49:59 OWNER_OWR
    11 10:46:37 CET 2
    005
    ====================
    DEPLOYMENT UNITS
    ====================
    Audit ID Status Name Date Owner
    2707 READY Unit0 11-NOV-05 10:49:59 OWNER_OWR
    ====================
    EXECUTIONS
    ====================
    Er zijn geen rijen geselecteerd.
    owner_owr@ORKDEV01>
    Whilst a process flow is executing the last query will list executions, all of which have status BUSY:
    owner_owr@ORKDEV01> @list_requests
    ====================
    DEPLOYMENTS
    ====================
    Audit ID Status Name Date Owner
    2706 READY Deployment Fri Nov 11-NOV-05 10:49:59 OWNER_OWR
    11 10:46:37 CET 2
    005
    ====================
    DEPLOYMENT UNITS
    ====================
    Audit ID Status Name Date Owner
    2707 READY Unit0 11-NOV-05 10:49:59 OWNER_OWR
    ====================
    EXECUTIONS
    ====================
    Audit ID Status Name Date Owner
    394512 BUSY PF_ONB01 04-MEI-06 09:11:12 OWNER_OWX
    395328 BUSY ONB:FULL_PREPARE 04-MEI-06 09:11:55 OWNER_OWR
    395324 BUSY PF_ONB01:ONB 04-MEI-06 09:11:55 OWNER_OWR
    owner_owr@ORKDEV01>
    As an aside, I will attempt to get rid of the READY deployment and deployment unit using deactive_deployment.sql
    Now, if I attempt to use deactivate_execution.sql on any of the executions with status BUSY I get:
    owner_owr@ORKDEV01> @deactivate_execution
    Voer waarde voor 1 in: 396136
    declare
    FOUT in regel 1:
    .ORA-20003: The object is not in a valid state for the requested operation
    ORA-06512: at "OWNER_OWR.WB_RTI_EXCEPTIONS", line 94
    ORA-06512: at "OWNER_OWR.WB_RTI_EXECUTION", line 774
    ORA-06512: at "OWNER_OWR.WB_RT_EXECUTION", line 90
    ORA-06512: at line 4
    owner_owr@ORKDEV01>
    So all the seems to remain is to use abort_exec_request.sql
    This does the job, but the script itself hangs.
    I think it has to do with the l_stream_id not being checked again after the initial IF. I think it should probably be part of the loop condition as it is again reset in the do_acks inside the loop.
    Cheers & thanks,
    Colin

  • Process flow/map performance issues

    We have some issues with our OWB-based application and we're looking to find out if there are different ways we could be using the tool, or features/options we've missed.
    We are trying to maintain a near real time feed of data from a front end system into our warehouse which was built using OWB 10.2.0.3 over a 10.2.0.4 database. The bulk of the application consists of OWB maps with a few hand-written PL/SQL objects, all executed in a series of hierachical OWB process flows. Maps/transformations are executed either sequentially or in parallel where the referential integrity of the model allows.
    The problem is that we have around 150 tables in the datamart which could potentially require updating on each refresh cycle, although in practice only a few tables have any activity on a typical refresh cycle. The cycle consists of loading data into a set of staging tables, and from there the data is transformed into the main schema, often with multiple maps per target table.
    On every cycle we run hundreds of maps, the vast majority of which process zero rows. Each map runs quickly and efficiently in its own right but collectively they add up to a 5 - 10 min cycle even if there is no data to process.
    There are 2 avenues which we'd like to explore and would be grateful if anyone could provide any pointers/suggestions :-
    1) It appears that each map opens and closes its own database session when it executes. I presume this was done because a single process flow could be constructed with maps executing in different target schemas, but we know that's not the case for us. We'd like to know if there is anyway to configure the database connection at a higher level (eg. process flow) so it opens a connection once and executes each of the maps (database packages) in that one session.
    Our DBAs are experimenting with 'shared server' settings at a database level which may help to some degree but won't be the whole story.
    2) Another option is simply to run less maps eg. load the staging area as now, collate stats on which staging tables contain new data, and then apply some logic such that subsequent maps only execute if the relevant staging table(s) contain(s) some new data, otherwise bypass that map.
    We tried experimenting with the 'Pre Mapping Process' operator, but essentially that just generates another function call from the map package, so we still have the overhead of opening a database session for each map to run the package. Minimal gain.
    We thought about adding a function call in the process flow before each map and then branching to either execute/bypass the map as approriate, but the function call still requires opening/closing of a database session each time so, once again, minimal gain.
    What we really want is some way for a map or process flow to check without logging onto the database repeatedly.
    Any ideas on the above, or other potential solutions anyone could suggest, would be greatly appreciated.

    Hi,
    Please see if these documents help.
    Note: 554635.1 - Create Accounting Process Performs Poorly When 100K + Distributions are Passed for an Event
    Note: 954273.1 - Multiple Create Accounting Requests Result In Poor Performance For Online Accruals
    Note: 763500.1 - R12: Performance Issue with Create Accounting
    Note: 733637.1 - R12:Performance Issue When Running Accounting Program Xlaaccup
    Note: 781311.1 - Create Accounting Process Taking A Long Time To Complete After Appying Critical Patches
    Note: 557869.1 - EBS: R12 Oracle Financials Critical Patches
    Regards,
    Hussein

Maybe you are looking for

  • Ipad 2 vs. Kindle vs. Iphone

    I am very very tempted to get an Ipad.... BUT...: I would only use it to read my books.... So far I've been reading from my Iphoen, which is just brilliant and easily "usable" in queues, in the subway, etc.... but my dilema is the following: IPad is

  • I have lost all my headings, like bookmarks, facebook etc. What happened and how do I get them back?

    At the top of the screen it might say bookmarks, I would click on that and book marks would all be listed. I have lost the top part of my home page with all the things i need like my bank website etc.

  • User Mapping in JCO Destination

    Hi All, My current configuration is as follows: EP6 SP17 -> User mapped through Portal to R3 system. JCO Destinations -> I use a one technical user for all the WAS users ('user/password' option) I want that the JCO will use the same mapping as the Po

  • Where do I find my Ipod on the new view of Itunes?

    Whenver my Ipod was connected to my computer, it would show up in Itunes and I could "eject" or whatever. Now it doesn't seem to show up. Where is it in the new version? Thanks, JG   Windows XP  

  • How can Refresh a Servlet

    Hi, My problem is I have an servlet which reads data from the data base and it display on the browser. But my question the resultant page must be refreshed every 3 min ..(means every 3 min it retives data from the data base and it shown on the broser