EBS-工单导入

 

数据导入步骤:

1.根据用户需要字段,创建客户化接口表;

2.将用户整理好的数据插入客户化接口表中;

3.对数据进行校验(数据有效性,弹性域值集)

4.将客户化接口表中的数据写入EBS系统的接口表中

5.提交标准请求

工单导入接口表

接口表

数据表

说明

wip_move_txn_interface

wip_move_transactions

移动事务处理;它有可能触发物料事务处理和资源事务处理

cst_comp_snap_interface

cst_comp_snapshot

仅当做WIP装配件完工或退回且组织使用平均成本时使用

wip_txn_interface_errors

 

错误信息表

接口表关键字段

字段

说明

transaction_type

1 工序移动(缺省)

2 移动完工入库

3 移动入库返回

process_phase

给1

1 Move Validation

2 Move Processing

3 Operation Backflush Setup

process_status

给1

1 Pending

2 Running

3 Error

wip_entity_name

任务名称

organization_id

Current Inv Organization

organization_code

组织代码,这个字段必须给

transaction_date

事务日期,必须between Release Date and Sysdate

transaction_quantity

移动数量

transaction_uom

单位,可以不是主单位

fm_operation_seq_num

起始工序号

fm_intraoperation_step_type

起始工序内部步骤

to_operation_seq_num

终止工序号

to_intraoperation_step_type

终止工序内部步骤

source_code

随便给,一般用来追踪

last_updated_by_name

必须给,比较特殊

created_by_name

必须给,比较特殊

5个who字段

习惯上都给

 如果不涉及超量完工、如果拉式组件不涉及批次控制等,移动事务处理本身都很简单

脚本如下:

DECLARE

  l_iface_rec        wip.wip_move_txn_interface%ROWTYPE;
  l_cur_mfg_org_id   NUMBER := 82; --Current Inv Organization
  l_cur_mfg_org_code VARCHAR2(240) := '101';
  l_user_id          NUMBER := 0; --User ID, Sysadmin here
  l_user_name        VARCHAR2(240) := 'SYSADMIN';
  
BEGIN

  l_iface_rec.last_update_date     := SYSDATE;
  l_iface_rec.last_updated_by      := l_user_id;
  l_iface_rec.creation_date        := SYSDATE;
  l_iface_rec.created_by           := l_user_id;
  l_iface_rec.last_update_login    := -1;
  l_iface_rec.last_updated_by_name := l_user_name;
  l_iface_rec.created_by_name      := l_user_name;

  l_iface_rec.transaction_type            := 1;
  l_iface_rec.process_phase               := 1;
  l_iface_rec.process_status              := 1;
  l_iface_rec.wip_entity_name             := 'TEST_JOB_0001';
  l_iface_rec.organization_id             := l_cur_mfg_org_id;
  l_iface_rec.organization_code           := l_cur_mfg_org_code;
  l_iface_rec.transaction_date            := SYSDATE;
  l_iface_rec.transaction_quantity        := 234;
  l_iface_rec.transaction_uom             := 'Kg';
  l_iface_rec.fm_operation_seq_num        := 10;
  l_iface_rec.fm_intraoperation_step_type := '1'; --Queue
  l_iface_rec.to_operation_seq_num        := 10;
  l_iface_rec.to_intraoperation_step_type := 3; --To move
  l_iface_rec.source_code                 := 'Test Only';
  l_iface_rec.source_code                 := 'Test Only';
  l_iface_rec.source_line_id              := 987654321;

  INSERT INTO wip.wip_move_txn_interface VALUES l_iface_rec;
  v_request_id := fnd_request.submit_request('WIP',
                                             'WICMLP',
                                             NULL,
                                             NULL,
                                             FALSE,
                                             v_group_id,
                                             0,
                                             1,
                                             chr(0));
  IF v_request_id <= 0 OR v_request_id IS NULL THEN
    LOG('提交 请求 错误!');
    RETURN;

  ELSE
    COMMIT;
    log('已成功提交请求,request_id=' || v_request_id);
  END IF;

  -- wait request 
  l_wait_req := fnd_concurrent.wait_for_request(v_request_id,
                                                40,
                                                0,
                                                v_phase,
                                                v_status,
                                                v_dev_phase,
                                                v_dev_status,
                                                v_message);

  IF upper(v_status) NOT IN ('NORMAL', '正常') THEN
    log(chr(10) || 'Import new wip job failure. ' || v_message);
    RETURN;
  ELSE
    log(chr(10) || '请求正常结束! ');
    RETURN;
  END IF;

END;

 

 

 

posted on 2012-07-12 20:35  coder.zhw  阅读(2112)  评论(0)    收藏  举报

导航