转自:
http://blog.csdn.net/chenxianping/article/details/49513683
系统版本:
RDBMS : 9.2.0.6.0
Oracle 应用产品 : 11.5.10.2
上篇文章:Oracle EBS AR 客户返利和坏帐准备事务处理类型设置, 用户提到“贷项-坏帐准备”和“贷项-客户返利”事务处理要做AR中操作,根据客户需求可用用AR事务处理接口或API来实现批量导入AR事务处理。但是,网上并没有找到AR贷项通知单的API或接口实例文献。
通过以查看AR事务下功能Form源代码和后台相关于AR事务处理的包,找到一个比较合适包:ar_transaction_pub.Create_Transaction。但是,希望有大神帮助验证或提供建议!
快速参考
API:ar_transaction_pub.Create_Transaction
|
参数
|
说明
|
默认值
|
|
p_api_name
|
API名称,随给个名称
|
|
|
p_api_version
|
版本号
|
|
|
p_init_msg_list
|
是否初始化信息列表
|
FND_API.G_FALSE
|
|
p_commit
|
是否Commit(Oracle事务处理)
|
FND_API.G_FALSE
|
|
p_validation_level
|
验证层级(100)
|
FND_API.G_VALID_LEVEL_FULL=100
|
|
p_batch_rec
|
AR事务处理批
|
|
|
p_header_rec
|
AR事务处理题头
|
|
|
p_receivable_gl_date
|
GL日期
|
p_header_rec.trx_date必须与它同一天
|
|
p_commitment_rec
|
|
|
|
p_lines_tbl
|
AR事务处理行
|
|
|
p_tax_lines_tbl
|
AR事务处理税行
|
|
|
p_freight_lines_tbl
|
AR事务处理运费行
|
|
|
p_salescredit_lines_tbl
|
AR事务处理贷项发票
|
|
|
p_dist_tbl
|
AR事务处理分配行
|
|
|
p_return_status
|
返回值,执行结果返回标志
|
S表志成功,E表示错误
|
|
p_msg_count
|
返回值,消息记录条数
|
|
|
p_msg_data
|
返回值,消息数据
|
|
|
p_errors
|
返回值,错误集
|
|
|
p_customer_trx_id
|
返回值,AR事务处理标识ID
|
|
例实代码如下:
-
Declare
-
l_batch_rec ra_batches%rowtype;
-
l_header_rec ra_customer_trx%rowtype;
-
l_customer_trx_id Number;
-
l_commitment_rec arp_process_commitment.commitment_rec_type;
-
l_lines_tbl ar_transaction_pub.Line_Tbl_Type;
-
l_tax_lines_tbl ar_transaction_pub.Line_Tbl_Type;
-
l_freight_lines_tbl ar_transaction_pub.Line_Tbl_Type;
-
l_salescredit_lines_tbl ar_transaction_pub.Salescredit_Tbl_Type;
-
l_dist_tbl ar_transaction_pub.Dist_Tbl_Type;
-
l_return_status varchar2(2000);
-
l_msg_count NUMBER;
-
l_msg_data varchar2(4000);
-
l_errors arp_trx_validate.Message_Tbl_Type;
-
i Number;
-
Begin
-
-
l_errors.delete;
-
fnd_global.apps_initialize(user_id => 1110,
-
resp_id => 50268,
-
resp_appl_id => 222);
-
fnd_client_info.set_org_context(114);
-
-
l_batch_rec.BATCH_SOURCE_ID := 1002;
-
-
-
l_header_rec.TRX_NUMBER := 'CXP151026_001';
-
-
l_header_rec.BATCH_SOURCE_ID := l_batch_rec.batch_source_id;
-
-
l_header_rec.CUST_TRX_TYPE_ID := 1080;
-
-
l_header_rec.ORG_ID := 114;
-
-
l_header_rec.TRX_DATE := sysdate;
-
/****收单方***/
-
-
l_header_rec.BILL_TO_CUSTOMER_ID := 1253;
-
-
l_header_rec.BILL_TO_SITE_USE_ID := 1210;
-
-
l_header_rec.BILL_TO_CONTACT_ID := 6058;
-
/****付款客户***/
-
-
l_header_rec.PAYING_CUSTOMER_ID := l_header_rec.BILL_TO_CUSTOMER_ID;
-
-
l_header_rec.PAYING_SITE_USE_ID := l_header_rec.BILL_TO_SITE_USE_ID;
-
-
l_header_rec.SOLD_TO_CUSTOMER_ID := l_header_rec.BILL_TO_CUSTOMER_ID;
-
-
l_header_rec.PRIMARY_SALESREP_ID := 100000049;
-
-
l_header_rec.INVOICE_CURRENCY_CODE := 'CNY';
-
l_header_rec.SET_OF_BOOKS_ID := 1001;
-
-
l_header_rec.STATUS_TRX := 'OP';
-
-
l_header_rec.PRINTING_PENDING := 'Y';
-
-
l_header_rec.COMPLETE_FLAG := 'N';
-
-
l_lines_tbl(1).ORG_ID := l_header_rec.ORG_ID;
-
l_lines_tbl(1).EXTENDED_AMOUNT := -300;
-
l_lines_tbl(1).REVENUE_AMOUNT := -300;
-
-
l_lines_tbl(1).LINE_NUMBER := 1;
-
l_lines_tbl(1).SET_OF_BOOKS_ID := l_header_rec.SET_OF_BOOKS_ID;
-
-
l_lines_tbl(1).DESCRIPTION := '测试行1';
-
l_lines_tbl(1).LINE_TYPE := 'LINE';
-
-
l_lines_tbl(1).AUTOTAX := 'N';
-
-
-
l_dist_tbl(1).ACCOUNT_CLASS := 'REC';
-
l_dist_tbl(1).ACCOUNT_SET_FLAG := 'N';
-
-
l_dist_tbl(1).ACCTD_AMOUNT := l_lines_tbl(1).EXTENDED_AMOUNT;
-
l_dist_tbl(1).AMOUNT := l_lines_tbl(1).EXTENDED_AMOUNT;
-
-
l_dist_tbl(1).CODE_COMBINATION_ID := 1494;
-
-
l_dist_tbl(1).GL_DATE := l_header_rec.TRX_DATE;
-
-
l_dist_tbl(1).ORG_ID := l_header_rec.ORG_ID;
-
-
l_dist_tbl(1).PERCENT := 100;
-
-
l_dist_tbl(1).SET_OF_BOOKS_ID := l_header_rec.SET_OF_BOOKS_ID;
-
-
-
l_dist_tbl(2).line_index := 1;
-
-
l_dist_tbl(2).ACCOUNT_CLASS := 'REV';
-
l_dist_tbl(2).ACCOUNT_SET_FLAG := 'N';
-
-
l_dist_tbl(2).ACCTD_AMOUNT := l_lines_tbl(1).EXTENDED_AMOUNT;
-
l_dist_tbl(2).AMOUNT := l_lines_tbl(1).EXTENDED_AMOUNT;
-
-
l_dist_tbl(2).CODE_COMBINATION_ID := 12814;
-
-
l_dist_tbl(2).GL_DATE := l_header_rec.TRX_DATE;
-
-
l_dist_tbl(2).ORG_ID := l_header_rec.ORG_ID;
-
-
l_dist_tbl(2).PERCENT := 100;
-
-
l_dist_tbl(2).SET_OF_BOOKS_ID := l_header_rec.SET_OF_BOOKS_ID;
-
-
ar_transaction_pub.Create_Transaction(p_api_name => 'ARXTWMAI',
-
p_api_version => 1,
-
p_init_msg_list => FND_API.G_FALSE,
-
p_commit => FND_API.G_FALSE,
-
p_validation_level => FND_API.G_VALID_LEVEL_FULL,
-
p_batch_rec => l_batch_rec,
-
p_header_rec => l_header_rec,
-
p_receivable_gl_date => l_header_rec.TRX_DATE,
-
p_commitment_rec => l_commitment_rec,
-
p_lines_tbl => l_lines_tbl,
-
p_tax_lines_tbl => l_tax_lines_tbl,
-
p_freight_lines_tbl => l_freight_lines_tbl,
-
p_salescredit_lines_tbl => l_salescredit_lines_tbl,
-
p_dist_tbl => l_dist_tbl,
-
p_return_status => l_return_status,
-
p_msg_count => l_msg_count,
-
p_msg_data => l_msg_data,
-
p_errors => l_errors,
-
p_customer_trx_id => l_customer_trx_id);
-
-
dbms_output.put_line('p_return_status=' || l_return_status);
-
dbms_output.put_line('l_msg_data=' || l_msg_data);
-
dbms_output.put_line('l_errors=' || l_errors.count);
-
For i In 1 .. l_errors.count Loop
-
dbms_output.put_line('customer_trx_id:' || l_errors(i)
-
.customer_trx_id);
-
dbms_output.put_line('message_name:' || l_errors(i).message_name);
-
dbms_output.put_line('token_name_1:' || l_errors(i).token_name_1);
-
dbms_output.put_line('token_1:' || l_errors(i).token_1);
-
dbms_output.put_line('token_name_2:' || l_errors(i).token_name_2);
-
dbms_output.put_line('token_2:' || l_errors(i).token_2);
-
dbms_output.put_line('encoded_message:' || l_errors(i)
-
.encoded_message);
-
dbms_output.put_line('translated_message:' || l_errors(i)
-
.translated_message);
-
End Loop;
-
dbms_output.put_line('p_customer_trx_id=' || l_customer_trx_id);
-
End;<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;">
-
Declare
l_batch_rec ra_batches%rowtype;
l_header_rec ra_customer_trx%rowtype;
l_customer_trx_id Number;
l_commitment_rec arp_process_commitment.commitment_rec_type;
l_lines_tbl ar_transaction_pub.Line_Tbl_Type;
l_tax_lines_tbl ar_transaction_pub.Line_Tbl_Type;
l_freight_lines_tbl ar_transaction_pub.Line_Tbl_Type;
l_salescredit_lines_tbl ar_transaction_pub.Salescredit_Tbl_Type;
l_dist_tbl ar_transaction_pub.Dist_Tbl_Type;
l_return_status varchar2(2000);
l_msg_count NUMBER;
l_msg_data varchar2(4000);
l_errors arp_trx_validate.Message_Tbl_Type;
i Number;
Begin
l_errors.delete;
fnd_global.apps_initialize(user_id => 1110,
resp_id => 50268,
resp_appl_id => 222); --1318, 50559, 222);
fnd_client_info.set_org_context(114);
--事务处理来源
l_batch_rec.BATCH_SOURCE_ID := 1002;
--AR事务处理题头
--事务处理编号
l_header_rec.TRX_NUMBER := 'CXP151026_001';
--来源ID
l_header_rec.BATCH_SOURCE_ID := l_batch_rec.batch_source_id;
--事务处理类型
l_header_rec.CUST_TRX_TYPE_ID := 1080;
--OU 标识
l_header_rec.ORG_ID := 114;
--事务处理日期
l_header_rec.TRX_DATE := sysdate;
/****收单方***/
--客户ID
l_header_rec.BILL_TO_CUSTOMER_ID := 1253;
--客户地点ID
l_header_rec.BILL_TO_SITE_USE_ID := 1210;
--联系人ID
l_header_rec.BILL_TO_CONTACT_ID := 6058;
/****付款客户***/
--客户ID
l_header_rec.PAYING_CUSTOMER_ID := l_header_rec.BILL_TO_CUSTOMER_ID;
--客户地点ID
l_header_rec.PAYING_SITE_USE_ID := l_header_rec.BILL_TO_SITE_USE_ID;
--采购方
l_header_rec.SOLD_TO_CUSTOMER_ID := l_header_rec.BILL_TO_CUSTOMER_ID;
--业务员或销售员ID
l_header_rec.PRIMARY_SALESREP_ID := 100000049;
---币种
l_header_rec.INVOICE_CURRENCY_CODE := 'CNY';
l_header_rec.SET_OF_BOOKS_ID := 1001;
--其它-状态
l_header_rec.STATUS_TRX := 'OP';
--其它-打印选项
l_header_rec.PRINTING_PENDING := 'Y';
--完成标志
l_header_rec.COMPLETE_FLAG := 'N';
--AR事务处理行项目
l_lines_tbl(1).ORG_ID := l_header_rec.ORG_ID;
l_lines_tbl(1).EXTENDED_AMOUNT := -300;
l_lines_tbl(1).REVENUE_AMOUNT := -300;
--行号
l_lines_tbl(1).LINE_NUMBER := 1;
l_lines_tbl(1).SET_OF_BOOKS_ID := l_header_rec.SET_OF_BOOKS_ID;
--行摘要
l_lines_tbl(1).DESCRIPTION := '测试行1';
l_lines_tbl(1).LINE_TYPE := 'LINE';
--自动税标识
l_lines_tbl(1).AUTOTAX := 'N';
--AR事务处理--分配行--应收帐款
--分类
l_dist_tbl(1).ACCOUNT_CLASS := 'REC';
l_dist_tbl(1).ACCOUNT_SET_FLAG := 'N';
--收入帐户标识ID
l_dist_tbl(1).ACCTD_AMOUNT := l_lines_tbl(1).EXTENDED_AMOUNT;
l_dist_tbl(1).AMOUNT := l_lines_tbl(1).EXTENDED_AMOUNT;
--应收帐款帐户标识ID
l_dist_tbl(1).CODE_COMBINATION_ID := 1494;
--GL日期
l_dist_tbl(1).GL_DATE := l_header_rec.TRX_DATE;
--OU标识ID
l_dist_tbl(1).ORG_ID := l_header_rec.ORG_ID;
--百分比
l_dist_tbl(1).PERCENT := 100;
--帐薄标识ID
l_dist_tbl(1).SET_OF_BOOKS_ID := l_header_rec.SET_OF_BOOKS_ID;
--AR事务处理--分配行--收入
--事务处理行
l_dist_tbl(2).line_index := 1;
--分类
l_dist_tbl(2).ACCOUNT_CLASS := 'REV';
l_dist_tbl(2).ACCOUNT_SET_FLAG := 'N';
--金额
l_dist_tbl(2).ACCTD_AMOUNT := l_lines_tbl(1).EXTENDED_AMOUNT;
l_dist_tbl(2).AMOUNT := l_lines_tbl(1).EXTENDED_AMOUNT;
--收入帐户标识ID
l_dist_tbl(2).CODE_COMBINATION_ID := 12814;
--GL日期
l_dist_tbl(2).GL_DATE := l_header_rec.TRX_DATE;
--OU标识ID
l_dist_tbl(2).ORG_ID := l_header_rec.ORG_ID;
--百分比
l_dist_tbl(2).PERCENT := 100;
--帐薄标识ID
l_dist_tbl(2).SET_OF_BOOKS_ID := l_header_rec.SET_OF_BOOKS_ID;
ar_transaction_pub.Create_Transaction(p_api_name => 'ARXTWMAI',
p_api_version => 1,
p_init_msg_list => FND_API.G_FALSE,
p_commit => FND_API.G_FALSE,
p_validation_level => FND_API.G_VALID_LEVEL_FULL,
p_batch_rec => l_batch_rec,
p_header_rec => l_header_rec,
p_receivable_gl_date => l_header_rec.TRX_DATE,--必须要与TRX_DATE一致
p_commitment_rec => l_commitment_rec,
p_lines_tbl => l_lines_tbl,
p_tax_lines_tbl => l_tax_lines_tbl,
p_freight_lines_tbl => l_freight_lines_tbl,
p_salescredit_lines_tbl => l_salescredit_lines_tbl,
p_dist_tbl => l_dist_tbl,
p_return_status => l_return_status,
p_msg_count => l_msg_count,
p_msg_data => l_msg_data,
p_errors => l_errors,
p_customer_trx_id => l_customer_trx_id);
dbms_output.put_line('p_return_status=' || l_return_status);
dbms_output.put_line('l_msg_data=' || l_msg_data);
dbms_output.put_line('l_errors=' || l_errors.count);
For i In 1 .. l_errors.count Loop
dbms_output.put_line('customer_trx_id:' || l_errors(i)
.customer_trx_id);
dbms_output.put_line('message_name:' || l_errors(i).message_name);
dbms_output.put_line('token_name_1:' || l_errors(i).token_name_1);
dbms_output.put_line('token_1:' || l_errors(i).token_1);
dbms_output.put_line('token_name_2:' || l_errors(i).token_name_2);
dbms_output.put_line('token_2:' || l_errors(i).token_2);
dbms_output.put_line('encoded_message:' || l_errors(i)
.encoded_message);
dbms_output.put_line('translated_message:' || l_errors(i)
.translated_message);
End Loop;
dbms_output.put_line('p_customer_trx_id=' || l_customer_trx_id);
End;<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;">
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24627116/viewspace-2135787/
,如需转载,请注明出处,否则将追究法律责任。