set serveroutput on;
declare
l_api_version CONSTANT NUMBER:=1;
l_init_msg_list CONSTANT VARCHAR2(1):=FND_API.g_false;
l_commit CONSTANT VARCHAR2(1):=FND_API.g_false;
l_acctd_amount_applied_from ar_receivable_applications_all.acctd_amount_applied_from%TYPE;
l_acctd_amount_applied_to ar_receivable_applications_all.acctd_amount_applied_to%TYPE;
l_cm_app_rec AR_CM_API_PUB.cm_app_rec_type;
v_cm_unapp_rec AR_CM_API_PUB.CM_UNAPP_REC_TYPE;
g_request_id NUMBER:=Fnd_Global.conc_request_id;
l_msg_count NUMBER;
l_msg_data VARCHAR2(2500);
v_msg_data VARCHAR2(4000);
v_process_status VARCHAR2(2500);
l_out_rec_application_id NUMBER;
-- v_process VARCHAR2(1):='Y';
l_return_status VARCHAR2(1);
l_gl_status VARCHAR2(50):=NULL;
v_accrual_cnt NUMBER:=0;
v_accrual_cm_cnt NUMBER:=0;
v_apply_amt NUMBER:=0;
v_accu_amt NUMBER:=0;
v_acm_amt NUMBER:=0;
v_request_id NUMBER;
l_boolean BOOLEAN;
v_xml_layout BOOLEAN;
l_phase VARCHAR2(200);
l_dev_phase VARCHAR2(200);
l_dev_status VARCHAR2(200);
l_message VARCHAR2(4000):=NULL;
l_status VARCHAR2(200);
v_print_report NUMBER;
v_rec_present NUMBER :=0;
g_gl_date DATE;
CURSOR get_inv_cur IS
<write your cursor to get details for invoice >
CURSOR get_accrualCM_cur IS
<write your cursor to get details for invoice >
BEGIN
dbms_output.put_line('-------------- Process Begins -------------------');
v_print_report := 0;
Mo_global.init('AR');
Mo_global.set_policy_context('S',23424); --23424
Fnd_Global.apps_initialize( 158939,59346,222); -- patch
FOR rec_inv IN get_inv_cur LOOP
/* Fnd_Global.apps_initialize( 157894, 52189, 222 );*/
v_process_status :=NULL;
v_msg_data :=NULL;
dbms_output.put_line('running for Actual Invoice : '||rec_inv.inv_trx_num);
FOR rec_acc_cm IN get_CM_cur(
rec_inv.inv_trx_num,
rec_inv.cust_acct_id
)LOOP
v_cm_unapp_rec.cm_customer_trx_id := rec_acc_cm.customer_trx_id;
v_cm_unapp_rec.inv_customer_trx_id := rec_acc.customer_trx_id;
v_cm_unapp_rec.reversal_gl_date := rec_acc_cm.gl_date;
/* --API Variables
l_cm_app_rec.cm_customer_trx_id :=rec_cm.customer_trx_id;
l_cm_app_rec.cm_trx_number :=rec_cm.CM_trx_num; -- Credit Memo Number
l_cm_app_rec.inv_customer_trx_id :=rec_inv.customer_trx_id;
l_cm_app_rec.inv_trx_number :=rec_inv.accrual_trx_num; -- Invoice Number
l_cm_app_rec.installment :=NULL;
l_cm_app_rec.applied_payment_schedule_id :=NULL;
l_cm_app_rec.amount_applied :=v_apply_amt;
l_cm_app_rec.apply_date :=g_gl_date;
l_cm_app_rec.gl_date :=g_gl_date ;--rec_cm.gl_date;
l_cm_app_rec.show_closed_invoices :='Y';
l_cm_app_rec.comments :='Showtime: Applied Accrual CM to accrual invoice ' ;
l_cm_app_rec.called_from :=NULL;
--Calling API
ar_cm_api_pub.apply_on_account(
p_api_version=>l_api_version,
p_init_msg_list=>l_init_msg_list,
p_commit=>l_commit,
p_cm_app_rec=>l_cm_app_rec,
x_return_status=>l_return_status,
x_msg_count=>l_msg_count,
x_msg_data=>l_msg_data,
x_out_rec_application_id=>l_out_rec_application_id,
x_acctd_amount_applied_from=>l_acctd_amount_applied_from,
x_acctd_amount_applied_to=>l_acctd_amount_applied_to
);
*/
ar_cm_api_pub.unapply_on_account(
p_api_version => 1.0
,p_init_msg_list => FND_API.G_FALSE
,p_commit => FND_API.G_FALSE
,p_cm_unapp_rec => v_cm_unapp_rec
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data);
COMMIT;
v_msg_data := l_msg_data;
IF NVL(l_return_status,'****')='S' THEN
dbms_output.put_line('Success for : '||rec_cm.CM_trx_num ||' Amt Applied: ' ||v_apply_amt);
v_process_status :='SUCCESS';
v_msg_data :=NULL;
v_print_report := v_print_report +1;
ELSE
IF l_msg_count=1 THEN
dbms_output.put_line(v_msg_data);
ELSIF l_msg_count>1 THEN
FOR i IN 1..l_msg_count LOOP
v_msg_data:=v_msg_data
||substr(
fnd_msg_pub.get(p_encoded=>fnd_api.g_false),
1,
1500
);
END LOOP;
dbms_output.put_line(v_msg_data);
END IF;
v_process_status := 'ERROR: '||v_msg_data;
dbms_output.put_line('Failure for: '||rec_cm.CM_trx_num || ' error msg: '|| v_msg_data);
COMMIT;
END IF; -- l_return_status = 'S' condition
END LOOP; -- cursor for CM loop
END LOOP;-- cursor for inv loop
dbms_output.put_line('-------------- Process Completed -------------------');
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error for CM '||SQLERRM);
END ;
declare
l_api_version CONSTANT NUMBER:=1;
l_init_msg_list CONSTANT VARCHAR2(1):=FND_API.g_false;
l_commit CONSTANT VARCHAR2(1):=FND_API.g_false;
l_acctd_amount_applied_from ar_receivable_applications_all.acctd_amount_applied_from%TYPE;
l_acctd_amount_applied_to ar_receivable_applications_all.acctd_amount_applied_to%TYPE;
l_cm_app_rec AR_CM_API_PUB.cm_app_rec_type;
v_cm_unapp_rec AR_CM_API_PUB.CM_UNAPP_REC_TYPE;
g_request_id NUMBER:=Fnd_Global.conc_request_id;
l_msg_count NUMBER;
l_msg_data VARCHAR2(2500);
v_msg_data VARCHAR2(4000);
v_process_status VARCHAR2(2500);
l_out_rec_application_id NUMBER;
-- v_process VARCHAR2(1):='Y';
l_return_status VARCHAR2(1);
l_gl_status VARCHAR2(50):=NULL;
v_accrual_cnt NUMBER:=0;
v_accrual_cm_cnt NUMBER:=0;
v_apply_amt NUMBER:=0;
v_accu_amt NUMBER:=0;
v_acm_amt NUMBER:=0;
v_request_id NUMBER;
l_boolean BOOLEAN;
v_xml_layout BOOLEAN;
l_phase VARCHAR2(200);
l_dev_phase VARCHAR2(200);
l_dev_status VARCHAR2(200);
l_message VARCHAR2(4000):=NULL;
l_status VARCHAR2(200);
v_print_report NUMBER;
v_rec_present NUMBER :=0;
g_gl_date DATE;
CURSOR get_inv_cur IS
<write your cursor to get details for invoice >
CURSOR get_accrualCM_cur IS
<write your cursor to get details for invoice >
BEGIN
dbms_output.put_line('-------------- Process Begins -------------------');
v_print_report := 0;
Mo_global.init('AR');
Mo_global.set_policy_context('S',23424); --23424
Fnd_Global.apps_initialize( 158939,59346,222); -- patch
FOR rec_inv IN get_inv_cur LOOP
/* Fnd_Global.apps_initialize( 157894, 52189, 222 );*/
v_process_status :=NULL;
v_msg_data :=NULL;
dbms_output.put_line('running for Actual Invoice : '||rec_inv.inv_trx_num);
FOR rec_acc_cm IN get_CM_cur(
rec_inv.inv_trx_num,
rec_inv.cust_acct_id
)LOOP
v_cm_unapp_rec.cm_customer_trx_id := rec_acc_cm.customer_trx_id;
v_cm_unapp_rec.inv_customer_trx_id := rec_acc.customer_trx_id;
v_cm_unapp_rec.reversal_gl_date := rec_acc_cm.gl_date;
/* --API Variables
l_cm_app_rec.cm_customer_trx_id :=rec_cm.customer_trx_id;
l_cm_app_rec.cm_trx_number :=rec_cm.CM_trx_num; -- Credit Memo Number
l_cm_app_rec.inv_customer_trx_id :=rec_inv.customer_trx_id;
l_cm_app_rec.inv_trx_number :=rec_inv.accrual_trx_num; -- Invoice Number
l_cm_app_rec.installment :=NULL;
l_cm_app_rec.applied_payment_schedule_id :=NULL;
l_cm_app_rec.amount_applied :=v_apply_amt;
l_cm_app_rec.apply_date :=g_gl_date;
l_cm_app_rec.gl_date :=g_gl_date ;--rec_cm.gl_date;
l_cm_app_rec.show_closed_invoices :='Y';
l_cm_app_rec.comments :='Showtime: Applied Accrual CM to accrual invoice ' ;
l_cm_app_rec.called_from :=NULL;
--Calling API
ar_cm_api_pub.apply_on_account(
p_api_version=>l_api_version,
p_init_msg_list=>l_init_msg_list,
p_commit=>l_commit,
p_cm_app_rec=>l_cm_app_rec,
x_return_status=>l_return_status,
x_msg_count=>l_msg_count,
x_msg_data=>l_msg_data,
x_out_rec_application_id=>l_out_rec_application_id,
x_acctd_amount_applied_from=>l_acctd_amount_applied_from,
x_acctd_amount_applied_to=>l_acctd_amount_applied_to
);
*/
ar_cm_api_pub.unapply_on_account(
p_api_version => 1.0
,p_init_msg_list => FND_API.G_FALSE
,p_commit => FND_API.G_FALSE
,p_cm_unapp_rec => v_cm_unapp_rec
,x_return_status => l_return_status
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data);
COMMIT;
v_msg_data := l_msg_data;
IF NVL(l_return_status,'****')='S' THEN
dbms_output.put_line('Success for : '||rec_cm.CM_trx_num ||' Amt Applied: ' ||v_apply_amt);
v_process_status :='SUCCESS';
v_msg_data :=NULL;
v_print_report := v_print_report +1;
ELSE
IF l_msg_count=1 THEN
dbms_output.put_line(v_msg_data);
ELSIF l_msg_count>1 THEN
FOR i IN 1..l_msg_count LOOP
v_msg_data:=v_msg_data
||substr(
fnd_msg_pub.get(p_encoded=>fnd_api.g_false),
1,
1500
);
END LOOP;
dbms_output.put_line(v_msg_data);
END IF;
v_process_status := 'ERROR: '||v_msg_data;
dbms_output.put_line('Failure for: '||rec_cm.CM_trx_num || ' error msg: '|| v_msg_data);
COMMIT;
END IF; -- l_return_status = 'S' condition
END LOOP; -- cursor for CM loop
END LOOP;-- cursor for inv loop
dbms_output.put_line('-------------- Process Completed -------------------');
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error for CM '||SQLERRM);
END ;
No comments:
Post a Comment