OM:Manual Transaction in work flow

In Order management, sometimes, we need to progress order, one example is 'Schedule - Eligible'. How is this implemented in Workflow?  
Basically, in Oracle workflow builder, we can see order goes to "Schedule - Eligible" if 'Schedule' return on hold, then when user click "progress order" , "Schedule - Eligible" display in LOV. This is called Manual transactions in workflow. 
Feel very tedious to progress order one by one?  Well, there are two approach.
1. modify workflow "Schedule - Eligible" to have timeout and schedule "Workflow Background Engine" with Timeout set to Yes. The the notified activity 'Schedule - Eligible' will have a not null due_date. Workflow background engine will pick this based on following sql:
    select
         S.ROWID ROW_ID
    from WF_ITEM_ACTIVITY_STATUSES S
    where S.DUE_DATE < SYSDATE
    and S.ACTIVITY_STATUS in ('ACTIVE','WAITING','NOTIFIED',
                              'SUSPEND','DEFERRED');
When the activity has timeout, DUE_DATE in this table will have a not null value and this value will be advanced by workflow background engine .
But unfortunately, workflow background engine will pick up this order too frequently when there's on hold and return to 'Schedule - Eligible' which will cause some performance issue.  See wf_engine package, processtimeout procedure. 

2.fortunately, oracle has concurrent programs to do this. "Schedule Order" is specific for this purpose. it simply simulate the 'progress order' for those 'schedule - eligible' order lines.  

There are similar programs such as "Inventory Interface - Non Ship" to progress orders stuck at "Inventory Interface - Eligibile" activity. 

It's possible that Oracle has respective concurrent program for each "* - Eligible" activity. 

Ref:
the underlying package of "Inventory Interface - Non Ship" is OE_INV_IFACE_CONC.Request and 
"Schedule - Eligible" is OE_SCH_CONC_REQUESTS.Request

你可能感兴趣的:(Oracle,Apps)