問題: 當數千筆的PO Output for Communication排隊執行, 會嚴重拖慢大程式的進度, 在已切不同concurrent manager執行的狀況下, 設定互斥並無預期中的效果, 最後想到只有hold一途.
試過之後可行, 作法如下.
hold_flag : Y/N
PO Output for Communication
concurrent_program_id : 45071
phase_code : R (Pending)
status_code: R (Normal)
--find requests
select * from fnd_concurrent_requests
where concurrent_program_id = 45071
and request_date> trunc(sysdate) -2
and phase_code = 'P' --(Pending)
and status_code = 'I' --(Normal)
--apply hold
update fnd_concurrent_requests
set hold_flag = 'Y'
where concurrent_program_id = 45071
and request_date> trunc(sysdate) -2
and phase_code = 'P' --(Pending)
and status_code = 'I' --(Normal)
--remove hold
update fnd_concurrent_requests
set hold_flag = 'N'
where concurrent_program_id = 45071
and request_date> trunc(sysdate) -2
and phase_code = 'P' --(Pending)
and status_code = 'I' --(Normal)
and hold_flag = 'Y'