Oracle EBS Interface/API(18) - 標準採購訂單、PBA和一攬子發放等等審批API

一、標準採購訂單和PBA審批API:

DECLARE
  Lv_Ret_Status  VARCHAR2(30);
  Ln_Org_Id      NUMBER := 101; --業務實體標識
  Ln_Preparer_Id NUMBER; --採購員或PO提交審批人的員工ID
  Ln_Document_Id NUMBER := 772357; --標準採購訂單/一攬子採購協議
  --單據類型
  Lv_Document_Type Po_Document_Types_All_b.Document_Type_Code%TYPE;
  --單據子類型 
  Lv_Document_Subtype Po_Document_Types_All_b.Document_Subtype%TYPE;
  --後臺審批標誌
  /*PO_CORE_S.G_PARAMETER_NO或NULL:以同步模式啓動PO審批工作流,在此我們發出提交併啓動工作流。
  直到工作流完成或到達一個等待節點(例如,當它向審批人發送通知時),控件才返回給調用者。
  PO_CORE_S.G_PARAMETER_YES爲Y:在後臺模式啓動PO審批工作流,在後臺啓動工作流,立即返回,不發出任何提交。*/
  Lv_Approval_Background_Flag VARCHAR2(10) := NULL;
  --
  Lv_Mass_Update_Releases VARCHAR2(10) := NULL;
BEGIN
  Fnd_Msg_Pub.Initialize();
  Mo_Global.Init('PO');
  Mo_Global.Set_Policy_Context('S', Ln_Org_Id);
  --to set org context in a R12 env
  Fnd_Global.Apps_Initialize(User_Id      => 110
                            ,Resp_Id      => 6502
                            ,Resp_Appl_Id => 20003);
  --獲得BPA或標準採購單的單據類型、單據子類型和採購員員工標識
  SELECT Podb.Document_Type_Code
        ,Podb.Document_Subtype
        ,Pha.Agent_Id
    INTO Lv_Document_Type
        ,Lv_Document_Subtype
        ,Ln_Preparer_Id
    FROM Po_Headers_All           Pha
        ,Po_Document_Types_All_Vl Podb
   WHERE Pha.Type_Lookup_Code = Podb.Document_Subtype
     AND Pha.Org_Id = Podb.Org_Id
     AND Podb.Document_Type_Code IN ('PO', 'PA')
     AND Pha.Po_Header_Id = Ln_Document_Id;
  --Call Api
  Po_Document_Update_Pvt.Launch_Po_Approval_Wf(p_Api_Version              => 1.0
                                              ,p_Init_Msg_List            => Fnd_Api.g_False
                                              ,x_Return_Status            => Lv_Ret_Status
                                              ,p_Document_Id              => Ln_Document_Id
                                              ,p_Document_Type            => Lv_Document_Type
                                              ,p_Document_Subtype         => Lv_Document_Subtype
                                              ,p_Preparer_Id              => Ln_Preparer_Id
                                              ,p_Approval_Background_Flag => Lv_Approval_Background_Flag
                                              ,p_Mass_Update_Releases     => Lv_Mass_Update_Releases
                                              ,p_Retroactive_Price_Change => NULL);
  Dbms_Output.Put_Line('Lv_Ret_Status:' || Lv_Ret_Status);
END Launch_Po_Approval_Wf;

二、一攬子發放審批API

DECLARE
  Lv_Ret_Status  VARCHAR2(30);
  Ln_Org_Id      NUMBER := 101; --業務實體標識
  Ln_Preparer_Id NUMBER; --採購員或PO提交審批人的員工ID
  Ln_Document_Id NUMBER := 1393065; --一攬子發放標識
  --單據類型
  Lv_Document_Type Po_Document_Types_All_b.Document_Type_Code%TYPE;
  --單據子類型 
  Lv_Document_Subtype Po_Document_Types_All_b.Document_Subtype%TYPE;
  --後臺審批標誌
  /*PO_CORE_S.G_PARAMETER_NO或NULL:以同步模式啓動PO審批工作流,在此我們發出提交併啓動工作流。
  直到工作流完成或到達一個等待節點(例如,當它向審批人發送通知時),控件才返回給調用者。
  PO_CORE_S.G_PARAMETER_YES爲Y:在後臺模式啓動PO審批工作流,在後臺啓動工作流,立即返回,不發出任何提交。*/
  Lv_Approval_Background_Flag VARCHAR2(10) := NULL;
  --
  Lv_Mass_Update_Releases VARCHAR2(10) := NULL;
BEGIN
  Fnd_Msg_Pub.Initialize();
  Mo_Global.Init('PO');
  Mo_Global.Set_Policy_Context('S', Ln_Org_Id);
  --to set org context in a R12 env
  Fnd_Global.Apps_Initialize(User_Id      => 110
                            ,Resp_Id      => 6502
                            ,Resp_Appl_Id => 20003);
  --一攬子發放
  SELECT Podb.Document_Type_Code
        ,Podb.Document_Subtype
        ,Pra.Agent_Id
    INTO Lv_Document_Type
        ,Lv_Document_Subtype
        ,Ln_Preparer_Id
    FROM Po_Headers_All           Pha
        ,Po_Releases_All          Pra
        ,Po_Document_Types_All_Vl Podb
   WHERE Pha.Po_Header_Id = Pra.Po_Header_Id
     AND Pha.Type_Lookup_Code = Podb.Document_Subtype
     AND Pha.Org_Id = Podb.Org_Id
     AND Podb.Document_Type_Code = 'RELEASE'
     AND Pra.Po_Release_Id = Ln_Document_Id;
  --Call Api
  Po_Document_Update_Pvt.Launch_Po_Approval_Wf(p_Api_Version              => 1.0
                                              ,p_Init_Msg_List            => Fnd_Api.g_False
                                              ,x_Return_Status            => Lv_Ret_Status
                                              ,p_Document_Id              => Ln_Document_Id
                                              ,p_Document_Type            => Lv_Document_Type
                                              ,p_Document_Subtype         => Lv_Document_Subtype
                                              ,p_Preparer_Id              => Ln_Preparer_Id
                                              ,p_Approval_Background_Flag => Lv_Approval_Background_Flag
                                              ,p_Mass_Update_Releases     => Lv_Mass_Update_Releases
                                              ,p_Retroactive_Price_Change => NULL);
  Dbms_Output.Put_Line('Lv_Ret_Status:' || Lv_Ret_Status);
END Launch_Po_Approval_Wf;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章