通常情况下,一般在处理物料搬运单界面要做2个操作:1分配物料搬运单行[Allocate;2处理物料搬运单行[Tansact]。
图17
本节以下内容介绍如何使用API处理物料搬运单。
Step 1 : 分配物料搬运单行;
Step 2 : 处理物料搬运单行;
假如物料搬运单行的Request数量为20,但是订单只保留了19个,可以修改物料搬运单行的Request数量为19吗?答案是肯定的。
图18
API Example
在plsql Developer 中执行脚本Process_Move_Order_Line.sql:
DECLARE
p_api_version NUMBER;
p_init_msg_list VARCHAR2(15);
x_return_status VARCHAR2(1);
p_commit VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
v_Trolin_Tbl_Type INV_Move_Order_PUB.Trolin_Tbl_Type;
v_Trolin_Tbl_Type1 INV_Move_Order_PUB.Trolin_Tbl_Type;
v_Trolin_Tbl_Type2 INV_Move_Order_PUB.Trolin_Tbl_Type;
BEGIN
fnd_global.APPS_Initialize(3334, 50671, 20003);
v_Trolin_Tbl_Type := INV_TROLIN_UTIL.Query_Rows(p_line_id => 4252170); --Move Order Line ID
v_trolin_tbl_type(1).db_flag := FND_API.G_TRUE;
-- 下面可以把要UPDATE的项列出来
v_trolin_tbl_type(1).operation := 'UPDATE';
v_trolin_tbl_type(1).quantity := 19;
v_trolin_tbl_type(1).primary_quantity := 19;
INV_Move_Order_PUB.Process_Move_Order_Line(p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_return_values => FND_API.G_TRUE,
p_commit => FND_API.G_TRUE,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_trolin_tbl => v_Trolin_Tbl_Type,
p_trolin_old_tbl => v_Trolin_Tbl_Type1,
x_trolin_tbl => v_Trolin_Tbl_Type2);
IF x_return_status NOT IN (fnd_api.g_ret_sts_success, 'W') THEN
if (nvl(x_msg_count, 0) = 0) then
dbms_output.put_line('no message return');
else
FOR i IN 1 .. x_msg_count LOOP
dbms_output.put_line(FND_MSG_PUB.get(p_msg_index => i,
p_encoded => 'F'));
END LOOP;
end if;
END IF;
END;
效果验证
图19
此处API效果等同于点击图17’Allocate’按钮,进入物料分配界面操作。
API Example
在plsql Developer 中执行脚本Pick_Release.sql:
DECLARE
p_api_version NUMBER;
p_init_msg_list VARCHAR2(15);
x_return_status VARCHAR2(1);
p_commit VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
v_mo_line_tbl INV_Move_Order_PUB.TROLIN_TBL_TYPE;
v_pick_release_status INV_Pick_Release_PUB.INV_Release_Status_Tbl_Type;
BEGIN
fnd_global.APPS_Initialize(3334, 50671, 20003);
v_mo_line_tbl := INV_TROLIN_UTIL.query_rows(p_line_id => 4252170); --Move Order Line ID
INV_Pick_Release_PUB.Pick_Release(p_api_version => 1.0,
p_init_msg_list => fnd_api.g_true,
p_commit => fnd_api.g_true,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_mo_line_tbl => v_mo_line_tbl,
p_auto_pick_confirm => 2, --1 (yes) or 2 (no) ,
p_grouping_rule_id => NULL,
p_allow_partial_pick => fnd_api.g_true,
x_pick_release_status => v_pick_release_status,
p_plan_tasks => FALSE);
dbms_output.put_line(x_return_status);
IF x_return_status NOT IN (fnd_api.g_ret_sts_success, 'W') THEN
IF (nvl(x_msg_count, 0) = 0) THEN
dbms_output.put_line('no message return');
ELSE
FOR i IN 1 .. x_msg_count LOOP
dbms_output.put_line(oe_msg_pub.get(p_msg_index => i,
p_encoded => 'F'));
END LOOP;
END IF;
END IF;
END;
效果验证
图20
可以看到物料搬运单行已作Allocate,下一步可以做Tansact处理,在此界面可查看分配的详细情况,如图23所是,分配的物料正是前面保留的物料:
图21
此处API效果等同于点击图20’Transact’按钮。
API Example
在plsql Developer 中执行脚本Update_Reservation.sql:
DECLARE
v_mmtt_tbl INV_MO_LINE_DETAIL_UTIL.g_mmtt_tbl_type;
v_mold_tbl INV_MO_LINE_DETAIL_UTIL.g_mmtt_tbl_type ;
out_trolin_tbl INV_Move_Order_PUB.Trolin_Tbl_Type;
v_trolin_tbl INV_Move_Order_PUB.TROLIN_TBL_TYPE ;
v_return_status VARCHAR2(10);
v_msg_count NUMBER;
v_msg_data VARCHAR2(2000);
BEGIN
fnd_global.APPS_Initialize(3334, 50671, 20003);
v_trolin_tbl := INV_TROLIN_UTIL.query_rows(p_line_id => 4252170); --Move Order Line ID
/* TRANSACTION_MODE 1 Online processing 2 Concurrent processing 3 Background processing */
INV_Pick_Wave_Pick_Confirm_PUB.Pick_Confirm(
p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_commit => FND_API.G_FALSE,
x_return_status => v_return_status,
x_msg_count => v_msg_count,
x_msg_data => v_msg_data,
p_move_order_type => 3,
p_transaction_mode => 1,
p_trolin_tbl => v_trolin_tbl,
p_mold_tbl => v_mold_tbl,
x_mmtt_tbl => v_mmtt_tbl,
x_trolin_tbl => out_trolin_tbl);
dbms_output.put_line('Return status=' || SUBSTR(v_return_status, 1, 255));
dbms_output.put_line('count =' || TO_CHAR(v_msg_count));
dbms_output.put_line('Msg Data =' || SUBSTR(v_msg_data, 1, 255));
IF v_msg_count > 1 THEN
FOR I IN 1 .. v_msg_count LOOP
dbms_output.put_line(
'I.' || SUBSTR(FND_MSG_PUB.Get(p_encoded => FND_API.G_FALSE),
1, 255));
END LOOP;
END IF;
IF v_return_status != APPS.FND_API.G_RET_STS_SUCCESS then
dbms_output.put_line('failed. printing error msg...');
dbms_output.put_line(APPS.FND_MSG_PUB.Get(p_msg_index => APPS.FND_MSG_PUB.G_LAST,
p_encoded => APPS.FND_API.G_FALSE));
ELSE
COMMIT;
END IF;
END;
效果验证
在处理物料搬运单界面查找Move Order 1873937,发现已经找不到了,因为该Move Order所有的行(本例只有1行)已被全部处理了。
图22
查看此时的订单行状态已经变成部分挑库(挑库数量为19):
图23
本章主要介绍了利用API模拟各种在处理物料搬运单界面的操作。
注意:各个API的P_COMMIT参数,请根据业务的需要在恰当的时机提交。
分享到:
相关推荐
这部分内容将帮助开发者理解如何集成OMAPI到自己的应用程序中,以及如何设置和配置OMAPI服务器。 3. **命令与对象模型**:OMAPI支持一系列管理命令,用于执行如查询状态、配置设备参数等操作。文档会列出这些命令,...
本文主要介绍OM API的作用及使用方法,帮助程序开发人员学习并掌握OM API,最终利用OM API开发出更多更好的应用程序。
《SmartUMP主机侧OM开发指南》是一份针对SmartUMP系统中主机侧操作维护(OM)模块的开发指导文档。这份指南旨在帮助开发者理解和实施SmartUMP系统在主机侧的OM功能,确保系统的稳定运行和高效管理。 一、SmartUMP...
OM1168集成电路是微处理器的一种,设计用于在电子设备中执行复杂的计算和控制任务。这个特定的芯片采用99脚双列直插式塑料封装(DIP),这种封装方式便于安装在印刷电路板上,并且具有良好的机械稳定性和电气隔离。...
1、OM9663芯片手册,英文版; 2、OM9663与CLRC663是Pin对Pin完全兼容的,即:硬件上没什么差异,软件上完全适配; 3、RC663的程序完全适用于OM9663,都是NXP的非接芯片 4、此文档适合做非接的朋友
【eRRU01-1622Cm OM 子系统集成方案】 本文档主要阐述了eRRU01-1622Cm OM(Operation and Maintenance,操作与维护)子系统的集成方案,该方案由普天信息技术研究院于2013年5月23日评审通过,并被标记为普院保密二...
这些信息对设计和开发与OM9663兼容的硬件和软件至关重要,以确保芯片集可以正确地与外部设备通信,处理无接触卡或标签,以及执行其他相关的数据交换功能。 在读取手册时,设计者和工程师可以了解如何利用OM9663的...
OM5234集成电路是电子工程领域中一种重要的系统控制微处理器,特别是在音频和视频设备中,特别是VCD影碟机。它采用40脚四列扁平式塑料封装(DIP-40),这种封装方式既紧凑又方便在电路板上安装。OM5234在众多国产...
庖丁解牛之OracleOMShipping集成开发.pdf
【eRRU01-1622Cm OM子系统集成测试报告】 这篇文档是针对eRRU01-1622Cm设备的OM(Operations and Maintenance,操作与维护)子系统的集成测试报告,由普天信息技术研究院有限公司在2013年8月30日编撰完成,并标记为...
OM8361是彩电中频、视频、色度以及行/场扫描信号处理电路,为52脚双列式塑料封装,在长虹D2963A型大屏幕彩电电路N24O上的正常工作电压典型检测数据如表所列,用MF14型三用表测得(DC挡)。 表 OM8361在长虹D2963A...
IQAN(Instrumentation for QUality and Accuracy in Navigation)系统是由林德开发的一种高级控制和显示解决方案,常用于叉车和其他重型机械设备上,以提供精确的操作和诊断功能。 【标签】"by.1175.сom by5113....
OM5284是系统控制微处理器集成电路,为44脚四列扁平式塑料封装,主要用于飞利浦CD7型数码机芯(CD7型是在CDM12型数码机芯的基础上经改正后推出的新型数码机芯)。国产的厦新(例如VCD/768型)、爱多(例如IV-308BK...
OM5324是系统控制微处理器集成电路,为40脚四列扁平式塑料封装,在万燕CDK-380型VCD影碟机电路U7上的正常工作电压典型检测数据如表所列,用MF14型三用表测得(DC挡)。 表 OM5324在万燕CDK-380型影碟机上的检测数据
光纤等级(OM1_OM2_OM3)选型参考方案
转换模型为OM(Optimized Model)格式是将预训练的深度学习模型适配到特定硬件平台的过程,例如华为的Atlas系列芯片。这种格式优化了模型在硬件上的运行效率,提高推理速度和能效。 首先,我们需要了解YOLOV5的基本...
【标题】:“9om极品网站”通常指的是一个网络平台,可能是提供特定服务或资源的站点。这个名称可能意味着它在某个领域内具有高质量的内容或独特的功能,吸引了用户的关注。 【描述】:“9om极品网站自助链接”暗示...
OM8839是数字化PC总线控制的新型单片PAL/NTSC制电视信号处理大规模集成电路,为56脚双列式塑料封装,在国产彩电(例如创维3P10、5P10机芯系列、康佳F2109C型机芯等)中得到广泛采用。该电路在创维5P10机芯29英寸、...
### 光纤等级(OM1_OM2_OM3)指标详解 #### 一、光纤等级与传输性能 在光纤通信领域,光纤的等级是衡量其性能的重要指标之一,它直接影响到数据传输的距离、速度以及信号质量。根据给定的资料,我们可以深入探讨不同...
【后台管理系统(OM)】是一种专门用于管理聊天工具中用户和操作的Web应用程序。它旨在提供一个高效且直观的界面,使管理员能够轻松地监控、控制和管理聊天平台的各个方面。这种系统通常包括用户管理、权限设置、消息...