Oracle E-Business Suite中的开放接口
2008-09-04 12:52:15 来源:WEB开发网5. 开发SQL*Loader程序(ARCONTROL.ctl)
开发数据导入程序的目的是,通过被主机程序调用,从而自动将外部数据(如:txt文件、CSV文件)导入至Oracle AR模块的接口表。
//SQL*Loader程序
LOADDATA
INFILE’data.csv’
REPLACEINTOTABLEAR.RA_INTERFACE_LINES_ALL
FIELDSTERMINATEDBY’,’optionallyenclosedby’"’
(
TRX_NUMBERchar(20)"trim(:TRX_NUMBER)",
TRX_DATEDATE’YYYY-MM-DD’,
CURRENCY_CODEchar(15)"trim(:CURRENCY_CODE)",
CUST_TRX_TYPE_NAMEchar(20)"trim(:CUST_TRX_TYPE_NAME)",
GL_DATEDATE’YYYY-MM-DD’,
ORIG_SYSTEM_BILL_CUSTOMER_REFchar(240)"trim(:ORIG_SYSTEM_BILL_CUSTOMER_REF)",
TERM_NAMEchar(15)"trim(:TERM_NAME)",
LINE_NUMBER,
DESCRIPTIONchar(240),
QUANTITY,
UNIT_SELLING_PRICE,
BATCH_SOURCE_NAMEchar(50),
SET_OF_BOOKS_ID,
LINE_TYPEchar(20)"trim(:LINE_TYPE)",
CONVERSION_TYPEchar(30)"trim(:CONVERSION_TYPE)"
)
6. 开发SQL脚本(ARIMPORT_UPD.sql)
为了让用户更方便地使用模板文件,我们在主机程序中,嵌入了一段SQL脚本,此段SQL的脚本目的是,通过用户输入的一些信息,自动从Oracle数据库中找到想对应的信息。比如在模块文件中,用户要输入“客户名称”,而在Oracle系统的接口表中要求填入客户的标示(orig_system_bill_customer_ref)。而对于用户来说,客户标示是透明的,故开发此段程序,以使得用户模板更加友好。
//SQL脚本
declare
begin
updatera_interface_lines_alliall
setiall.conversion_type=substr(iall.conversion_type,1,9);
commit;
updatera_interface_lines_alliall
setiall.orig_system_bill_customer_ref=(selecta.customer_id
fromar_customers_va
wherea.customer_name=iall.orig_system_bill_customer_ref
),
iall.orig_system_bill_address_ref=(selectb.address_id
fromar_customers_va,ar_addresses_vb
wherea.customer_name=iall.orig_system_bill_customer_ref
anda.customer_id=b.customer_id
);
updatera_interface_lines_allt
sett.interface_line_context=’外部导入’,
t.interface_line_attribute1=’INTERFACE’,
t.interface_line_attribute2=t.trx_number,
t.interface_line_attribute3=t.line_number,
t.amount=t.quantity*t.unit_selling_price,
t.memo_line_name=t.description,
t.conversion_date=gl_date,
t.org_id=81;
updatera_interface_lines_alluila
setuila.conversion_type=’User’,
uila.conversion_date=uila.gl_date,
uila.conversion_rate=1
whereuila.currency_code=’CNY’;
commit;
exception
whenothersthen
rollback;
end;
/
exit;
更多精彩
赞助商链接