利用Oracle Items Open Interfaces导入物料信息

1.apps下创建临时表,用以存储新导入的数据

  -- Create table
create table INV.STD_MTL_SYSTEM_ITEMS_2205_B
(
  SET_PROCESS_ID    NUMBER not null,
  ITEM_DESCRIPTION  VARCHAR2(240) not null,
  ITEM_SEGMENT1     VARCHAR2(40) not null,
  PRIMARY_UOM_CODE  VARCHAR2(3) not null,
  ORGANIZATION_CODE VARCHAR2(30)
)
tablespace APPS_TS_TX_DATA
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 128K
    next 128K
    minextents 1
    maxextents unlimited
    pctincrease 0
  );


2.整理形成 csv 原始数据文件ifacle_format.csv

process id,Item Code,Description,UOM,Organization Code
20090011,ben20090001011,ben011,Ea,A1
20090011,ben20090001012,ben012,Ea,A1

3. 创建control文件STDITEMIPT_2205.ctl

options (skip=1)
Load data
    CHARACTERSET UTF8
    infile 'ifacle_format_2205.csv'
    append
    into table std_mtl_system_items_2205_b
fields terminated by "," optionally enclosed by '"'
(   set_process_id,
      item_segment1,
      item_description,
      primary_uom_code,
      organization_code

)

4.将.csv 和 .ctl 文件上传至数据库服务器目录

5.运行

sqlldr apps/apps control=STDITEMIPT_2215.ctl

将数据从csv中导入至临时表。此时临时表中应有导入数据。

6.在pl/sql中创建自己的包,用以将临时表中的数据插入Item 接口表  MTL_SYSTEM_ITEMS_INTERFACE

CREATE OR REPLACE PACKAGE std_iface_pkg IS


  PROCEDURE item_iface_example(errbuf            OUT VARCHAR2,
                               retcode           OUT VARCHAR2,
                               p_template_id     IN NUMBER,
                               p_set_process_id  IN NUMBER,
                               p_organization_id IN NUMBER);

END std_iface_pkg;
/
CREATE OR REPLACE PACKAGE BODY std_iface_pkg IS

  --物料接口例子
  PROCEDURE item_iface_example(errbuf            OUT VARCHAR2,
                               retcode           OUT VARCHAR2,
                               p_template_id     IN NUMBER,
                               p_set_process_id  IN NUMBER,
                               p_organization_id IN NUMBER) IS

    l_iface_rec     mtl_system_items_interface%ROWTYPE;
    l_master_org_id NUMBER;
    --l_std_id        NUMBER := 900001; --90000+ID
    l_template_id NUMBER;
 

  BEGIN

    DELETE mtl_system_items_interface msii
     WHERE msii.set_process_id = p_set_process_id;

    FOR rec IN (SELECT msi.*
                  FROM std_mtl_system_items_b msi
                 WHERE msi.set_process_id = p_set_process_id) LOOP

      -----------------------------------------------------------------
      --1 pending
      --2 assign complete
      --3 assign/validation failed
      --4 validation succeeded, imported failed
      --5 import in process
      --7 import succeeded
      -----------------------------------------------------------------
      l_iface_rec.process_flag           := 1;
      l_iface_rec.transaction_type       := 'CREATE';
      l_iface_rec.set_process_id         := p_set_process_id;
      l_iface_rec.organization_id        := p_organization_id;
      l_iface_rec.description            := rec.item_description;
      l_iface_rec.segment1               := rec.item_segment1;
      l_iface_rec.primary_uom_code       := rec.primary_uom_code;
      l_iface_rec.template_id            := p_template_id;
      l_iface_rec.last_update_date       := SYSDATE;
      l_iface_rec.last_updated_by        := fnd_global.user_id;
      l_iface_rec.creation_date          := SYSDATE;
      l_iface_rec.created_by             := fnd_global.user_id;
      l_iface_rec.last_update_login      := fnd_global.login_id;
      l_iface_rec.request_id             := fnd_global.conc_request_id;
      l_iface_rec.program_id             := fnd_global.conc_program_id;
      l_iface_rec.program_update_date    := SYSDATE;
      l_iface_rec.program_application_id := fnd_global.prog_appl_id;

      INSERT INTO mtl_system_items_interface VALUES l_iface_rec;

    END LOOP;
    COMMIT;


 
END std_iface_pkg;

7.在ebs中注册该包的并发程序application developer->Concurrent->Executable

                         application developer->Concurrent->Program

  具体过程不赘述,有需要请留言,我会再写详细些。

8. 将定义的Program赋给自己职责的Request Group

   System administrator->responsibility->request

9.在该指责下运行刚定义的并发请求,该并发请求将把数据从临时表中插入到接口表。

  至此在  MTL_SYSTEM_ITEMS_INTERFACE 中应该已经存在临时表中导入进来的数据。请检查。

注意,请不要在pl/sql环境下直接调用包进行该操作,而必须为包定义并发请求,在ebs系统中进行该操作,否则一些环境列将无法传入正常值,比如更新人,创建人等等,因为在pl/sql中无法得到您的ebs登陆环境。

10.在Inventory,Vision Operation职责下,运行并发请求 ‘import item’

并填入以下的参数值:
   所有组织:是
   验证物料:是
   流程物料:是
   删除处理的行:是
   流程集(全部为空):该处填写csv文件中的process id字段值
   创建或更新物料:1

11.检查  MTL_SYSTEM_ITEMS_INTERFACE 中是否有遗留的数据,如果数据全部成功导入ebs系统,该数据表应为空。如果有数据未能正确导入,请重设process id,更正数据后进行新一轮的导入。

12.至此物料数据导入完毕。可以在ebs系统中查找已导入的物品。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值