Oracle Apps中如何在INV组织级别设置并发程序的冲突域
如何在Oracle Apps INV组织级别为并发程序设置冲突域(互斥性)
我之前刚好搞定过一模一样的需求,要实现你说的同一INV组织内不能同时运行xyz程序,但不同组织间可以并行执行,核心就是利用Oracle Apps的冲突域结合组织参数来配置,一步步来就行:
第一步:创建专属的冲突域
登录系统管理员职责,导航路径:系统管理员 > 并发 > 冲突域
新建一个冲突域,建议命名为XYZ_ORG_EXCLUSIVE,描述可以写“XYZ程序按库存组织维度互斥”,方便后续维护时快速识别用途。第二步:为冲突域绑定目标程序
在冲突域的「程序」标签页,添加你的并发程序xyz,并把冲突类型设置为互斥(Exclusive)。这一步先让程序和自身建立互斥关系,但还没限定到组织级别。第三步:配置组织维度的冲突规则(关键步骤)
要让互斥规则只对同一库存组织生效,得在冲突域的「参数」标签页添加组织参数:- 参数类别选「系统」,参数名称选择「库存组织(Inventory Organization)」(部分系统版本里可能直接显示为
ORG_ID) - 匹配规则设置为完全匹配(Exact Match)——这样只有当两个并发请求的
ORG_ID完全相同时,才会触发互斥阻塞,不同组织的请求就不会互相影响。
- 参数类别选「系统」,参数名称选择「库存组织(Inventory Organization)」(部分系统版本里可能直接显示为
第四步:把冲突域关联到目标程序
导航到系统管理员 > 并发 > 程序 > 定义,找到xyz程序,切换到「冲突」标签页,将刚才创建的XYZ_ORG_EXCLUSIVE冲突域关联进去,保存配置即可。
测试验证建议
配置完可以测两个场景确认效果:
- 同时提交两个
xyz请求,都选择组织A——第二个请求会进入等待状态,直到第一个执行完成 - 同时提交两个
xyz请求,分别选组织A和B——两个请求会同时启动执行,不会互相阻塞
注意事项
- 确保你使用的职责拥有修改并发程序、冲突域的权限,不然会看不到对应配置项
- 如果后续新增其他库存组织,这个规则会自动生效(因为是基于
ORG_ID完全匹配),如果只想限定A、B、C三个组织,可以给参数绑定一个包含这三个组织的自定义值集,但你的需求默认不需要这一步。
内容的提问来源于stack exchange,提问作者Anshul Ayushya
相关产品推荐
相关产品推荐

