Oracle EBS Interface/API(2)--销售订单释放暂挂(Sales Order Release Holds)
2015-04-15 17:37
549 查看
Oracle EBS对客户启用信用额度,若某客户超出信用额度和销售订单行非关闭状态时,则所有销售订单或销售订单行暂挂提示Credit Check Failure。当客户的收款正常以后,需要对销售订单释放暂挂操作比较痛苦的事情。
通客制化开发调用API批量释放,API函数:OE_Holds_Pvt.Release_Holds
其主要核心代码例实如下:
其中“l_release_reason_code”来源释放原因代码:RELEASE_REASON
N:OM\Setup\QuickCodes\Order Management;
用户以根实需要可以添加原因代码。
个人建议客制化开发批量释放暂挂,调用如下二个API包,原因:部分暂挂系统强制不能释放或者设置某一些职责不能释放暂挂。
1.销售订单题头释放暂挂API包:OE_Holds_Pvt.process_release_holds_orders
2.销售订单行释放暂挂API包:OE_Holds_Pvt.process_release_holds_lines
系统强制不能释放暂挂的如下三种暂挂:
通客制化开发调用API批量释放,API函数:OE_Holds_Pvt.Release_Holds
参数 | 描述 |
p_order_tbl | 定义记录表(或索引表)数据类型,有二列分别为Header_Id(销售订单题头ID:OE_ORDER_HEADERS.HEADER_ID%TYPE)和Line_Id(销售订单行ID:OE_ORDER_LINES.LINE_ID%TYPE) |
p_hold_id | 暂挂ID |
p_release_reason_code | 释放原因代码 |
p_release_comment | 释放备注说明 |
x_return_status | 输出参数,是否执行成功参数,若值为S,则表示成功。若执行失败,则输出为E或U |
x_msg_count | 输出参数,若执行成功,则为0;否则输出错误信息的个数 |
x_msg_data | 输出参数,若执行成功,则为空,否则输出错误说明信息 |
Declare l_return_status Varchar2(300); l_msg_data Varchar2(3000); l_msg_count Number; l_order_tbl OE_HOLDS_PVT.order_tbl_type; l_Org_id Number := 114; l_hold_id Number; i Number := 0; l_release_reason_code OE_HOLD_RELEASES.RELEASE_REASON_CODE%TYPE; --释放原因 l_release_comment OE_HOLD_RELEASES.RELEASE_COMMENT%TYPE; --释放备注 Cursor Cr Is SELECT hdra.header_id, hdra.order_number, hsrc.hold_source_id, hsrc.hold_id, hlda.line_id FROM oe_order_headers_all hdra, --销售订单题头 oe_order_holds_all hlda, --销售订单行暂挂明细 oe_hold_sources_all hsrc, --暂挂解挂明细 oe_hold_definitions hdef --暂挂定义表 WHERE 1 = 1 AND hdra.order_number = '1110032000' --销售订单編码 AND hdra.header_id = hlda.header_id AND hlda.hold_source_id = hsrc.hold_source_id AND hsrc.hold_id = hdef.hold_id AND hlda.released_flag = 'N' Order By hsrc.hold_id; Begin fnd_client_info.set_org_context(l_Org_id); l_release_reason_code := 'MANUAL_RELEASE_MARGIN_HOLD'; l_release_comment := '测试释放暂挂'; For Rs In Cr Loop If (Nvl(l_hold_id, 0) > 0 And l_hold_id <> Rs.hold_id) Then OE_Holds_Pvt.Release_Holds(p_order_tbl => l_order_tbl, p_hold_id => l_hold_id, p_release_reason_code => l_release_reason_code, p_release_comment => l_release_comment, x_return_status => l_return_status, x_msg_count => l_msg_count, x_msg_data => l_msg_data); If (l_return_status = 'S') Then Dbms_Output.put_line('Release Success!'); Commit; Else dbms_output.put_line('l_msg_data:' || l_msg_data); dbms_output.put_line('l_msg_count:' || l_msg_count); Rollback; End If; i := 0; End If; i := i + 1; l_hold_id := Rs.hold_id; l_order_tbl(i).header_id := Rs.header_id; l_order_tbl(i).line_id := Rs.line_id; End Loop; -- If (Nvl(i, 0) > 0) Then OE_Holds_Pvt.Release_Holds(p_order_tbl => l_order_tbl, p_hold_id => l_hold_id, p_release_reason_code => l_release_reason_code, p_release_comment => l_release_comment, x_return_status => l_return_status, x_msg_count => l_msg_count, x_msg_data => l_msg_data); If (l_return_status = 'S') Then Dbms_Output.put_line('Release Success!'); Commit; Else dbms_output.put_line('l_msg_data:' || l_msg_data); dbms_output.put_line('l_msg_count:' || l_msg_count); Rollback; End If; End If; END;
其中“l_release_reason_code”来源释放原因代码:RELEASE_REASON
N:OM\Setup\QuickCodes\Order Management;
用户以根实需要可以添加原因代码。
个人建议客制化开发批量释放暂挂,调用如下二个API包,原因:部分暂挂系统强制不能释放或者设置某一些职责不能释放暂挂。
1.销售订单题头释放暂挂API包:OE_Holds_Pvt.process_release_holds_orders
参数 | 描述 |
p_num_of_records | 单个或多个销售订单题头ID的记录条数,与下面参数p_record_ids是对应的 |
p_record_ids | 单个或通过逗号分隔多销售订单题头ID,如:p_record_ids=>'345,235,326,984' |
p_hold_id | 暂挂ID |
p_release_reason_code | 释放原因代码 |
p_release_comment | 释放备注说明 |
x_return_status | 输出参数,是否执行成功参数,若值为S,则表示成功。若执行失败,则输出为E或U |
x_msg_count | 输出参数,若执行成功,则为0;否则输出错误信息的个数 |
x_msg_data | 输出参数,若执行成功,则为空,否则输出错误说明信息 |
参数 | 描述 |
p_num_of_records | 单个或多个销售订单行ID的记录条数,与下面参数p_record_ids是对应的 |
p_record_ids | 单个或通过逗号分隔多销售订单行ID,如:p_record_ids=>'2345,4235,5326,6984' |
p_hold_id | 暂挂ID |
p_release_reason_code | 释放原因代码 |
p_release_comment | 释放备注说明 |
x_return_status | 输出参数,是否执行成功参数,若值为S,则表示成功。若执行失败,则输出为E或U |
x_msg_count | 输出参数,若执行成功,则为0;否则输出错误信息的个数 |
x_msg_data | 输出参数,若执行成功,则为空,否则输出错误说明信息 |
名称 | 描述 |
Pending Process Payment Hold | This hold is applied when Process Payment is deferred |
Epayment Failure Hold | This hold is for expected errors returned by iPayment, like invalid data |
Epayment Server Failure Hold | This hold is for any unxpected errors returned by ipayment, like failure to connect to the server |
相关文章推荐
- ORACLE EBS Sales Order销售订单【Open Interface、Open API】
- Oracle EBS Interface/API(3)--采购订单审批
- Oracle EBS更新销售订单行信息API
- Oracle EBS订单的流程(Order->AR)
- 转:Oracle EBS订单的流程(Order->AR)
- Oracle EBS Interface/API(4)--AR贷项通知单
- Oracle EBS Interface/API(5)--AR Invoices 原创 2015年11月20日 09:24:21 1393 系统版本: RDBMS : 9.2.0.
- Oracle EBS订单的流程(Order->AR)
- Oracle EBS订单的流程(Order->AR)
- Oracle EBS订单的流程(Order->AR)
- Oracle - EBS: API@Interface
- Oracle EBS订单的流程(Order->AR)
- Oracle EBS Interface/API(8)-标准展BOM存储过程
- Oracle EBS Interface/API(5)--AR Invoices
- Oracle EBS Interface – OM : Sale Order import
- Oracle EBS订单的流程(Order->AR)
- Oracle EBS订单的流程(Order->AR)
- ORACLE EBS 销售订单(RMA) 开发接口案例
- Oracle EBS订单的流程(Order->AR) .
- Oracle EBS订单的流程(Order->AR)