您的位置:首页 > 其它

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

2015-12-24 09:43 323 查看
期初上线的时候有很多的料号要导入,总不能一个一个的在系统新建吧,要想批量导入只能使用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数据

验证物料:
4000
     是否验证接口数据;请选是

处理物料:     是否处理接口数据;请选是

删除已处理的行:是否删除成功处理过的接口数据;请选是

流程集:       
为空表示全部,如果有值代表只导入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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息