Oracle EBS中工单状态更改的几点说明

本文详细阐述了工单在不同阶段(如未核发、已核发、完成等)的状态变化规则,包括如何从一个状态转换到另一个状态,特别关注了在不同状态下无法进行的操作。了解这些规则对于有效管理工单流程至关重要。

Job status update

1.      job的几种状态

unreleased --未核发

released--已核发

complete --完成

complete no charges--完成不计费

on hold --保留

cancelled--取消

closed--关闭

2.       开立工单可以给的状态

Unreleased

Released

On hold

3.       关于unreleased

Unreleased可以切成除complete no charge之外的任意状态,可以直接closed

4.       关于released

Released未开始移转时,可以切成除complete no charge之外的任意状态,可以直接切closed

(1)      Released之后有transaction(move/resource/material)则不可以切成unreleased。要发放时需要将之前的transaction回冲,即move回第一站的queue。【这个刚发是可行的の,若是操作不成功,表明al_010

2)切closed时需要注意,有pendingtransactions时会关闭失败,关闭失败的工单可以再进行关闭。若是一直处于pending closed状态,则需要进行check status,然后尝试关闭。

3released状态的什么情况下都不可以切成complete no charge

5.       关于complete

(1)       已经有transaction的就不可以从complete切成unreleased

(2)       没有transaction时可以切为任意状态。

6.       关于complete no charge

(1)       只可以切成completeclosed

7.      On hold

(1)       没有发生过transaction时可以切成除complete no charge外的任何状态

(2)       发生过transaction的不可以unreleasedcomplete no charge,其他都可以

8.      Cancelled

(1)       未进行transactioncancelled可以切成任意状态。

(2)       进行过transaction的不可以unrelease

9.closed可以再打开。  

<think> 我们正在处理一个关于Oracle EBS删除工单中组件的接口调用方法的问题。根据之前的对话历史,用户似乎已经询问过类似的问题,并且我们提供了使用BOM组件删除API的方法。现在用户再次询问,可能是需要更详细的信息或步骤。 回顾之前的回答: - 我们提到了使用`BOM_BOM_DELETE.Delete_Component`过程来删除工单中的组件。 - 给出了该过程的参数说明,包括组件序号、物料清单序列号、组织ID等。 现在用户再次询问,可能是需要更具体的步骤或示例。 因此,我们需要提供: 1. 确认删除组件的正确接口或API。 2. 提供调用该API的详细步骤,包括必要的参数说明。 3. 可能的话,给出一个调用示例(PL/SQL块)。 同时,注意引用站内提供的参考信息。站内引用提到Oracle EBS的变更需要谨慎,因此我们在提供删除操作时也要强调测试和谨慎操作。 根据Oracle EBS的标准API,删除BOM组件通常使用`BOM_BOM_DELETE`包中的过程。其中,删除组件的具体过程是`Delete_Component`。 参数说明: - `p_component_sequence_id`:要删除的组件的序列号(唯一标识)。 - `p_bill_sequence_id`:该组件所属的物料清单(BOM)的序列号。 - `p_organization_id`:组织ID。 - `x_error_message`:输出参数,返回错误信息(如果有)。 调用步骤: 1. 确定要删除的组件的组件序列号(component_sequence_id)和所属物料清单的序列号(bill_sequence_id)。 2. 确定组织ID。 3. 在PL/SQL块中调用`BOM_BOM_DELETE.Delete_Component`过程。 注意:删除操作是不可逆的,务必在测试环境中验证后再在生产环境中执行。 示例代码: ```plsql DECLARE l_component_sequence_id NUMBER := 12345; -- 要删除的组件的序列号 l_bill_sequence_id NUMBER := 67890; -- 组件所属BOM的序列号 l_organization_id NUMBER := 100; -- 组织ID l_error_message VARCHAR2(2000); BEGIN -- 调用删除组件的过程 BOM_BOM_DELETE.Delete_Component( p_component_sequence_id => l_component_sequence_id, p_bill_sequence_id => l_bill_sequence_id, p_organization_id => l_organization_id, x_error_message => l_error_message ); -- 检查是否有错误 IF l_error_message IS NOT NULL THEN DBMS_OUTPUT.PUT_LINE('删除失败: ' || l_error_message); ELSE DBMS_OUTPUT.PUT_LINE('删除成功'); END IF; END; / ``` 此外,用户可能需要知道如何获取组件序列号和BOM序列号。可以通过查询表`BOM_INVENTORY_COMPONENTS`(或视图)来获取组件序列号,通过`BOM_BILL_OF_MATERIALS`来获取BOM序列号。 注意:在Oracle EBS中,删除组件是一个关键操作,可能会影响生产,因此请确保在非生产环境中测试,并备份相关数据。 最后,根据要求生成相关问题。 </think>在Oracle EBS中删除工单组件,主要通过标准接口`BOM_BOM_DELETE`包实现。以下是完整调用方法: ### 核心删除接口 ```plsql DECLARE l_component_sequence_id NUMBER := 12345; -- 要删除的组件序列号 l_bill_sequence_id NUMBER := 67890; -- 所属BOM序列号 l_organization_id NUMBER := 100; -- 组织ID l_error_message VARCHAR2(2000); BEGIN BOM_BOM_DELETE.Delete_Component( p_component_sequence_id => l_component_sequence_id, p_bill_sequence_id => l_bill_sequence_id, p_organization_id => l_organization_id, x_error_message => l_error_message ); IF l_error_message IS NOT NULL THEN RAISE_APPLICATION_ERROR(-20001, '删除失败: '||l_error_message); END IF; END; ``` ### 关键参数说明 1. **组件序列号** ($c_s$) - 通过SQL查询获取: ```sql SELECT component_sequence_id FROM bom_inventory_components WHERE bill_sequence_id = [BOM_ID] AND component_item_id = [物料ID] ``` 2. **BOM序列号** ($b_s$) ```sql SELECT bill_sequence_id FROM bom_bill_of_materials WHERE assembly_item_id = [父物料ID] AND organization_id = [组织ID] ``` 3. **组织ID** ($org\_id$) ```sql SELECT organization_id FROM mtl_parameters WHERE organization_code = [组织代码] ``` ### 注意事项 1. **事务控制** 删除操作需在事务中执行,建议添加显式`COMMIT`或`ROLLBACK` 2. **权限验证** 调用前需检查用户是否有`BOM_DELETE_COMPONENT`权限 3. **依赖检查** 若组件存在子组件,需先递归删除子节点,否则会触发错误: $$ \text{错误代码:} \quad \text{BOM\_DEL\_COMP\_DEPENDENCY} $$ > 重要提示:生产环境操作前务必在测试环境验证,组件删除可能影响工单成本计算和生产追溯[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值