--以下代码于20181002在Tony环境实现
DECLARE
p_invoice_id NUMBER := 10104; -- 'TXXTEST01'
p_org_id NUMBER := 82; -- '动物研究所'
l_approval_status VARCHAR2(20);
l_holds_count NUMBER;
l_funds_return_code VARCHAR2(100);
l_cancel_count NUMBER;
-- l_Hold_Count Number;
l_Funds_Code Varchar2(30);
l_Approve_Status Varchar2(120);
BEGIN
/* apps.fnd_global.apps_initialize(user_id => 1466, resp_id => 50370, resp_appl_id => 200);
mo_global.set_policy_context('S', p_org_id);*/
BEGIN
--mo_global.init('SQLAP');
apps.fnd_global.apps_initialize(user_id => 1110,
resp_id => 50597,
resp_appl_id => 20003);
--mo_global.set_policy_context('S', 0);
mo_global.init('M'); --务必加上这个语句
END;
SELECT COUNT(1)
INTO l_cancel_count
FROM ap_invoice_distributions_all
WHERE invoice_id = p_invoice_id
AND cancellation_flag = 'Y';
IF l_cancel_count > 0 THEN
dbms_output.put_line('AP_INV_CANCELLED_ONCE');
ELSE
--11i
/* ap_approval_pkg.approve(p_run_option => NULL,
p_invoice_batch_id => NULL,
p_begin_invoice_date => NULL,
p_end_invoice_date => NULL,
p_vendor_id => NULL,
p_pay_group => NULL,
p_invoice_id => p_invoice_id,
p_entered_by => NULL,
p_set_of_books_id => NULL,
p_trace_option => NULL,
p_conc_flag => 'N',
p_holds_count => l_holds_count,
p_approval_status => l_approval_status,
p_calling_sequence => ' api');*/
--r12
Ap_Approval_Pkg.Approve(p_Run_Option => Null,
p_Invoice_Batch_Id => Null,
p_Begin_Invoice_Date => Null,
p_End_Invoice_Date => Null,
p_Vendor_Id => Null,
p_Pay_Group => Null,
p_Invoice_Id => p_invoice_id,
p_Entered_By => Null,
p_Set_Of_Books_Id => Null,
p_Trace_Option => Null,
p_Conc_Flag => 'N',
p_Holds_Count => l_holds_count,
p_Approval_Status => l_Approve_Status,
p_Calling_Mode => Null,
p_Calling_Sequence => 'CUX_3_AR_INTER_PKG',
p_Funds_Return_Code => l_Funds_Code,
p_Debug_Switch => Null,
p_Budget_Control => Null,
p_Commit => 'N');
dbms_output.put_line('p_holds_count[' || l_holds_count || ']');
dbms_output.put_line('p_approval_status[' || l_approval_status || ']');
END IF;
If l_Holds_Count > 0 Then
null;
End If;
--dbms_output.put_line('p_funds_return_code[' || l_funds_return_code || ']');
END;
/*SELECT ap_invoices_pkg.get_holds_count(aia.invoice_id),
ap_invoices_pkg.get_approval_status(aia.invoice_id,
aia.invoice_amount,
aia.payment_status_flag,
aia.invoice_type_lookup_code)
FROM ap_invoices_all aia
WHERE aia.invoice_id = 10104; */ -- p_invoice_id;