按照模板创建物料
--新建物料
DECLARE
l_Iface_Rec Inv.Mtl_System_Items_Interface%ROWTYPE;
l_Iface_Rec_v Inv.Mtl_Item_Revisions_Interface%ROWTYPE;
x_Error_Tbl Inv_Item_Grp.Error_Tbl_Type;
l_Template_Id NUMBER := 1; --Inv.Mtl_Item_Templates
x_Return_Status VARCHAR2(1);
l_User_Id NUMBER := 0; --User ID, Sysadmin here
l_Mst_Mfg_Org_Id NUMBER := 1; --Master Inv Organization
l_Hz_Mfg_Org_Id NUMBER := 1; --hz Inv Organization
l_Bj_Mfg_Org_Id NUMBER; --bj Inv Organization
Ln_Request_Id NUMBER;
l_Phase VARCHAR2(80);
l_Status VARCHAR2(80);
l_Dev_Phase VARCHAR2(30);
l_Dev_Status VARCHAR2(30);
l_Request_Message VARCHAR2(300);
l_Request_Result BOOLEAN;
Lv_Msg_Data VARCHAR2(3000);
g_Set_Process_Id NUMBER := To_Number(To_Char(SYSDATE
,'yymmdd') ||
To_Char(SYSDATE
,'HH24miss'));
BEGIN
SELECT t.Organization_Id
INTO l_Bj_Mfg_Org_Id
FROM Mtl_Parameters t
WHERE t.Organization_Code = '100';
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;
--Item
l_Iface_Rec.Process_Flag := 1;
l_Iface_Rec.Transaction_Type := 'CREATE';
l_Iface_Rec.Set_Process_Id := g_Set_Process_Id;
l_Iface_Rec.Segment1 := 'Y001234567';
l_Iface_Rec.Description := '装配件描述-Y001234567-外协加工费';
l_Iface_Rec.Primary_Uom_Code := 'PCS';
l_Iface_Rec.Template_Id := l_Template_Id; --模板id
l_Iface_Rec.List_Price_Per_Unit := '111'; --价目表价格
l_Iface_Rec.Allow_Item_Desc_Update_Flag := 'N'; --允许更新说明
--Master Inv Organization first, then Current Inv Organization
l_Iface_Rec.Organization_Id := l_Mst_Mfg_Org_Id;
INSERT INTO Mtl_System_Items_Interface
VALUES l_Iface_Rec;
l_Iface_Rec.Organization_Id := l_Hz_Mfg_Org_Id;
INSERT INTO Mtl_System_Items_Interface
VALUES l_Iface_Rec;
l_Iface_Rec.Organization_Id := l_Bj_Mfg_Org_Id;
INSERT INTO Mtl_System_Items_Interface
VALUES l_Iface_Rec;
--请求
Ln_Request_Id := Fnd_Request.Submit_Request(Application => 'INV'
,Program => 'INCOIN'
,Sub_Request => FALSE
,Argument1 => 90
, --Organization id
Argument2 => 1
, --All organizations
Argument3 => 1
, --Validate Items
Argument4 => 1
, --Process Items
Argument5 => 1
, --Delete Processed Rows
Argument6 => g_Set_Process_Id
, --Process Set (Null for All)
Argument7 => 1
, --Create or Update Items
Argument8 => 1 --Gather Statistics
);
IF Nvl(Ln_Request_Id
,0) = 0 THEN
Lv_Msg_Data := NULL;
BEGIN
SELECT Mie.Error_Message
INTO Lv_Msg_Data
FROM Mtl_Interface_Errors Mie
,Mtl_System_Items_Interface Msi
WHERE Msi.Interface_Table_Unique_Id = Mie.Unique_Id
AND Msi.Set_Process_Id = g_Set_Process_Id;
EXCEPTION
WHEN OTHERS THEN
Lv_Msg_Data := NULL;
END;
Dbms_Output.Put_Line('Lv_Msg_Data:' || Lv_Msg_Data);
ELSE
COMMIT;
l_Request_Result := Fnd_Concurrent.Wait_For_Request(Request_Id => Ln_Request_Id
,INTERVAL => 10
,Max_Wait => 0
,Phase => l_Phase
,Status => l_Status
,Dev_Phase => l_Dev_Phase
,Dev_Status => l_Dev_Status
,Message => l_Request_Message);
IF l_Request_Result THEN
Dbms_Output.Put_Line('Import_Item Run success');
Dbms_Output.Put_Line('Ln_Request_Id:' || Ln_Request_Id);
ELSE
Dbms_Output.Put_Line('phase=' || l_Phase);
Dbms_Output.Put_Line('status=' || l_Status);
Dbms_Output.Put_Line('dev_phase=' || l_Dev_Phase);
Dbms_Output.Put_Line('dev_status=' || l_Dev_Status);
Dbms_Output.Put_Line('message=' || l_Request_Message);
END IF;
END IF;
END;