ORACLE EBS WIP模块---创建标准工单

数据表汇总

表名说明
WIP_PARAMETERSWIP参数表
Wip_Accounting_ClassesWIP工单类型表
Wip_Shop_Floor_Status_CodesWIP车间状态表
Wip_Shop_Floor_StatusesWIP车间状态分配表
Wip_Schedule_GroupsWIP计划组表
Wip_LinesWIP生产线表
Wip_Repetitive_Items生产线装配件关联表
wip_entitiesWIP信息表
wip_discrete_jobsWIP作业表
Wip_OperationsWIP工序信息表

WIP工单创建

类型API/接口
Open APIwip_massload_pub.massloadjobs
Interface工单任务接口表:wip_job_schedule_interface
工单组件,工序,资源接口表:wip_job_dtls_interface

开发参考

参考点内容
错误信息表Wip_Interface_Errors
接口表关系SELECT Wie.* FROM Wip_Interface_ErrorsWie,Wip_Job_Schedule_Interface WjiWHERE Wie.Interface_Id = Wji.Interface_Id;

关键字段

wip_job_schedule_interface

字段说明
group_id一般给wip_job_schedule_interface_s.NEXTVAL
load_type新建标准离散工单给1
新建非标准离散工单给4
修改离散工单给3
1 Create Standard Discrete Job
2 Create Pending Repetitive Schedule
3 Update Standard or Non-Standard Discrete Job
4 Create Non-Standard Discrete Job
allow_explosionY 自动用标准BOM和Routing展开
N 需要自定义组件需求和工序,写入wip_job_dtls_interface
process_phase给2
2 Validation
3 Explosion
4 Completion
5 Creation
process_status给1
1 Pending
2 Running
3 Error
4 Complete
5 Warning
status_type工单状态
1 UnReleased
3 Released 需要开会计期
wip_supply_type供应类型,不给的话默认是Based on Bill
1 Push
2 Assembly Pull
3 Operation Pull
4 Bulk
5 Supplier
6 Phantom
7 Based on Bill
job_name任务号,不给的话系统自动生成
class_code工单类型
start_quantity计划生产量;非标可以=0,标准必须>0;只能是主单位数量
primary_item_id装配件ID
scheduling_method排产方法
1 Routing-based
2 Item Lead Time
3 Mannual

wip_job_dtls_interface

字段说明
load_type添加修改资源给1
添加修改工序给2
添加修改组件给3
Substitution_Type提交类型
删除:wip_job_details.WIP_DELETE默认为1
新增:wip_job_details.wip_add默认值为2
修改:wip_job_details.WIP_CHANGEl默认值为3
Standard_Rate_Flag成本计算 标准费率 默认值为2
Mrp_Net_Flag是否MRP净需求,默认值为1
Scheduled_Flag计划 已计划 默认值为2(否)
Assigned_Units计划 分配数量 默认值为1

注意事项

使用 Open API 方式创建非标准工单的时候,除了需要给起始日期First_Unit_Start_Date 赋值外,还要给完成日Last_Unit_Completion_Date 赋值。

创建标准离散任务【open api】

DECLARE
  l_Iface_Rec      Wip.Wip_Job_Schedule_Interface%ROWTYPE;
  l_Cur_Mfg_Org_Id NUMBER := 89; --Current Inv Organization
  l_User_Id        NUMBER := 0; --User ID, Sysadmin here
  x_Return_Status  VARCHAR2(30);
  x_Return_Message VARCHAR2(4000);
  Lv_Error         VARCHAR2(4000);
  Ln_Group_Id      NUMBER;

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;
  SELECT Wip.Wip_Job_Schedule_Interface_s.Nextval
    INTO Ln_Group_Id
    FROM Dual;
  l_Iface_Rec.Group_Id := Ln_Group_Id; --组标识
  /*================================================
  WIP_LOAD_TYPE MFG_LOOKUPS
  ------------ --------------
  1 Create Standard Job
  2 Create Repetitive Schedule
  3 Update Discrete Job
  4 Create Non–standard Job
  ================================================*/
  l_Iface_Rec.Load_Type             := Wip_Constants.Create_Job; --导入类型
  l_Iface_Rec.Allow_Explosion       := 'Y'; --是否允许自定义组件需求和工序,N写入wip_job_dtls_interface Y自动用标准BOM和Routing展开
  l_Iface_Rec.Process_Phase         := Wip_Constants.Ml_Validation; --接口操作
  l_Iface_Rec.Process_Status        := Wip_Constants.Pending; --接口阶段
  l_Iface_Rec.Status_Type           := Wip_Constants.Released; --工单状态
  l_Iface_Rec.Job_Name              := 'Test_002'; --工单名称
  l_Iface_Rec.Organization_Id       := l_Cur_Mfg_Org_Id; --工单库存组织
  l_Iface_Rec.Class_Code            := '101标准'; --工单分类
  l_Iface_Rec.Primary_Item_Id       := 85008; --CM001 --工单装配件
  l_Iface_Rec.Start_Quantity        := 10; --工单起始数量
  l_Iface_Rec.Scheduling_Method     := '1'; --排产方法
  l_Iface_Rec.First_Unit_Start_Date := SYSDATE; --第一个装配件起始时间
  l_Iface_Rec.Source_Code           := 'Test Only'; --来源编码
  l_Iface_Rec.Source_Line_Id        := 987654321; --来源行标识
  INSERT INTO Wip.Wip_Job_Schedule_Interface
  VALUES l_Iface_Rec;

  Dbms_Output.Put_Line(l_Iface_Rec.Group_Id);
  Fnd_Msg_Pub.Initialize;
  x_Return_Status := Fnd_Api.g_Ret_Sts_Success;
  Wip_Massload_Pub.Massloadjobs(p_Groupid         => l_Iface_Rec.Group_Id
                               ,p_Validationlevel => Fnd_Api.g_Valid_Level_Full
                               ,p_Commitflag      => 0--1 commit; 0 no commit
                               ,x_Returnstatus    => x_Return_Status
                               ,x_Errormsg        => x_Return_Message);
  IF (x_Return_Status <> Fnd_Api.g_Ret_Sts_Success) THEN
    SELECT Error
      INTO Lv_Error
      FROM Wip_Interface_Errors
     WHERE Interface_Id = (SELECT Interface_Id
                             FROM Wip_Job_Schedule_Interface
                            WHERE Group_Id = Ln_Group_Id);
    Dbms_Output.Put_Line('x_return_message: ' || Lv_Error);
  END IF;
EXCEPTION
  WHEN OTHERS THEN
    x_Return_Status := Fnd_Api.g_Ret_Sts_Unexp_Error;
    Dbms_Output.Put_Line('x_return_message: ' || x_Return_Message);
    RAISE;
END;

标准工单创建【Interface】

DECLARE
  l_Iface_Rec      Wip.Wip_Job_Schedule_Interface%ROWTYPE;
  l_Cur_Mfg_Org_Id NUMBER := 89; --Current Inv Organization
  l_User_Id        NUMBER := 0; --User ID, Sysadmin here
  Ln_Group_Id      NUMBER;
  Ln_Request_Id    NUMBER;

  Lv_Error             VARCHAR2(4000);
  Ln_Application_Id    NUMBER;
  Ln_Responsibility_Id NUMBER;
  Gv_Application_Code CONSTANT VARCHAR2(30) := Scux_Fnd_Log.Gv_Application_Code;
BEGIN
  BEGIN
    SELECT Frv.Application_Id
          ,Frv.Responsibility_Id
      INTO Ln_Application_Id
          ,Ln_Responsibility_Id
      FROM Fnd_Responsibility_Vl Frv
     WHERE Frv.Responsibility_Name = '101制造超级用户';
    Fnd_Global.Apps_Initialize(0
                              ,Ln_Responsibility_Id
                              ,Ln_Application_Id);
  END;
  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;
  SELECT Wip.Wip_Job_Schedule_Interface_s.Nextval
    INTO Ln_Group_Id
    FROM Dual;
  l_Iface_Rec.Group_Id          := Ln_Group_Id; --组标识
  l_Iface_Rec.Load_Type         := 1; --导入类型
  l_Iface_Rec.Allow_Explosion   := 'Y'; --是否允许自定义组件需求和工序
  l_Iface_Rec.Process_Phase     := '2'; --接口阶段
  l_Iface_Rec.Process_Status    := '1'; --接口状态
  l_Iface_Rec.Status_Type       := '1'; --工单状态
  l_Iface_Rec.Job_Name          := 'Test_007'; --工单名称
  l_Iface_Rec.Organization_Id   := l_Cur_Mfg_Org_Id; --工单库存组织
  l_Iface_Rec.Class_Code        := '101标准'; --工单分类
  l_Iface_Rec.Primary_Item_Id   := 85008; --工单装配件
  l_Iface_Rec.Start_Quantity    := 20; --起始数量
  l_Iface_Rec.Scheduling_Method := '1'; --排产方法

  l_Iface_Rec.First_Unit_Start_Date := SYSDATE; --第一个装配件起始时间
  l_Iface_Rec.Source_Code           := 'Test Only'; --来源编码
  l_Iface_Rec.Source_Line_Id        := 987654321; --来源行标识
  INSERT INTO Wip.Wip_Job_Schedule_Interface
  VALUES l_Iface_Rec;
  --COMMIT;
  Ln_Request_Id := Fnd_Request.Submit_Request('WIP' --应用简称
                                             ,'WICMLP' --请求简称
                                             ,'WIP 成批装入' --请求说明
                                             ,To_Char(SYSDATE
                                                     ,'YYYY/MM/DD HH24:MI:SS') --运行时间
                                             ,FALSE --立即提交请求
                                             ,Ln_Group_Id --Group ID
                                             ,0 --Validation Level
                                             ,'是' --Print Report
                                             ,Chr(0));
  IF Nvl(Ln_Request_Id
        ,0) = 0 THEN
    SELECT Error
      INTO Lv_Error
      FROM Wip_Interface_Errors
     WHERE Interface_Id = (SELECT Interface_Id
                             FROM Wip_Job_Schedule_Interface
                            WHERE Group_Id = Ln_Group_Id);
  ELSE
    COMMIT;
  END IF;
  Dbms_Output.Put_Line(Ln_Request_Id);
END;

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值