【EBS】基于Wip_Massload_Pub.Massloadjobs更新工单,物料需求也更新的问题

问题:
调用api时候,工单上物料需求按BOM进行更新了
调试API:
节点1
wip_bomRouting_pvt.reexplodeJob
当我们设置的Bom_Revision_Date := SYSDATE时候,这里就会使l_expBomRequired变成TRUE,
Allow_Explosion 如果不设置,p_allowExplosion也默认是true在这里插入图片描述在这里插入图片描述

导致进入了跟新物料需求的节点
在这里插入图片描述
处理:
在插入到表Wip.Wip_Job_Schedule_Interface中时候
如果想按BOM刷新工单的物料需求
Bom_Revision_Date := SYSDATE
如果想按工单的物料需求
Allow_Explosion := ‘N’

### 关于 `inv_quantity_tree_pub.query_quantities` 的必要性分析 在 Oracle E-Business Suite (EBS) 中,`inv_quantity_tree_pub.query_quantities` 是用于查询库存数量的一个公共 API 函数[^3]。此函数允许通过传递特定参数来获取当前可用的库存数量信息,例如可交易的数量 (`available to transact`) 和可保留的数量 (`available to reserve`)。 关于是否需要模拟登录的问题,这取决于调用该 API 的上下文环境以及权限管理机制: 1. **API 调用的安全性和会话管理** 如果是在一个已建立的有效会话中执行此 API,则无需额外进行模拟登录操作。这是因为 Oracle EBS 使用基于会话的身份验证机制,在会话有效期内,用户的权限和身份已经绑定到当前事务中[^5]。 2. **无会话环境下的调用需求** 当尝试在一个未初始化会话或者外部应用程序环境中调用 `query_quantities` 时,可能需要先创建并激活一个有效的应用服务器会话。这种情况下通常涉及使用 FND_GLOBAL 或者其他类似的包来进行用户模拟登录处理[^4]。 以下是实现模拟登录的一般方法示例代码: ```plsql BEGIN fnd_global.apps_initialize( user_id => <your_user_id>, resp_id => <responsibility_id>, resp_appl_id => <application_id> ); inv_quantity_tree_pub.query_quantities ( p_api_version_number => 1.0, p_init_msg_list => 'Y', p_commit => 'N', p_validation_level => NULL, p_organization_id => <organization_id>, p_inventory_item_id => <inventory_item_id>, p_tree_mode => apps.inv_quantity_tree_pub.g_transaction_mode, x_return_status => :l_return_status, x_message_count => :l_message_count, x_message_list => :l_message_list, x_att => :l_available_to_transact, x_atr => :l_available_to_reserve ); END; ``` 上述脚本展示了如何利用 `fnd_global.apps_initialize` 来设置必要的全局变量以便正确运行目标 API 功能[^1]。 综上所述,只有当处于非活动会话状态或跨平台集成场景下才需考虑实施模拟登录逻辑;而在常规内部业务流程里则不必担心此类问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值