概述
期初上线的时候有很多的料号要导入,总不能一个一个的在系统新建吧,要想批量导入只能使用API或接口
一、接口
步骤1:
mtl_system_items_interface
此接口表包含mtl_system_items_b中所有的栏位,并多出几个栏位:
Item_number,segment,organization_code,transaction_type,set_process_id
Process_flag栏位代码 | 说明 |
1 | pending |
2 | assign complete |
3 | assign/validation failed |
4 | validation succeeded;import failed |
5 | import in process |
7 | import succeeded |
后台会插入数据到接口表中:mtl_system_items_interface
栏位 | 说明 | Null |
Inventory_item_id | 物料ID | 可为空 |
Organization_id | OrgID | 不可为空 |
Process_flag | 初始值为1 | 不可为空 |
Transaction_type | ’CREATE’ :新增料号 ‘UPDATE’ :更新料号 | 不可为空 |
Organization_code | 与organization_id对应的org_code | 可为空 |
Description: | 料号描述 | 不可为空 |
Template_id: | 物料生成模板ID | 可为空 |
Template_name: | 物料生成模板名字 | 可为空 |
Segment1: | 物料编号 | 不可为空 |
注意事项:
1、 Template_id 与 Template_name 只需其一即可,都不选则属性全部默认,如果按模板生成料号,则物料分类会与之一致,参考table: mtl_item_templates_b
2、 在新建物料时,一定要有主org的资料,所以至少插入两笔资料 不同org的相同数据
3、 如果第一次插入主org的资料,后续在插入子org的资料,跑导入程序会报警
步骤2:
路径:Inventory(库存管理)àItem(物料)àImport(导入)àImport Item(新增物料)
所有组织: 是代表导入所有组织的料号,否代表只导入当前org数据
验证物料: 是否验证接口数据;请选是
处理物料: 是否处理接口数据;请选是
删除已处理的行:是否删除成功处理过的接口数据;请选是
流程集: 为空表示全部,如果有值代表只导入set_process_id 为这个值得数据
创建或更新产品:1代表创建,2代表更新
收集统计数据 : 选是
二、API导入料号,代码如下
PROCEDURE CREATE_ITEM (x_error_code out varchar2
,x_error_msg out varchar2
,x_inventory_item_id out number
,p_inf_rec in mtl_system_items_interface%ROWTYPE
) IS
l_iface_rec mtl_system_items_interface%ROWTYPE;
l_item_rec inv_item_grp.item_rec_type;
x_item_rec inv_item_grp.item_rec_type;
x_error_tbl inv_item_grp.error_tbl_type;
l_template_id number;
x_return_status VARCHAR2(1);
BEGIN
x_error_code:='S';
--l_iface_rec.Template_Id:=;
--l_iface_rec.Template_Name:=;
--l_iface_rec.attribute1:=;--默认投料站点
--l_iface_rec.attribute2:=;--默认损耗率
--l_iface_rec.attribute3:=;--旧料号
--l_iface_rec.attribute4:=;--旧料号描述
--l_iface_rec.shelf_life_code:= --是否批次管控
--l_iface_rec.Lot_Divisible_Flag:= --是否批次拆分
--l_iface_rec.lot_control_code:= --是否批次过期管控
--l_iface_rec.MATURITY_DAYS:= --批次过期管控天数
--l_iface_rec.SALES_ACCOUNT:= --销售收入账户
--l_iface_rec.COST_OF_SALES_ACCOUNT:= --销售成本账户
--l_iface_rec.EXPENSE_ACCOUNT:= --费用账户
l_item_rec.ORGANIZATION_ID:=p_inf_rec.organization_id;
l_item_rec.ITEM_NUMBER:=p_inf_rec.segment1;
l_item_rec.SEGMENT1:=p_inf_rec.segment1;
l_item_rec.DESCRIPTION:=p_inf_rec.description;
l_item_rec.PRIMARY_UOM_CODE:=p_inf_rec.primary_uom_code;
l_template_id:=p_inf_rec.template_id;
l_item_rec.ATTRIBUTE1:=p_inf_rec.ATTRIBUTE1;
l_item_rec.ATTRIBUTE2:=p_inf_rec.ATTRIBUTE2;
l_item_rec.ATTRIBUTE3:=p_inf_rec.ATTRIBUTE3;
l_item_rec.ATTRIBUTE4:=p_inf_rec.ATTRIBUTE4;
l_item_rec.SHELF_LIFE_CODE:=p_inf_rec.SHELF_LIFE_CODE;
l_item_rec.LOT_DIVISIBLE_FLAG:=p_inf_rec.LOT_DIVISIBLE_FLAG;
l_item_rec.LOT_SPLIT_ENABLED:=p_inf_rec.LOT_DIVISIBLE_FLAG;
l_item_rec.LOT_CONTROL_CODE:=p_inf_rec.LOT_CONTROL_CODE;
l_item_rec.SHELF_LIFE_DAYS:=p_inf_rec.SHELF_LIFE_DAYS;
l_item_rec.SALES_ACCOUNT:=p_inf_rec.SALES_ACCOUNT;
l_item_rec.COST_OF_SALES_ACCOUNT:=p_inf_rec.COST_OF_SALES_ACCOUNT;
l_item_rec.EXPENSE_ACCOUNT:=p_inf_rec.EXPENSE_ACCOUNT;
l_item_rec.buyer_id:=p_inf_rec.buyer_id;
l_item_rec.FIXED_LOT_MULTIPLIER:=p_inf_rec.FIXED_LOT_MULTIPLIER;
l_item_rec.FULL_LEAD_TIME:=p_inf_rec.FULL_LEAD_TIME;
l_item_rec.POSTPROCESSING_LEAD_TIME:= p_inf_rec.postprocessing_lead_time;
--标准API
inv_item_grp.create_item(p_commit => fnd_api.g_false,
p_item_rec => l_item_rec,
x_item_rec => x_item_rec,
x_return_status => x_return_status,
x_error_tbl => x_error_tbl,
p_template_id => l_template_id);
IF x_return_status <> fnd_api.g_ret_sts_success THEN
ROLLBACK;
FOR i IN 1.. x_error_tbl.COUNT LOOP
x_error_code:='E';
/* x_error_msg:='Transaction ID:'|| x_error_tbl(i).transaction_id
||'|Unique ID:'|| x_error_tbl(i).unique_id
||'|Message Name:'|| x_error_tbl(i).message_name
||'|Message Text:'|| x_error_tbl(i).message_text
||'|Table Name:'|| x_error_tbl(i).table_name
||'|Column Name:'|| x_error_tbl(i).column_name
||'|Organization ID:'|| x_error_tbl(i).organization_id;
*/
x_error_msg:='Message Text:'|| x_error_tbl(i).message_text
||' Table Name:'||x_error_tbl(i).table_name
||' Column Name:'||x_error_tbl(i).column_name
||' LOT_SPLIT_ENABLED'||x_item_rec.LOT_SPLIT_ENABLED;
DEBUG(x_error_code);
END LOOP;
/* IF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
RAISE fnd_api.g_exc_unexpected_error;
ELSIF (x_return_status = fnd_api.g_ret_sts_error) THEN
RAISE fnd_api.g_exc_error;
END IF;
*/
ELSE
COMMIT;
x_inventory_item_id:=x_item_rec.INVENTORY_ITEM_ID;
DEBUG(x_item_rec.inventory_item_id);
END IF;
END CREATE_ITEM;
最后
以上就是追寻鞋子为你收集整理的使用标准的接口和API导入料号的全部内容,希望文章能够帮你解决使用标准的接口和API导入料号所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复