一、标准采购订单和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;