一、標準採購訂單和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;