由于第一支PAC:定期请购成本处理程序 请求在运行过程中会自动提交 定期实际成本处理程序 请求,且 这两个请求不存在父子关系,导致 第二个请求尚未处理完成时 第一个请求已经运行完成,这就导致在设定请求集时无法设定 链接阶段。 第二支PAC情况也是一样。
思路:设定 第二支PAC请求 :期间平均成本处理程序 和第三支PAC请求:定期成本分配处理程序,均与 定期实际成本处理程序 不兼容,这样一旦 定期实际成本处理程序 处于运行状态时,第二支和第三支请求即会处于等待状态。如下图:
这样设定完后还有一个问题:当第一支 或者 第二支PAC请求触发 定期实际成本处理程序 请求时由于自身也已经完成,这就导致下一阶段(第二支PAC或第三支PAC)开始运行,所以:定期实际成本处理程序 和 下一阶段(第二支PAC或第三支PAC)很可能同时处于待定状态,这个时候发现即使设定了兼容也存在不确定因素,有时先跑前者,有时又先跑后者,导致最终运行失败(这里我也将 优先级 设定上去测试过,但是结果还是一样)
解决办法:加入 Oracle自带的休眠请求,如下:这边需注意,需要定义下这个请求,标准仅提供了 pl/sql存储过程,未提供这个请求,需新定义下:
这边如果不给默认值,系统标准默认值为:20秒,给了默认值的好处是当请求集运行时还可以调整这个参数值,这边的值需根据系统资源情况来设定:其主要作用就是延迟下一阶段开始 运行,以便让 定期实际成本处理程序 请求已经处于运行状态,这样第二只或第三支PAC由于不兼容自然会处于等待状态(因此这边的休眠时间主要看服务器处理 冲突请求的反映时间快慢,如果慢的话设定时间稍微长点)。
最终设定如下图:
注意:由于第3支PAC均基于前面一支请求,当前面一支请求尚未跑完,后面一支请求是选择不到期间的,因此在PAC期间刚打开时,需要先跑下第一支和第二支请求,这样请求集才能赋值参数。(或者 改变系统标准值集也行)
延迟到 定期实际成本处理程序 请求运行中 则成功处理请求集