共計 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 小編會繼續努力為大家帶來更多實用的文章!
正文完