Oracle中怎么创建WIP任务单

96次阅读
没有评论

共计 10406 个字符,预计需要花费 27 分钟才能阅读完成。

这篇文章主要介绍“Oracle 中怎么创建 WIP 任务单”,在日常操作中,相信很多人在 Oracle 中怎么创建 WIP 任务单问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle 中怎么创建 WIP 任务单”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

系统版本:
          RDBMS : 9.2.0.6.0

         Oracle  应用产品  : 11.5.10.2  

1. 根据装配件自动创建任务

Declare
 l_iface_rec wip.wip_job_schedule_interface%ROWTYPE; -- 任务单 -- 组件
 l_GroupId Number := 123456;
 l_OrganizationId Number :=122;
 l_UserId Number:=0;Begin
 --*****Start 任务单装配件 *****----
 l_iface_rec.last_update_date := SYSDATE;
 l_iface_rec.last_updated_by := l_UserId;
 l_iface_rec.creation_date := SYSDATE;
 l_iface_rec.created_by := l_UserId;
 l_iface_rec.last_update_login := fnd_profile.value( LOGIN_ID 
 l_iface_rec.group_id := l_GroupId;
 l_iface_rec.load_type := 1;
 l_iface_rec.process_phase := 2;
 l_iface_rec.process_status := 1; -- 1 为未发放 (UnReleased),3 为创建任务单以后状态自动已发放 (Released)
 l_iface_rec.status_type := 3; --1 UnReleased/3 Released  需要开会计期
 -- 默认为 Y, 若为 Y 时,则无须把组件、工序和资源等等数据插入接口表 WIP.WIP_JOB_SCHEDULE_INTERFACE。 -- 若为 N 时,则需要往接口表表 WIP.WIP_JOB_SCHEDULE_INTERFACE 插入组件、工序和资源等等数据
 l_iface_rec.allow_explosion :=  Y  -- 任务单名称
 l_iface_rec.job_name :=  TEST131112_001  
 -- 组织标识
 l_iface_rec.organization_id := l_OrganizationId; -- 装配件标识
 l_iface_rec.primary_item_id := 463235; -- 开始数量
 l_iface_rec.start_quantity := 435; -- 开始日期
 l_iface_rec.first_unit_start_date := SYSDATE; -- 任务单来源   自定义
 l_iface_rec.source_code :=  WIPPLAN  
 -- 来源标识   自定义
 l_iface_rec.source_line_id := 0; 
 -- 题头标识   自定义
 l_iface_rec.Header_Id := 3452; 
 l_iface_rec.first_unit_start_date := Sysdate;
 l_iface_rec.First_Unit_Completion_Date := Null;
 l_iface_rec.last_unit_start_date := Null;
 l_iface_rec.last_unit_completion_date := Sysdate; INSERT INTO WIP.WIP_JOB_SCHEDULE_INTERFACE VALUES l_iface_rec; --*****End  任务单装配件 *****----End;

2. 手工创建任务单(组件、工序和资源)如下:

Declare
 -- 任务单
 l_iface_rec wip.wip_job_schedule_interface%ROWTYPE; -- 任务单 - 组件
 l_CompRec wip.wip_job_dtls_interface%ROWTYPE; -- 任务单 - 工序
 l_OpRec wip.wip_job_dtls_interface%ROWTYPE; -- 任务单 - 资源
 l_ResRec WIP.WIP_JOB_DTLS_INTERFACE%ROWTYPE;
 l_GroupId Number := 123456;
 l_OrganizationId Number := 122;
 l_UserId Number := 0;Begin
 --*****Start 任务单装配件 *****----
 l_iface_rec.last_update_date := SYSDATE;
 l_iface_rec.last_updated_by := l_UserId;
 l_iface_rec.creation_date := SYSDATE;
 l_iface_rec.created_by := l_UserId;
 l_iface_rec.last_update_login := fnd_profile.value( LOGIN_ID 
 l_iface_rec.group_id := l_GroupId;
 l_iface_rec.load_type := 1;
 l_iface_rec.process_phase := 2;
 l_iface_rec.process_status := 1; -- 1 为未发放 (UnReleased),3 为创建任务单以后状态自动已发放 (Released)
 l_iface_rec.status_type := 3; --1 UnReleased/3 Released  需要开会计期
 -- 默认为 Y, 若为 Y 时,则无须把组件、工序和资源等等数据插入接口表 WIP.WIP_JOB_SCHEDULE_INTERFACE。 -- 若为 N 时,则需要往接口表表 WIP.WIP_JOB_SCHEDULE_INTERFACE 插入组件、工序和资源等等数据
 l_iface_rec.allow_explosion :=  N  -- 任务单名称
 l_iface_rec.job_name :=  TEST131112_001  -- 组织标识
 l_iface_rec.organization_id := l_OrganizationId; -- 装配件标识
 l_iface_rec.primary_item_id := 463235; -- 开始数量
 l_iface_rec.start_quantity := 435; -- 开始日期
 l_iface_rec.first_unit_start_date := SYSDATE; -- 任务单来源   自定义
 l_iface_rec.source_code :=  WIPPLAN  -- 来源标识   自定义
 l_iface_rec.source_line_id := 0; -- 题头标识   自定义
 l_iface_rec.Header_Id := 3452;
 l_iface_rec.first_unit_start_date := Sysdate;
 l_iface_rec.First_Unit_Completion_Date := Null;
 l_iface_rec.last_unit_start_date := Null;
 l_iface_rec.last_unit_completion_date := Sysdate; INSERT INTO WIP.WIP_JOB_SCHEDULE_INTERFACE VALUES l_iface_rec; --*****End  任务单装配件 *****----
 --*****Start  任务单组件 *****---
 -- 可以添加、删除或修改多个组件
 -- 工序  WIP_REQUIREMENT_OPERATIONS.OPERATION_SEQ_NUM
 l_CompRec.OPERATION_SEQ_NUM := 10; -- 旧组件
 l_CompRec.INVENTORY_ITEM_ID_OLD := Rs.Inventory_Item_Id_Old; -- 新组件   新增时必输项
 l_CompRec.INVENTORY_ITEM_ID_NEW := Rs.Inventory_Item_Id_New; -- 主要   每个装配件  WIP_REQUIREMENT_OPERATIONS.QUANTITY_PER_ASSEMBLY
 l_CompRec.QUANTITY_PER_ASSEMBLY := Rs.Quantity_Per_Assembly; -- 主要   部门  WIP_REQUIREMENT_OPERATIONS.DEPARTMENT_ID
 l_CompRec.DEPARTMENT_ID := Rs.Department_Id; -- 供应   类型  WIP_REQUIREMENT_OPERATIONS.WIP_SUPPLY_TYPE
 l_CompRec.WIP_SUPPLY_TYPE := Rs.Wip_Supply_Type; -- 主要   需求日期  WIP_REQUIREMENT_OPERATIONS.DATE_REQUIRED
 l_CompRec.DATE_REQUIRED := Sysdate; -- 供应   子库存  WIP_REQUIREMENT_OPERATIONS.SUPPLY_SUBINVENTORY
 l_CompRec.SUPPLY_SUBINVENTORY := Rs.Supply_Subinventory; -- 供应   货位标识  WIP_REQUIREMENT_OPERATIONS.SUPPLY_LOCATOR_ID
 l_CompRec.SUPPLY_LOCATOR_ID := Rs.Supply_Locator_Id; -- 是否 MRP 净需求,默认值为 1  WIP_REQUIREMENT_OPERATIONS.MRP_NET_FLAG
 l_CompRec.MRP_NET_FLAG := Rs.Mrp_Net_Flag; -- 主需求计划数量  WIP_REQUIREMENT_OPERATIONS.Mps_Required_Quantity
 l_CompRec.MPS_REQUIRED_QUANTITY := Rs.Mps_Required_Quantity; -- 主需求计划日期  WIP_REQUIREMENT_OPERATIONS.MPS_DATE_REQUIRED 
 l_CompRec.MPS_DATE_REQUIRED := Rs.Mps_Date_Required; -- 当是组件接口数据时,其值必须为 2
 l_CompRec.LOAD_TYPE := 2; -- 与创建任务单题头的相同:WIP.WIP_JOB_SCHEDULE_INTERFACE.HEADER_ID
 l_CompRec.PARENT_HEADER_ID := 3452; -- 组件 - 备注  WIP_REQUIREMENT_OPERATIONS.COMMENTS
 l_CompRec.DESCRIPTION :=  测试组件 
 l_CompRec.LAST_UPDATE_DATE := Sysdate;
 l_CompRec.LAST_UPDATED_BY := l_UserId;
 l_CompRec.CREATION_DATE := Sysdate;
 l_CompRec.CREATED_BY := l_UserId;
 l_CompRec.LAST_UPDATE_LOGIN := fnd_profile.value( LOGIN_ID 
 l_CompRec.Process_Phase := 2; -- 默认值
 l_CompRec.Process_Status := 1; -- 默认值
 l_CompRec.Group_Id := l_GroupId; /*
  删除:wip_job_details.WIP_DELETE 默认为 1
  新增:wip_job_details.wip_add 默认值为 2
  修改:wip_job_details.WIP_CHANGEl 默认值为 3 */
 l_CompRec.Substitution_Type := wip_job_details.wip_add; Insert Into WIP.WIP_JOB_DTLS_INTERFACE Values l_CompRec; --*****End  任务单组件 *****---
 --*****Start  任务单工序 ****--
 -- 工序  WIP_OPERATIONS.Operation_Seq_Num
 l_OpRec.Operation_Seq_Num := l_CompRec.OPERATION_SEQ_NUM; -- 部门  WIP_OPERATIONS.Department_Id
 l_OpRec.Department_Id := l_CompRec.Department_Id;
 l_OpRec.Load_Type := 3; -- 供应商类型
 l_OpRec.Wip_Supply_Type := l_CompRec.Wip_Supply_Type;
 l_OpRec.Parent_Header_Id := l_iface_rec.Header_Id;
 l_OpRec.Description :=  测试工序  -- 准标工序标识  WIP_OPERATIONS.Standard_Operation_Id
 l_OpRec.Standard_Operation_Id := 6; -- 日期   第一个装配件起始日期  WIP_OPERATIONS.FIRST_UNIT_START_DATE
 l_OpRec.First_Unit_Start_Date := Sysdate; -- 日期   第一个装配件完成日期  WIP_OPERATIONS.First_Unit_Completion_Date
 l_OpRec.First_Unit_Completion_Date := Sysdate; -- 日期   最后一个装配件起始日期  WIP_OPERATIONS.Last_Unit_Start_Date
 l_OpRec.Last_Unit_Start_Date := Sysdate; -- 日期   最后一个装配件起始日期  WIP_OPERATIONS.Last_Unit_Completion_Date
 l_OpRec.Last_Unit_Completion_Date := Sysdate; -- 主要   最小传送量  WIP_OPERATIONS.MINIMUM_TRANSFER_QUANTITY
 l_OpRec.Minimum_Transfer_Quantity := 0; -- 主要   倒冲  WIP_OPERATIONS.Backflush_Flag
 l_OpRec.Backflush_Flag := 1; -- 主要   计数点  WIP_OPERATIONS.Count_Point_Type
 l_OpRec.Count_Point_Type := 1;
 l_OpRec.Last_Update_Date := Sysdate;
 l_OpRec.Last_Updated_By := l_UserId;
 l_OpRec.Creation_Date := Sysdate;
 l_OpRec.Created_By := l_UserId;
 l_OpRec.Last_Update_Login := fnd_profile.value( LOGIN_ID 
 l_OpRec.Process_Phase := 2; -- 默认值
 l_OpRec.Process_Status := 1; -- 默认值
 l_OpRec.Group_Id := l_GroupId; /*
  删除:wip_job_details.WIP_DELETE 默认为 1
  新增:wip_job_details.wip_add 默认值为 2
  修改:wip_job_details.WIP_CHANGEl 默认值为 3 */
 l_OpRec.Substitution_Type := wip_job_details.wip_add; Insert Into WIP.WIP_JOB_DTLS_INTERFACE Values l_OpRec; --*****End  任务单工序 ****--
 --*****Start  任务单资源 ***---
 -- 可以添加、删除或修改多个资源
 -- 工序  WIP_OPERATION_RESOURCES.Operation_Seq_Num
 l_ResRec.OPERATION_SEQ_NUM := l_CompRec.OPERATION_SEQ_NUM; -- 资源序号  WIP_OPERATION_RESOURCES.RESOURCE_SEQ_NUM
 l_ResRec.RESOURCE_SEQ_NUM := 10; -- 新资源标识   新增时必输项
 l_ResRec.RESOURCE_ID_NEW := 501899; -- 主要   单位用量或数量值  WIP_OPERATION_RESOURCES.Usage_Rate_Or_Amount
 l_ResRec.USAGE_RATE_OR_AMOUNT := .86; -- 计划   已计划   默认值为 2(否) WIP_OPERATION_RESOURCES.Scheduled_Flag
 l_ResRec.SCHEDULED_FLAG := 2; -- 计划   分配数量   默认值为 1  WIP_OPERATION_RESOURCES.Assigned_Units
 l_ResRec.ASSIGNED_UNITS := 1;
 l_ResRec.APPLIED_RESOURCE_UNITS := Null;
 l_ResRec.APPLIED_RESOURCE_VALUE := Null; -- 主要   单位  WIP_OPERATION_RESOURCES.UOM_CODE
 l_ResRec.UOM_CODE :=  CNY  -- 主要   基准   默认值 1(物料) WIP_OPERATION_RESOURCES.BASIS_TYPE
 l_ResRec.BASIS_TYPE := 1; -- 成本计算   活动标识  WIP_OPERATION_RESOURCES.ACTIVITY_ID
 l_ResRec.ACTIVITY_ID := Null; -- 成本计算   计费类型  WIP_OPERATION_RESOURCES.AUTOCHARGE_TYPE
 l_ResRec.AUTOCHARGE_TYPE := 1; -- 成本计算   标准费率   默认值为 2
 l_ResRec.STANDARD_RATE_FLAG := 2; -- 计划   起始日期  WIP_OPERATION_RESOURCES.START_DATE
 l_ResRec.START_DATE := Sysdate; -- 计划   完成日期  WIP_OPERATION_RESOURCES.COMPLETION_DATE
 l_ResRec.COMPLETION_DATE := Sysdate; -- 计划   替代组  WIP_OPERATION_RESOURCES.SUBSTITUTE_GROUP_NUM
 l_ResRec.SUBSTITUTE_GROUP_NUM := Null; -- 计划   替换组  WIP_JOB_DTLS_INTERFACE.REPLACEMENT_GROUP_NUM
 l_ResRec.REPLACEMENT_GROUP_NUM := Null; -- 计划   批 WIP_JOB_DTLS_INTERFACE.BATCH_ID 
 -- 计划   计划序号  WIP_JOB_DTLS_INTERFACE.SCHEDULE_SEQ_NUM
 l_ResRec.SCHEDULE_SEQ_NUM := Null;
 l_ResRec.BATCH_ID := Null;
 l_ResRec.LOAD_TYPE := 1; -- 默认值
 l_ResRec.PARENT_HEADER_ID := l_iface_rec.Header_Id;
 l_ResRec.DESCRIPTION := Null;
 l_ResRec.LAST_UPDATE_DATE := Sysdate;
 l_ResRec.LAST_UPDATED_BY := l_UserId;
 l_ResRec.CREATION_DATE := Sysdate;
 l_ResRec.CREATED_BY := l_UserId;
 l_ResRec.LAST_UPDATE_LOGIN := fnd_profile.value( LOGIN_ID 
 l_ResRec.Process_Phase := 2; -- 默认值
 l_ResRec.Process_Status := 1; -- 默认值
 l_ResRec.Group_Id := l_GroupId; /*
  删除:wip_job_details.WIP_DELETE 默认为 1
  新增:wip_job_details.wip_add 默认值为 2
  修改:wip_job_details.WIP_CHANGEl 默认值为 3 */
 l_ResRec.Substitution_Type := wip_job_details.wip_add; Insert Into WIP.WIP_JOB_DTLS_INTERFACE. Values l_ResRec; --*****End  任务单工序 ***---
 --API 接口
 wip_massload_pub.massloadjobs(p_groupid =  l_iface_rec.group_id, -- Group ID p_validationlevel =  2, -- Validation Level p_commitflag =  0, -- Commit 1 =Yes , 0 = No  x_returnstatus =  x_error_status,
 x_errormsg =  x_error_message);End;

3. 或者用 SQL 提交“WIP 成批装入”请求创建任务单

Declare
 l_GroupId Number := 123456;
 v_ReqID Number;
 l_phase Varchar(200);
 l_status Varchar(200);
 l_dev_phase Varchar(200);
 l_dev_status Varchar(200);
 l_message Varchar(2000);
 l_request_status boolean;
 l_UserId Number := 0;Begin
 fnd_global.apps_initialize(user_id =  l_UserId,
 resp_id =  50276,
 resp_appl_id =  706,
 security_group_id =  0);
 
 v_ReqID := fnd_request.submit_request(application =   WIP ,
 program =   WICMLP ,
 description =   ,
 start_time =   ,
 sub_request =  FALSE,
 argument1 =  to_char(l_GroupId), -- 组标识
 argument2 =   0 , -- 验证类型
 argument3 =   1 , -- 报表是否打印,1:YES,2.NO
 argument4 =  CHR(0));
 If (v_ReqID   0) Then
 l_request_status := Fnd_Concurrent.Wait_For_Request(v_ReqID,
 5,
 0,
 l_phase,
 l_status,
 l_dev_phase,
 l_dev_status,
 l_message);
 IF l_request_status THEN
 IF l_dev_status =  NORMAL  Or l_dev_status =  WARNING  THEN
 dbms_output.put_line([WIP  成批装入] 运行成功 
 ELSE
 dbms_output.put_line([WIP  成批装入] 运行失败: || l_dev_status); END IF;
 ELSE
 dbms_output.put_line(请求未完成, 无法查看报表内容!  END IF; End If;End;

到此,关于“Oracle 中怎么创建 WIP 任务单”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计10406字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)