Useful Information about Workflow Background Process Concurrent Program

By | September 25, 2011

What is the purpose of Workflow Background Process

Workflow Background Process is a concurrent program which is run for processing deferred activities, timed out activities, and stuck processes using the parameters specified. The background engine executes all activities that satisfy the given arguments at the time that the background engine is invoked. This procedure does not remain running long term, so you must restart this procedure periodically. Any activities that are newly deferred or timed out or processes that become stuck after the current background engine starts are processed by the next background engine that is invoked.

Workflow Background Process is run with the help of Workflow Background Engine which is PL/SQL Procedure which runs this concurrent program with specified parameters.

Workflow Background Process Parameters:

  • Item Type – Specify an item type to restrict this engine to activities associated with that item type. If you do not specify an item type, the engine processes any activity regardless of its item type.
  • Minimum Threshold – Specify the minimum cost that an activity must have for this background engine to execute it, in hundredths of a second.
  • Maximum Threshold – Specify the maximum cost that an activity can have for this background engine to execute it, in hundredths of a second. By using Minimum Threshold and Maximum Threshold you can create multiple background engines to handle very specific types of activities. The default values for these arguments are null so that the background engine runs activities regardless of cost.
  • Process Deferred – Specify whether this background engine checks for deferred activities. Setting this parameter to Yes allows the engine to check for deferred activities.
  • Process Timeout – Specify whether this background engine checks for activities that have timed out. Setting this parameter to Yes allows the engine to check for timed out activities.
  • Process Stuck – Specify whether this background engine checks for stuck processes. Setting this parameter to Yes allows the engine to check for stuck processes.

 Note: Make sure you have a least one background engine that can check for timed out activities, one that can process deferred activities, and one that can handle stuck processes. At a minimum, you need to set up one background engine that can handle both timed out and deferred activities as well as stuck processes.

How to run Workflow Background Process from Oracle Applications?

1. Responsibility: System Administrator
2. Navigate: Requests > Run
3. Select Workflow Background Process from the list of values.
4. Enter parameters:
Item Type = OM Order Line
Process Deferred = yes
Process Timeout = yes
5. Submit concurrent program.

How to run Workflow Background Process from SQL*Plus?

BEGIN
  wf_engine.background (itemtype=>NULL ,
                        minthreshold=>NULL ,
                        maxthreshold=>NULL ,
                        process_deferred=>TRUE ,
                        process_timeout=>FALSE ,
                        process_stuck=>FALSE);
END;

How to run Workflow Background Process from Unix?

$ $FND_TOP/Admin/Sql/wfbkg.sql

Performance Tuning of Workflow Background Process

Workflow Background Process picks and executes all eligible workflow items related to Oracle Modules like OM,AP,PO,WSH,OKL,ASN,WIP, etc

Hence if ItemType parameter is not specified the workflow background process runs will first check for all eligible workflow activities and then run for all eligible workflows this will result in poor performance. It is preferable to execute the Workflow Background Process with specified ItemType.

References: Oracle Workflow Administrator Guide

Please do comment your views if you like this post!

WOW! Did you like this post? We'll send more interesting posts like Useful Information about Workflow Background Process Concurrent Program to you!
Enter your Email Address:
  • Abhi Fhigh

    Thank You DNA..You saved my life..You are really sooooooooooooooooo greaaaaaaatttttttttttttttttt

  • Riadbouhafs

    Hello;
    How can I specify more than one item type?
    Thanks

    •  Hi Riadbouhafs,You can run multiple requests with different item types but make sure they don’t overlap.Thanks,Shailender

  • Pingback: Setup to get access to OLM Administrator page | OracleAppsDNA()

  • afcrocks

    very useful

  • Hi,

    I need to run the WFBP for a particular SO line. Is it possible ?

    Thanks
    Satya

  • santhosh

    awesome ……….good work

  • norman

    Hi, which item types should I choose if I want to send shipping information to AR interface? Thaks

    • Hello Norman,

      Try running with ‘OM Order Line’ as Item Type.

      Thanks,
      Shailender

      • norman

        Thanks for your quick reply.

  • vikram

    Its really Good info. , I have one question if my WF is down lets say for test instance and if I run WF background process what would happen .Because I am testing one performance issue on WF background process on TEST instance on which WF is down , I ran request for first time and it took 30 minutes and in next run with same parameters it took only 8 minutes

    • Hi Vikram,

      It all depends on the parameters you pass while running the workflow background process. Suppose if you have chosen Item Type as ‘OM Order Line’ and Process Deferred as ‘Yes’ then the WF engine would pick all the deferred activities (work items which are in deferred status) of OEOL workflow item type and process them. The more the number of work items the more time it takes to run. You can find more information of the work item status in WF_ITEM_ACTIVITY_STATUSES table.

      Note that its not possible to run workflow background process only for one item key.

      Thanks,
      Shailender

  • Pingback: Basics of Business Events and step by step process to subscribe to a Business Event | OracleAppsDNA()

  • Rambo

    hi,

    Thanks for sharing this useful information.
    In my environment we always have very high ready count when I check from wf_deferred_table_m (more than 70K sometimes). What do you suggest in this scenario? We tried to run multiple Workflow Background Process (OM Order Line,,Y,N,N) which worked sometime to reduce the count but not always. Is using max/min threshold parameters to run multiple request would be helpful ?

    Thanks in advance.

    • Hello Rambo,

      Since the records are in ‘Ready’ status, I hope scheduling three separate Workflow Background processes – one each for timeout, deferred and stuck would solve the problem.

      Thanks,
      Shailender

  • Ruth

    Hi – i know this question is out of topic but I would really appreciate it if anyone knows this. Are there any reports that can be run to centrally identify items that are pending approvals? For example a timecard approval pending report, or expenses pending or purchases pending? using concurrent program? thanks in advance! more power!