How to Manage Oracle Application Workflow Background Process Concurrent Program

本文深入探讨了Oracle Apps中Workflow Background Process(CP)在11i和R12版本中的作用与配置策略。重点讨论了如何通过合理设置参数,如ItemType、MinimumThreshold、MaximumThreshold等,来优化CP的执行频率、处理流程状态以及控制执行流程数量,以避免性能问题。同时,提出了分别针对不同状态的工作流活动进行单独处理的建议,以提高系统效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

In this post I will talk about concurrent program (CP)  "Workflow background process" , available in all the 11i and R12i releases.This is very critical and important program.

Purpose of this program is to progress any of the workflow activity which is in following status.

1.Deferred.
2.Time Out
3.Stuck.



This CP has  2 Required  Parameters and  3 Optional  Parameters.Majority of the customers schedule this CP at frequency any time  between 3 minutes to 1 hour.



And most of the issues that I have heard about this CP are related to performance ( Though another area where I heard complaint is this CP is not picking the lines that are in Deferred status , but I will not talk about that in this post , please check my other posts if you want to know more about  reason why this CP is not picking lines )  .As per issues related to performance my take is this is a a stable program and work as per expectations if scheduled to run in proper manners. Based on my discussions with many customers I noticed that customer encounters performance issues because of the way they scheduled this CP.

Parameters for this CP are .
1.Item Type
2.Minimum Threshold
3.Maximum Threshold 
4.Process Deferred
5.Process Timeout
6.Process Stuck

# 1
If we don't specified "Item Type" parameters then workflow background process will execute all eligible workflow across all the Oracle Modules (like OM/WSH/PO/AP etc.....) and that might rmeans processing 100s of lines (based on your transaction volumes) and hence poor performance. I don't see any business justification to run this CP with "Item Type" as Blank.
Best recommendation are 

  • Schedule separate CP for every Oracle Module and don't leave item type BLANK
  • In case you really has need to run this program with Item type Blank then run that during off-peak hours ( in Night/week end)


#2
Do not run this CP with  Parameter

4.Process Deferred  = Yes
5.Process Timeout   = Yes
6.Process Stuck       = Yes

Why on earth someone want to process TOGETHER all the workflow that are  at
Deferred,   timeout  and  Stuck  activity , especially when you have scheduled this CP for every 5 - 20 minutes range.(These are possibility that some of the activities that are  Time out  for valid reason and should not be process after every 5 minutes), but with the above setting CP will pick all the lines for processing , though lines that are Timeout etc will not be processed till they reach their timeout thresh hold ( but still picked).

Best recommendation are 
It is good choice to process Deferred , Timeout & stuck activities separately .

Most of time business need is to process the Deferred records quite often and process Time Out/Stuck once -twice (at least not after every 5 minutes) in a Day

#3
Schedule this CP for a appropriate frequency. E.g if your volume load is to process 20,000-30,000 lines in 1 hour then it is good idea to schedule it after every 5 minutes .Scheduling it after every 1 hour with this much volume is not a good Idea.

IMPORTANT - Above are my view & experience

Note - Pls. Refer Oracle Apps documentations /Guides for  More details.


About parameter threshold:

First of the purpose of the workflow background process is to do the execution at the backend/backdoor rather doing executing at runtime (that might results in HUNG screen).
Secondly If we are dealing with the Workflow, we can tell the workflow engine to DEFER few of the activities (as per our requirement) by setting the Cost > = 50 hundredths of a second.
So that means if in your workflow there is activity that you don't want to execute immediately, but want workflow background process to process that set the Cost of that activity in workflow builder greater that 50.
Above were just some basics.
Now let's come to your question, Let’s says we have a multiple workflow branches for a process Name PROCESS-1.Let's take example of multiple flows. Below are examples
1.PROCESS-1_Main_frames
2.PROCESS-1_AS400
3.PROCESS-1_PEOPLESOFT
4.PROCESS-1_SAP

Now In all these Process, let's says we have one Defer activity D_ACTIVITY_1 and , as we know when we run workflow background process pick anything which is in DEFEER status, so that means if all the 4 process are in D_ACTIVITY_1, then execution of WF background process will pick all the 4 and process. But business requirement is, they don’t want to process all the 4 branches all together , but they want to execute theses process branches separately.

In that case set the cost of D_ACTIVITY_1 in each process different
Lets says 

1.PROCESS-1_Main_frames - 60
2.PROCESS-1_AS400 -70
3.PROCESS-1_PEOPLESOFT -80
4.PROCESS-1_SAP -90

So when you run your WF background process, pass the mix threshold parameter = 60 and max = 75
In that case it will pick the Process 1 and 2 and not the 3 and 4, so that way you can control what to process and what not.


Reference: http://eoracleapps.blogspot.hk/2009/10/oracle-application-workflow-background.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值