How to run procedure in Process flow
Hello,
I have a small procedure which I want to run in between two different mappings. I want to achieve it in process flow.
I had understanding that this can be done using transformation but didn't had much success.
Please suggest.
Thanks
You are correct that this is done with a transformation in the process flow, and this is the way to do it.
What kind of error message did you get?
Was it something with the deployed location for the transformation not being set?
If thats the case, in the design center, mark the process flow and right click, then choose configure. Find the transformation and set the location for where the procedure is deployed.
Ragnar
Similar Messages
-
How to monitor the wrapper process flows
Hi,
I have a process flow(main wrapper) which contains the 2 child process flows(child_PF1, child_PF2). which looks like below.
start -> Child_PF1 -> Child_PF2 -> end
I am able to run the the process flows successfully. I want to monitor the process flows and the % of completion of the process flow.
I am able to check the parent and child process flows seperately. I am unable to link the parent process flow to its child work flows. Can anyone explain how to link/track the Parent process flow to its child process flows.
When i open the Parent process flow i was able to see the child process flow as an operator. But i was not able to view the contents child process flow further.
Oracle Workflow server version is 2.6.4
OWB version is 10.1.0.4
Thanks in Advance,
SriGP.Hi,
the following SQL works with OWB 10.2.
SELECT to_char(x.created_on,'dd.mm. hh24:mi') as created_on,
--x.root_id as r_id,
sys_connect_by_path(x.map_name, '/') AS NAME,
step_name as target,
--x.map_name as map_name,
--x.run_status,
x.number_records_updated + x.number_records_inserted + x.number_records_merged + x.number_records_deleted AS "#R",
--x.number_records_selected AS "#S",
--x.number_records_inserted AS "#I",
--x.number_records_updated AS "#U",
--x.number_records_merged AS "#M",
--x.number_records_deleted AS "#D",
NVL(x.elapse_time, round((x.updated_on - x.created_on) * 86400)) AS secs,
x.status
FROM (SELECT r.top_level_execution_audit_id AS root_id,
r.parent_execution_audit_id AS parent_id,
r.execution_audit_id AS audit_id,
r.created_on,
r.updated_on,
coalesce(substr(m.map_name, 2, length(m.map_name) - 2), r.execution_name) AS map_name,
r.return_result,
s.elapse_time,
m.run_status,
s.number_records_selected,
s.number_records_inserted,
s.number_records_updated,
s.number_records_merged,
s.number_records_deleted,
s.step_name,
s.run_status as step_status,
s.elapse_time as step_time,
s.step_id,
p1.VALUE AS p1,
coalesce(e.run_error_message, msg.message_text, s.run_status, m.run_status, r.return_result, 'RUNNING') AS status,
msg.message_text
FROM all_rt_audit_executions r,
all_rt_audit_map_runs m,
all_rt_audit_map_run_errors e,
all_rt_audit_step_runs s,
(SELECT execution_audit_id,
message_text
FROM all_rt_audit_exec_messages
WHERE message_line_number = 1) msg,
(SELECT p.execution_audit_id,
p.parameter_name,
p.parameter_kind,
p.VALUE
FROM all_rt_audit_execution_params p
WHERE p.parameter_kind = 'CUSTOM'
AND p.parameter_name = 'OTIM_ID') p1
WHERE 1 = 1
AND r.execution_audit_id = p1.execution_audit_id(+)
AND m.map_run_id = e.map_run_id(+)
AND m.map_run_id = s.map_run_id(+)
AND r.execution_audit_id = m.execution_audit_id(+)
AND r.execution_audit_id = msg.execution_audit_id(+)) x
WHERE 1 = 1
AND x.created_on > trunc(SYSDATE) - 0
CONNECT BY x.parent_id = PRIOR x.audit_id
START WITH x.parent_id IS NULL
ORDER SIBLINGS BY x.root_id DESC, x.audit_id DESC, x.step_id DESCMaybe your are lucky and it will work also with OWB 10.1.
Regards,
Carsten. -
Running groups of procedures in process flow
I am having an impossible time trying to conceptualize a solution to the following problem:
I am trying to build a process flow in OWB 9.2.0.2.8 that executes a group of procedures before continuing with the rest of the workflow which executes further mappings.
I have a java stored procedure that must be executed daily to produce text files of securities prices to be loaded into a datawarehouse. The Oracle JVM does not run multi-threaded code in stored procedures, so to speed up the acquisition of the text files, I run 40 simultaneous OEM jobs against the stored procedure to produce a de facto 40-threaded process. This works well, but is not integrated into the workflow to load the text files into the database.
I would like to integrate the 40 OEM jobs into a process workflow: (1) Run all 40 procedures simultaneously to acquire the text files, (2) on success of all 40, execute the mapping to load the datawarehouse. This would be simple if the text file acquisition could be done in one procedure, but to iterate sequentially over all the securities takes too long - hence my effort to run jobs simultaneously by security groups.
Is it possible to build a process to run a group of procedures simulteously?
Perhaps I must move the datawarehouse loading process that follows the text file acquisition out of OWB by having the java stored procedure itself execute the load.Many thank for the reply.
If I were to employ a fork to execute the java stored procedures in parallel, I do not understand how to set the next stage in the process, namely the mapping of an external table to the datawarehouse tables, to execute on the condition that ALL the forked processes have finished in success.
For example, page 10-24 of the users manual shows ftp, FDS, and Email activities executed in parallel after a mapping. I need the next activity after the FTP, FDS, and email to execute on success of FTP, FDS, and email as a group - like a join in the workflow. This is the issue.
Rather than use an external process to invoke the java stored procedure, I create a pl/sql procedure wrapper like :
PROCEDURE GET_STOCKPRICES AS
language java name 'prices.getthestockprices();'
to enable me to call the wrapper as a private procedure from OWB.
Currently this java stored procedure uses regular expressions to build 40 different text files of proper format to load into the warehouse. A separate job consolidates each text file into one file that is used as the external table to load the datawarehouse. -
How to schedule mappings to process flows?
Hi,
I have shceduled a calendar (Job) which is referring to a process flow. But how can I make sure that the mappings are referring to the same process flow?
E.g. I have scheduled job at 10 AM , I have created the process flow for 10 AM referring to the same scheduled job.
My understanding here is there is a hierarchy : Scheduled jobs > Process Flows > Mappings
I have configured the process flow to run it at a scheduled job, now I want the mappings to understand to run at the same time as that of the schedule.
And also when I start the process flow all the mappings should get executed.
Is there any parameter to tell the process flow that all these mappings falls under you.
Hope I have made myself clear.
Can anyone please look into this query?
Thnks in adv..When I double click and open my process flow I am not able to see any mapping. We have stored procedures written:
ln_exists NUMBER;
LS_ERROR VARCHAR2(200);
LD_START_PERIOD_DT DATE;
LD_END_PERIOD_DT DATE;
EX_PF_NOT_VALID EXCEPTION ;
EX_SUB_PF_NOT_VALID EXCEPTION ;
EX_LAYER_NOT_VALID EXCEPTION ;
EX_MODULE_NOT_VALID EXCEPTION ;
EX_DATE_FORMAT_ERR EXCEPTION ;
BEGIN
--1: Check the Process Flow parameter value
IF IP_PF IS NOT NULL THEN
select count(*)
into ln_exists
from adm_process_flow_par
where process_flow = IP_PF;
IF ln_exists =0 THEN
RAISE EX_PF_NOT_VALID;
END IF;
END IF;
--2: Check Sub Process Flow Parameters value
IF IP_SUB_PF IS NOT NULL THEN
select count(*)
into ln_exists
from adm_sub_pf_par
where sub_pf_code = IP_SUB_PF;
IF ln_exists = 0 then
RAISE EX_SUB_PF_NOT_VALID;
END IF;
END IF;
--3:Check Layer Code Parameter Value
IF IP_LAYER IS NOT NULL THEN
select count(*)
into ln_exists
from adm_lookup_code
where lookup_type='LAYER_CODE'
and lookup_code= IP_LAYER;
IF LN_EXISTS =0 THEN
RAISE EX_LAYER_NOT_VALID;
END IF;
END IF;
--4: Check Module Code Parmeter Value
IF IP_MODULE IS NOT NULL THEN
select count(*)
into ln_exists
from adm_lookup_code
where lookup_type IN ('SOURCE_SYSTEM','SUBJECT_CODE')
and lookup_code= IP_MODULE;
IF LN_EXISTS =0 THEN
RAISE EX_MODULE_NOT_VALID;
END IF;
END IF;
--5: Check start Period date & End Period Date Format
BEGIN
IF IP_START_PERIOD_DT IS NOT NULL THEN
LD_START_PERIOD_DT := TO_DATE(IP_START_PERIOD_DT,'YYYY-MM-DD');
END IF;
IF IP_END_PERIOD_DT IS NOT NULL THEN
LD_END_PERIOD_DT := TO_DATE(IP_END_PERIOD_DT,'YYYY-MM-DD');
END IF;
EXCEPTION
WHEN OTHERS THEN
RAISE EX_DATE_FORMAT_ERR;
END;
EXCEPTION
WHEN EX_DATE_FORMAT_ERR THEN
LS_ERROR := 'Date Format is not valid ,please check (FORMAT: YYYY-MM-DD HH24 /YYYYMMDDHH24)';
SP_ERROR_REC(NULL,IP_PF,IP_SUB_PF,IP_MODULE,IP_LAYER,NULL,NULL,LS_ERROR,'SP_CHECK_PARAMETER_VALID',NULL);
RAISE_APPLICATION_ERROR(-20002,LS_ERROR);
WHEN EX_PF_NOT_VALID THEN
LS_ERROR := 'The Process Flow Value is not valid ,please check table adm_process_flow_par';
SP_ERROR_REC(NULL,IP_PF,IP_SUB_PF,IP_MODULE,IP_LAYER,NULL,NULL,LS_ERROR,'SP_CHECK_PARAMETER_VALID',NULL);
RAISE_APPLICATION_ERROR(-20002,LS_ERROR);
WHEN EX_SUB_PF_NOT_VALID THEN
LS_ERROR := 'The Sub Process Flow Value is not valid ,please check table adm_sub_pf_par';
SP_ERROR_REC(NULL,IP_PF,IP_SUB_PF,IP_MODULE,IP_LAYER,NULL,NULL,LS_ERROR,'SP_CHECK_PARAMETER_VALID',NULL);
RAISE_APPLICATION_ERROR(-20003,LS_ERROR);
WHEN EX_LAYER_NOT_VALID THEN
LS_ERROR := 'The Layer Code Value is not valid ,please check adm_lookup_code(lookup_type="LAYER_CODE")';
SP_ERROR_REC(NULL,IP_PF,IP_SUB_PF,IP_MODULE,IP_LAYER,NULL,NULL,LS_ERROR,'SP_CHECK_PARAMETER_VALID',NULL);
RAISE_APPLICATION_ERROR(-20004,LS_ERROR);
WHEN EX_MODULE_NOT_VALID THEN
LS_ERROR := 'The Layer Code Value is not valid ,please check adm_lookup_code(lookup_type IN ("SOURCE_SYSTEM","SUBJECT_CODE")';
SP_ERROR_REC(NULL,IP_PF,IP_SUB_PF,IP_MODULE,IP_LAYER,NULL,NULL,LS_ERROR,'SP_CHECK_PARAMETER_VALID',NULL);
RAISE_APPLICATION_ERROR(-20005,LS_ERROR);
END;
Can anyone throw some light on this issue?
Edited by: user11001347 on May 11, 2010 11:46 PM -
hi to all
How to run the database procedure in Forms while the program Unit in forms is also having the same name of the database procedure.Please address this question to the Portal Applications Forum at http://forums.oracle.com/forums/forum.jsp?forum=7
-
Job Schedular status running after killing process flow from OWF monitor
Hi,
PROBLEM SCENARIO:
Scheuled job called 'TEST' kicks off process flow called 'Child_load' under 'Parent_load_all' and gets stuck. I go into OWF (ORACLE WORK FLOW MONIOTOR) and kill both the process flows and then complete the Process flow run manually from OWB. Now, next day the scheduled job 'TEST' should execute 'Parent load all', but it doesn't do that instead it shows 'TEST' in 'Running' STATUS from yesterday when I see it in toad under Sched.Jobs. I have to drop the scheduled job and redeploy it from OWB in order for it to work.
Any idea why its doing that?
Thanks in advance.hello
the status of the scheduled job should be 'running'
here is what i received from oracle support on that matter:
A scheduled job is always in BUSY status, till the moment it is stopped in the Control Center Manager.
If you open the Control Center Manager, goto the Location and expand the plus "+" in front of Scheduled Jobs. There should be your job DLOAD_JOB.
On the right bottom appears the dialog Control Center Jobs. And there is a tab "Scheduled". Click on that tab and you should see a green arrow in front of the job DLOAD_JOB. This means the job is running. (In fact it is not running but waiting to be executed again according scheduled time)
To stop the job to run according schedule, you can right-click on the job and choose "Stop". The green arrow will disappear and the status in the Repository Browser will be "Completed"
To start the job again, you can right-click on the job and choose "Start". The green arrow will appear again and the status in the Repository Browser will be "Busy"
so according to this the scheduler job should be in status running;
why it does not trigger your processes however is another thing;
rgds -
How to configure FTP in Process Flow
I'm having troubles configuring an FTP activity in my process flow. Any clue how that should be done?
The documentation does not tell that much. I added the following to my parameter list in "Activity Panel"
/${Working.Host}=100.1.15.236/${Working.User}=XYZ/${Working.Password}=xxxxx/${Working.Rootpath}=C:\Nova\Data/${Remote.Host}=192.168.100.100/${Remote.User}=oracle/${Remote.Password}=xxxxx/${Remote.RootPath}=/export/home/oracle/
where "/" is the variable delimiter. The deployment went successfully, but when I try to execute, it hangs at the FTP activity and generate an error when cancelled.
Any help will be appreciated
Thanks,
ReneURGENT!!!
i have included FTP activity in my process flow, i can able to FTP the file to the remote server.
I have two transitions and point to two end processes, one is end-success and the other one is end-error. But even if the FTP process completed and file have been successfully send to the remote server, still the process ends with End-Error.
If the FTP activity couldnt able to send the file due to some other reason still the process ends with the end-error.
Can any one give me some clues. -
How to run the application process
Dear all,
I create an application on demand and when I called it it seems to return nothing.
How I can run only the process ?
Thanks
EricHi,
It seems you want to do onClick or onmauseover event as I see your javascript function. As I did something like you probobly want to do, Yuo have to first declare javascript file into static files (shared component) then you need to declare onclick/onmauseover event somewhere on the page ( link in the report or something ...) and finally you have to build process on demond to show what you want to see after onclick/onmauseover event.
This is what i did and it works fine. -
Re-Run Partially Completed Process Flow
OWB Version:10.2.0.2.8
All,
Is there a way to re-run a process flow from a point of failure i.e. if Process Flow A has 10 steps and failed on step 3, after doing some remedial work, I want to re-run the process flow from step 3 to completion. Any help with this would be much appreciated.Login to SQL PLUS as Workflow owner and run
call wf_purge.Move_To_History(null,null)
Search this forum for posts from Oleg from Kiev. He knows what he is doing and his posts helped me a lot. I have seen few posts from him related to this subject.
Vladimir -
How to Call procedure In Processes
Hi,
i have create Procedure abc.
How can i call abc procedure in Processes in Page Processing .
i want to call that procedure when i press submit button.
Thankshi, thanks to reply me.
Like
begin
abc();---Procedure name
end;
it's correct or not.
Thanks -
How to run a BPEL process once every morning?
Hi All!
I am working on a BPEL process which will send email greetings to one/group depending on the day it is, like birthday/national festivals etc. I want this process to run by itself every morning once,and do the work.
But I don't know how to make the process run once every morning? Please let me know how to schedule a BPEL process to run every 24 hours.
Thanking in advance.
Regards,
Deepika.Some other links on scheduling and bpel :
http://technology.amis.nl/blog/?p=1372
http://clemensblog.blogspot.com/2006/04/bpel-scheduling-reoccuring-processes.html
Running BPEL service as a scheduled process... -
How to run a BPEL process in jdeveloper tool instead of BPEL process manage
is there a way to run the bPEL process in jdeveloper itself ?
Not really, Oracle introduced test seuite in 10.1.3.3 which allows you to test without calling the endpoints. Probably not really what you are after but may be helpful down the track.
http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/testsuite.htm
cheers
James -
Error when running the OWB process flow from the shell script
Hi,
I am able to deploy the process flow succesfully but when I execute the process flow from the shell script,I am getting the following error.Previously it worked fine.
I had to make some chnage in the IP address,so i had to deploy again.
Connected.
SQL> @/oracle/product/owb92028/owb/rtp/sql/oem_exec_template.sql OWB_RTR LOC_P_REL PROCESS P_W_SOURCE "," ","
Elapsed: 00:00:00.00
Elapsed: 00:00:00.01
Stage 1: Decoding Parameters
| location_name=LOC_P_REL
| task_type=ProcessFlow
| task_name=P_W_SOURCE
Stage 2: Opening Task
declare
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "OWB_RTR.WB_RT_API_EXEC", line 17
ORA-06512: at "OWB_RTR.WB_RT_API_EXEC", line 137
ORA-06512: at "OWB_RTR.WB_RT_API_EXEC", line 164
ORA-06512: at line 205
Thanks in advance.
VinayHi Kamal and kanakam kolla,
This is just to let you know that,I solved my problem little differently by creating a new location and deployed the process flow.Now my process flow is working fine when i call from the shell script.What i see is that, it does not update properly when we update and redeploy the process flow.So far this is the work arround i could think off and i succesfully tested this.
Thank you Kamal and kanakam kolla,for giving a thought towards my problem.
Thanks
Vinay -
We are in the process of converting from one ETL tool to Data Services 3.0. I have a workflow with several data flows underneath it and have to make a change to the data flow. Is there a way to run just the dataflow without executing the whole job? For example, I just want to run DF4 below.
WF --> DF1 --> DF2 --> DF3 --> DF4 --> DF5
Thanks,
DanAlthough this topic is solved, just a few clarifications:
When you create a new job and drag 'n drop the workflow/dataflow into it, you are not creating a second object (class), you are calling the object a second time (instantiate). It is like a BASIC program. I created a sub-procedure and called in DF1. In my filesystem I can see that sub-procedure as a seperate file in the folder object_library -> dataflow_procedures.
Then I have two main programs, both just calling that sub-procedure with "gosub DF1".
In the job you see the calls, when you drill into DF1 you see its definition and what object it calls.
Using a conditional is okay but not adviced in my opinion. You are losing too much, the handling is complex and development takes a few seconds longer. my two cents only.
https://wiki.sdn.sap.com/wiki/display/BOBJ/Testing -
How to run procedure in package?
Hi,
I'd like to know how I can run the following procedure successfully. here is the package and the procedure.
Code:
create or replace PACKAGE TEST_PK AS
/* TODO enter package declarations (types, exceptions, methods etc) here */
type project_type is record(c1 test.visits%TYPE);
type project_type1 is ref cursor return project_type;
procedure myproc_sp(result1 in out project_type1);
END TEST_PK;
The body is bellow:
create or replace PACKAGE BODY TEST_PK AS
procedure myproc_sp(result1 in out project_type1) AS
BEGIN
/* TODO implementation required */
open result1 for
select test.visits from TEST;
END;
END;
On SQL-PLUS I try to do the following:
variable c1 refcursor
execute TEST.MYPROC_SP(:c1)
And as soon as I type that I get the following error message:
Error Msg
BEGIN proc_name(:);
ERROR at line 1:
ORA-06550: LINE 1, COLUMN 7:
PLS-00201: identifier 'proc_name' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statment ignored
Can someone tell me what is wrong with this process and how to fix it?
Thanks for your help.
GeneBy using PL/SQL.
DECLARE
TYPE return_cur IS REF CURSOR RETURN temp_jl%ROWTYPE;
p_retcur return_cur;
rec temp_jl%ROWTYPE;
BEGIN
for c_rec in (SELECT * FROM temp_jl)
LOOP
rec := c_rec;
dbms_output.put_line('Out put is : '||rec.name || ' - ' || rec.name2);
end loop;
END;
Maybe you are looking for
-
Sceen shattered on touch, how much to repair and where
the screen shattered, can it be fixed and around how much will it cost and who does it?
-
PRE 11 - import from Canopus 110
I used PRE 10 a couple of times to imort VHS through a Canopus 110, but didn't really too much, just kinda played with a couple of VHS tapes. Just got PRE 11, and the import process seems different. I *think* that the import process PRE 10 had, the c
-
[Desktop] Single key for "add to play queue"
Remember the Q button in winamp? You selected a track, pressed that button, and it would be added to the queue of songs to be played next before resuming the ordinary playlist. It would be awesome if Spotify had a similar shortcut.
-
Employee and Geography hierarchy in HR Analytics
Hi I would like to know if there is an Out of the Box hierarchy for employee[for eg. state manager, county manager, city manager] and Geography[ for eg. country, state, city] in HR Analytics. Thanks
-
Which Function is executed ALV WD
Hi All, I need help urgently depending on some Issues about ALV WD. I have in my ALV the Standard Functions like Append Row and Delete Row. How can I retrieve,which one of the both Functions is executed? I want to retrieve it and handle it in ON_DATA