使用标准的接口和API导入料号

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值