ORACLE EBS 创建物料接口【Interface】

按照模板创建物料

--新建物料
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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值