--1.0 生成与发票一样的贷项通知单 created by jenrry 20170423
DECLARE
L_CUSTOMER_TRX_ID NUMBER;
L_INVOICE_NUMBER VARCHAR2(30); L_BATCH_SOURCE_REC AR_INVOICE_API_PUB.BATCH_SOURCE_REC_TYPE;
L_TRX_HEADER_TBL AR_INVOICE_API_PUB.TRX_HEADER_TBL_TYPE;
L_TRX_LINES_TBL AR_INVOICE_API_PUB.TRX_LINE_TBL_TYPE;
L_TRX_DIST_TBL AR_INVOICE_API_PUB.TRX_DIST_TBL_TYPE;
L_TRX_SALESCREDITS_TBL AR_INVOICE_API_PUB.TRX_SALESCREDITS_TBL_TYPE; L_RETURN_STATUS VARCHAR2(100);
L_MSG_COUNT NUMBER;
L_MSG_DATA VARCHAR2(2000); I NUMBER;
L_MESSAGE_LIST VARCHAR2(1000);
L_MSG_INDEX_OUT NUMBER;
BEGIN
FND_GLOBAL.APPS_INITIALIZE(USER_ID => 1111,
RESP_ID => 50737,
RESP_APPL_ID => 20005);
mo_global.init('AR');
SELECT ra_customer_trx_s.nextval INTO I FROM DUAL; mo_global.set_policy_context(p_access_mode => 'S', p_org_id => 142);
L_BATCH_SOURCE_REC.BATCH_SOURCE_ID := 1001; --事务处理来源ID
L_TRX_HEADER_TBL(1).TRX_HEADER_ID := I;
L_TRX_HEADER_TBL(1).TRX_DATE := fnd_conc_date.string_to_date('2017-03-31');
L_TRX_HEADER_TBL(1).GL_DATE := fnd_conc_date.string_to_date('2017-03-31');
L_TRX_HEADER_TBL(1).TRX_CURRENCY := 'CNY';
--L_TRX_HEADER_TBL(1).EXCHANGE_RATE_TYPE := 'Corporate';
--L_TRX_HEADER_TBL(1).exchange_date := SYSDATE+1;
--L_TRX_HEADER_TBL(1).EXCHANGE_RATE := 7;
L_TRX_HEADER_TBL(1).trx_number := '20170425002'; --创建的贷项通知单的trx_number
L_TRX_HEADER_TBL(1).BILL_TO_CUSTOMER_ID := 1040; --客户
L_TRX_HEADER_TBL(1).CUST_TRX_TYPE_ID := 1001; --创建贷项通知单的类型
L_TRX_HEADER_TBL(1).TERM_ID := NULL; L_TRX_LINES_TBL(1).TRX_HEADER_ID := I;
L_TRX_LINES_TBL(1).TRX_LINE_ID := ra_customer_trx_lines_s.nextval;
L_TRX_LINES_TBL(1).LINE_NUMBER := 1; --行
L_TRX_LINES_TBL(1).DESCRIPTION := '从高级全球公司间系统导入的发票';--行项目上的摘要
L_TRX_LINES_TBL(1).QUANTITY_INVOICED := 11; --开票数量
L_TRX_LINES_TBL(1).UNIT_SELLING_PRICE := -11; --开票单单价
L_TRX_LINES_TBL(1).LINE_TYPE := 'LINE'; L_TRX_DIST_TBL(1).TRX_DIST_ID := ra_cust_trx_line_gl_dist_s.nextval;
L_TRX_DIST_TBL(1).TRX_HEADER_ID := I;
L_TRX_DIST_TBL(1).TRX_LINE_ID := NULL; --账户类别=“应收账款”时,分配行上不能有TRX_LINE_ID
L_TRX_DIST_TBL(1).ACCOUNT_CLASS := 'REV';
L_TRX_DIST_TBL(1).AMOUNT := NULL;
L_TRX_DIST_TBL(1).ACCTD_AMOUNT := NULL;
L_TRX_DIST_TBL(1).PERCENT := 100; --指百分之百的核销
L_TRX_DIST_TBL(1).CODE_COMBINATION_ID := 3010; --应收账款的CCID L_TRX_DIST_TBL(2).TRX_DIST_ID := ra_cust_trx_line_gl_dist_s.nextval;
L_TRX_DIST_TBL(2).TRX_HEADER_ID := I;
--L_TRX_DIST_TBL(1).TRX_LINE_ID := 100;
L_TRX_DIST_TBL(2).ACCOUNT_CLASS := 'REC';
L_TRX_DIST_TBL(2).AMOUNT := NULL;
L_TRX_DIST_TBL(2).ACCTD_AMOUNT := NULL;
L_TRX_DIST_TBL(2).PERCENT := 100;
L_TRX_DIST_TBL(2).CODE_COMBINATION_ID := 3004;--收入的CCID -- mo_global.set_policy_context('S', fnd_global.org_id); --R12要单OU AR_INVOICE_API_PUB.CREATE_SINGLE_INVOICE(
P_API_VERSION => 1.0
,P_INIT_MSG_LIST => 'F'
,P_COMMIT => 'F'
,P_BATCH_SOURCE_REC => L_BATCH_SOURCE_REC
,P_TRX_HEADER_TBL => L_TRX_HEADER_TBL
,P_TRX_LINES_TBL => L_TRX_LINES_TBL
,P_TRX_DIST_TBL => L_TRX_DIST_TBL
,P_TRX_SALESCREDITS_TBL => L_TRX_SALESCREDITS_TBL
,X_CUSTOMER_TRX_ID => L_CUSTOMER_TRX_ID
,X_RETURN_STATUS => L_RETURN_STATUS
,X_MSG_COUNT => L_MSG_COUNT
,X_MSG_DATA => L_MSG_DATA);
IF L_RETURN_STATUS = FND_API.G_RET_STS_ERROR OR L_RETURN_STATUS = FND_API.G_RET_STS_UNEXP_ERROR THEN
DBMS_OUTPUT.PUT_LINE('UNEXPECTED ERRORS FOUND!');
/*ELSE
DBMS_OUTPUT.PUT_LINE(L_CUSTOMER_TRX_ID); SELECT TRX_NUMBER
INTO L_INVOICE_NUMBER
FROM RA_CUSTOMER_TRX_ALL
WHERE CUSTOMER_TRX_ID = L_CUSTOMER_TRX_ID;
DBMS_OUTPUT.PUT_LINE(L_INVOICE_NUMBER);*/
END IF;
DBMS_OUTPUT.PUT_LINE(L_RETURN_STATUS); FOR l_r IN (SELECT * FROM ar_trx_errors_gt)
LOOP
DBMS_OUTPUT.PUT_LINE(l_r.error_message);
END LOOP;
END;
/
--2.0 贷项通知单和发票的核销 DECLARE
l_cm_app_rec ar_cm_api_pub.cm_app_rec_type;
l_out_rec_application_id NUMBER;
l_acctd_amount_applied_from NUMBER;
l_acctd_amount_applied_to NUMBER;
l_return_status varchar2(1);
l_msg_count number;
l_msg_data varchar2(1000);
BEGIN
FND_GLOBAL.APPS_INITIALIZE(USER_ID => 1111,
RESP_ID => 50737,
RESP_APPL_ID => 20005);
mo_global.init('AR');
mo_global.set_policy_context(p_access_mode => 'S', p_org_id => 142); l_cm_app_rec.cm_customer_trx_id := 3019;--贷项通知单customer_trx_id
l_cm_app_rec.inv_customer_trx_id := 1001;--发票customer_trx_id
l_cm_app_rec.amount_applied := 121;--金额 --inv_line_number ra_customer_trx_lines.line_number%TYPE
ar_cm_api_pub.apply_on_account(p_api_version => 1,
p_init_msg_list => fnd_api.g_true,
p_commit => fnd_api.g_false,
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,
p_org_id => 142);
dbms_output.put_line('l_return_status:' || l_return_status);
dbms_output.put_line('l_msg_count:' || l_msg_count);
dbms_output.put_line('l_out_rec_application_id:' || l_out_rec_application_id);
END;

  

Oracle EBS AP 创建贷项通知单并核销到相应发票的更多相关文章

  1. Oracle EBS AR 贷项通知单核销取值

    SELECT cm.trx_number ,fnd_flex_ext.get_segs('SQLGL', 'GL#', gcc.chart_of_accounts_id, ad.code_combin ...

  2. Oracle EBS 贷项通知单核销

    SELECT cm.trx_number ,fnd_flex_ext.get_segs('SQLGL', 'GL#', gcc.chart_of_accounts_id, ad.code_combin ...

  3. 使用API创建AR 贷项通知单

    DECLARE --8000000063 l_dummy varchar2(240); l_customer_trx_id ra_customer_trx.customer_trx_id%type; ...

  4. EBS AP 创建会计科目失败

    路径:应付款系统管理员/发票/发票 问题描述: 在AP发票界面录入一笔发票,验证发票,撤销发票,然后在AP发票界面的“活动”中创建会计科目,发现带出的并发请求“创建会计科目”正常跑完,但是通过“报表/ ...

  5. ORACLE EBS AP invoice 到付款的数据流

    --1.Invoice创建时生成数据如下表 --Invoice主表 SELECT * FROM AP_INVOICES_ALL A WHERE A.INVOICE_NUM = '20111213001 ...

  6. Oracle EBS OPM 创建生产批

    --创建生产批 --created by jenrry DECLARE x_message_count NUMBER; x_message_list VARCHAR2 (2000); x_return ...

  7. Oracle EBS AP取消核销

    --取消核销 created by jenrry 20170425 DECLARE l_result BOOLEAN; l_msg_count NUMBER; l_result_n varchar2( ...

  8. Oracle EBS AP 供应商API

    --创建供应商地址上的电话号码 created by jenrry 20170419 DECLARE l_return_status VARCHAR2(1); l_msg_count NUMBER; ...

  9. Oracle EBS AP 已经完全付款的发票仍然可以选择并进行零金额的付款

    1>找出相应的发票; SELECT DISTINCT ai.invoice_id, ai.invoice_num invoice_num, pv.segment1 vendor_num, pv. ...

随机推荐

  1. php -- 日期时间

    ----- 017-datetime.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv=&qu ...

  2. C#基础篇二变量与变量类型

    说到数据类型,先把基本的数据类型拿出来 byte 0 到 255 无符号 8 位整数sbyte -128 到 127 有符号 8 位整数short -32,768 到 32,767 有符号 16 位整 ...

  3. linux比较文件夹的差异命令

    可以使用 diff -ruNa s1 s2 或者使用 diff -uN c1 c2 结果如下: sandbox$ tree . |-- dir1 | |-- a.txt | `-- b.txt `-- ...

  4. Quartz2D绘制路径

    // 在画线的时候,方法的内部默认创建一个path.它把路径都放到了path里面去. // 1.创建路径 cgmutablepathref 调用该方法相当于创建了一个路径,这个路径用来保存绘图信息. ...

  5. Netty 高性能之道 - Recycler 对象池的复用

    前言 我们知道,Java 创建一个实例的消耗是不小的,如果没有使用栈上分配和 TLAB,那么就需要使用 CAS 在堆中创建对象.所以现在很多框架都使用对象池.Netty 也不例外,通过重用对象,能够避 ...

  6. Java 并发编程常识 —— by 梁飞

    参考 :梁飞 并发编程常识

  7. [转]解决ssh登录后闲置时间过长而断开连接

    本文转自: 转载自博客园wanghetao的博客 我们通过终端连接服务器时,当鼠标和键盘长时间不操作,服务器就会自动断开连接,我们还的需要重新连接,感觉很麻烦,总结一下解决此问题的方法 方法一 修改/ ...

  8. JavaScript学习总结(二)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

    一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...

  9. Java虚拟机--垃圾收集器和内存分配

    垃圾收集器和内存分配 程序计数器.虚拟机栈.本地方法栈这三个区域和线程的生命周期一致,所以方法结束或者线程结束时,内存自然就跟着回收了.Java堆和方法区,只有在程序处于运行期间才能知道会创建哪些对象 ...

  10. 卸载阿里云自带svn