期初上线的时候有很多的料号要导入,总不能一个一个的在系统新建吧,要想批量导入只能使用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导入料号相关推荐

  1. c运行库、c标准库、windows API的区别和联系

    c运行库.c标准库.windows API的区别和联系 C运行时库函数 C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的.    API函数 API函数是操作系统为方便用户设计应用 ...

  2. c运行库、c标准库、windows API都是什么玩意

    c运行库.c标准库.windows API都是什么玩意 2012-11-28 14:37 768人阅读 评论(2) 收藏 举报 C运行库和C标准库的关系 C标准库,顾名思义既然是标准,就是由标准组织制 ...

  3. 丁香园开源接口管理系统 - API Mocker

    API Mocker 先贴上项目地址:DXY-F2E/api-mocker 随着web发展,前后端分离的演进,网页的交互变的越来越复杂.在项目开发过程中,前后端并行开发时,在涉及到接口的部分,总是遇到 ...

  4. Python从无到有搭建接口(API)自动化测试框架

    目录 1.前言 2.思路 3.正文 一.路径模块-initPath.py 二.配置文件模块-getConfig.py 三.读取用例模块-getCase.py 四.数据库操作模块-operatorDB. ...

  5. 调用金蝶EAS系统标准凭证接口,封装凭证对象,调用业务接口前需先登录

    第三方系统与金蝶EAS系统凭证集成时,调用金蝶EAS系统标准凭证接口WSGLWebServiceFacade,下载对应的wsdl文件,生成客户端代码之后,可参考以下接口调用方式. 与EAS系统进行凭证 ...

  6. 免费对接快递数据物流信息接口【快递鸟单号查询API】

    近年来,我国电商产业的迅猛发展也推动着物流行业需求的增加,其中电商平台根据快递单号查询物流信息数据的需求就是基本需求,用户下单后商家把货物有没有及时的按要求发出去,就需要通过物流轨迹的揽件状态来判断, ...

  7. SDK接口与API接口究竟有什么区别?

    上一篇文章为大家介绍了什么事 SDK,下面来说说 SDK 和 API 的区别. SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做 & ...

  8. 开放的应用编程接口Parlay API

    2003-12-16 石锋 杨放春 北京邮电大学交换技术和通信网国家重点实验室 摘 要 本文总结了传统智能网提供增值业务的模式,指出Parlay API作为开放的应用编程接口的优势.并且介绍了Parl ...

  9. MindSpore接口mindspore::api

    MindSpore接口mindspore::api Context #include <context.h> Context类用于保存执行中的环境变量. 静态公有成员函数 Instance ...

最新文章

  1. python课程多少钱一节课-日照少儿python编程一节课多少钱
  2. 【CyberSecurityLearning 69】反序列化漏洞
  3. MySql远程连接设置
  4. 大侠稍等!URL 中为何出现奇怪的字符
  5. 剑指offer 顺时针打印矩阵
  6. 多对一!分组查询!MySQL分组函数,聚合函数,分组查询
  7. mysql alter 唯一键_MySQL列属性 之 唯一键
  8. java两个对象属性比较
  9. Linux操作系统原理与应用05:中断和异常
  10. API 应该享受版权保护吗?
  11. EXCHANGE指定要使用的域控制器、GC
  12. spark 转换算子应用举例
  13. 浏览器HTTP缓存机制 1
  14. 用pc浏览器打开手机页面
  15. hash 图像检索方法汇总
  16. 浅谈C#tabcontrol应用
  17. atv320说明书_ATV320U30N4B 施耐德 ATV320通用变频器 说明书
  18. mysql数据库首次查询缓慢
  19. 大学计算机应用作业,大学计算机应用作业
  20. 基于MATLAB的TODA定位算法的仿真

热门文章

  1. 【天光学术】舞蹈论文:生本理念下多媒体技术在舞蹈教学中的运用(节选)
  2. 遥感影像辐射质量改善之复原(沈焕锋教授-武汉大学)
  3. redis 和 memcached
  4. Android SQLite在应用中数据保存查询,但是拷贝的xxx.db没有数据或没有更新,.db_wal和.db_shm文件
  5. 【068】特征选择之 pearson 皮尔森系数 PimaIndiansdiabetes
  6. 实时数仓架构那些事儿
  7. Python搜索爬取淘宝商品信息并存储为csv文件(名称、店铺、销量、地址等)
  8. 关于redis缓存穿透浅析
  9. Android音乐播放器(三)轮播图
  10. redis(五)跳跃表