RDBMS : 9.2.0.6.0
Oracle应用产品 : 11.5.10.2
接口表参考:WIP.WIP_JOB_DTLS_INTERFACE
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 任务单工序***--- End;
3.自动提交“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,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;