Test Script.:
procedure auto_import_info_p(errbuf out varchar2, retcode out number) is
l_trans_rec fa_api_types.trans_rec_type;
l_dist_trans_rec fa_api_types.trans_rec_type;
l_asset_hdr_rec fa_api_types.asset_hdr_rec_type;
l_asset_desc_rec fa_api_types.asset_desc_rec_type;
l_asset_cat_rec fa_api_types.asset_cat_rec_type;
l_asset_type_rec fa_api_types.asset_type_rec_type;
l_asset_hierarchy_rec fa_api_types.asset_hierarchy_rec_type;
l_asset_fin_rec fa_api_types.asset_fin_rec_type;
l_asset_deprn_rec fa_api_types.asset_deprn_rec_type;
l_asset_dist_rec fa_api_types.asset_dist_rec_type;
l_asset_dist_tbl fa_api_types.asset_dist_tbl_type;
l_inv_tbl fa_api_types.inv_tbl_type;
l_inv_rate_tbl fa_api_types.inv_rate_tbl_type;
l_return_status varchar2(1);
l_mesg_count number := 0;
l_mesg_len number;
l_mesg varchar2(4000);
begin
fnd_profile.put('PRINT_DEBUG', 'Y'); --用于指定相关的配置信息
errbuf := null;
retcode := null;
fa_srvr_msg.init_server_message; --初始化错误信息堆栈。
fa_debug_pkg.initialize; --初始化调试信息堆栈
-- desc info
l_asset_desc_rec.description := null; --'Dell computer'; --说明
l_asset_desc_rec.asset_key_ccid := 1; --与资产关键字对应的代码组合标识
-- cat info *** NEED TO CHANGE BASED ON CATEGORY SETUP FOR YOUR BOOK ***
l_asset_cat_rec.category_id := 3; --类别id fa_categories_b
--type info
l_asset_type_rec.asset_type := 'CAPITALIZED'; --资本化
-- fin info
l_asset_fin_rec.cost := 1001; --当前成本
l_asset_fin_rec.date_placed_in_service := to_date('2009-08-31',
'yyyy-mm-dd'); --启用日期 --'&DPIS';
l_asset_fin_rec.depreciate_flag := 'YES'; --折旧复选框
l_asset_fin_rec.deprn_method_code := 'STL'; --方法
l_asset_fin_rec.life_in_months := 60; --总月数
-- deprn info
l_asset_deprn_rec.ytd_deprn := 0; --YTD折旧
l_asset_deprn_rec.deprn_reserve := 0; --累计折旧
l_asset_deprn_rec.bonus_ytd_deprn := 0; --额外折旧???????
l_asset_deprn_rec.bonus_deprn_reserve := 0; --预计额外折旧????
-- book / trans info
l_asset_hdr_rec.book_type_code := '帐簿'; --'&book';
l_trans_rec.transaction_date_entered := l_asset_fin_rec.date_placed_in_service; --转移日期
l_trans_rec.who_info.last_updated_by := fnd_global.user_id; --当前用户*****************
-- distribution info --分配信息 --fa_distribution_history
l_asset_dist_rec.units_assigned := 2; -- select distinct units_assigned from fa_distribution_history;
l_asset_dist_rec.expense_ccid := 64157; --是一个组合id
/*
select * from fa_distribution_history
where trunc(last_update_date,'DD') = trunc(to_date('2009-11-20','yyyy-mm-dd'),'DD'); --expense_ccid 实际是code_combination_id
select * from GL_CODE_COMBINATIONS
where code_combination_id = 64157;
*/
l_asset_dist_rec.location_ccid := 40; --
--HEK_固定资产超级用户 -> 设置 -> 财务系统 -> 员工 找person_ID
l_asset_dist_rec.assigned_to := 120; --负责此资产的员工的员工标识
apps.fnd_file.put_line(apps.fnd_file.log,
'员工编号:' || l_asset_dist_rec.assigned_to);
l_asset_dist_rec.transaction_units := l_asset_dist_rec.units_assigned;
l_asset_dist_tbl(1) := l_asset_dist_rec;
--l_asset_desc_rec.asset_number := --资产编号 --自动生成
--l_asset_desc_rec.property_type_code := 'REAL';
--l_asset_desc_rec.property_1245_1250_code := '1245';
--l_asset_desc_rec.in_use_flag := 'YES';
--l_asset_desc_rec.owned_leased := 'OWNED';
--l_asset_desc_rec.new_used := 'NEW';
--l_asset_desc_rec.inventorial := 'YES';
--l_asset_desc_rec.manufacturer_name :=
--l_asset_desc_rec.serial_number :=
--l_asset_desc_rec.model_number :=
--l_asset_desc_rec.tag_number :=
--l_asset_desc_rec.parent_asset_id :=
--l_asset_desc_rec.warranty_id :=
--l_asset_desc_rec.lease_id :=
-- For tax addition, will need existing asset_id
--l_asset_hdr_rec.asset_id :=
--l_asset_fin_rec.salvage_value :=
--l_asset_fin_rec.unrevalued_cost :=
--l_asset_fin_rec.short_fiscal_year_flag :=
--l_asset_fin_rec.conversion_date :=
--l_asset_fin_rec.orig_deprn_start_date :=
--l_asset_fin_rec.unit_of_measure :=
--l_asset_deprn_rec.reval_deprn_reserve :=
--l_asset_deprn_rec.reval_amortization_basis :=
-- Accept amort start date for amortize NBV additions
-- l_trans_rec.amortization_start_date :=
-- to_date('&amort_start_date', 'DD-MON-YYYY');
-- call the api
fa_addition_pub.do_addition(p_api_version => 1.0, --版本 --内部使用参数,版本信息
p_init_msg_list => fnd_api.g_false, --不初始化消息 --确定是否应该消息栈初始化和清除。
p_commit => fnd_api.g_false, --是否自动提交处理过的资产
p_validation_level => fnd_api.g_valid_level_full, --检查API是否应该对资产进行验证
x_return_status => l_return_status, --确定是否API的成功完成。
x_msg_count => l_mesg_count, --邮件数堆栈的消息。
x_msg_data => l_mesg, --消息堆栈
p_calling_fn => null, --调用API函数
px_trans_rec => l_trans_rec, --描述的交易发生。
px_dist_trans_rec => l_dist_trans_rec, --描述了交易分布?
px_asset_hdr_rec => l_asset_hdr_rec, --添加资产的唯一标识符。
px_asset_desc_rec => l_asset_desc_rec, --资产说明
px_asset_type_rec => l_asset_type_rec, --资产类型
px_asset_cat_rec => l_asset_cat_rec, --资产分类信息
px_asset_hierarchy_rec => l_asset_hierarchy_rec, --资产层次的信息Hierarchy information of the asset
px_asset_fin_rec => l_asset_fin_rec, --资产财务信息
px_asset_deprn_rec => l_asset_deprn_rec, --资产折旧信息
px_asset_dist_tbl => l_asset_dist_tbl, --资产分布信息
px_inv_tbl => l_inv_tbl, --资产发票
px_inv_rate_tbl => l_inv_rate_tbl --对利率表为资产为医学研究委员会的发票
);
apps.fnd_file.put_line(apps.fnd_file.log,
'l_return_status : ' || l_return_status);
apps.fnd_file.put_line(apps.fnd_file.log,
'fnd_api.g_ret_sts_success : ' ||
fnd_api.g_ret_sts_success);
if (l_return_status <> fnd_api.g_ret_sts_success) then
apps.fnd_file.put_line(apps.fnd_file.log, 'FAILED');
apps.fnd_file.put_line(apps.fnd_file.log, 'error: ' || sqlerrm);
l_mesg_count := fnd_msg_pub.count_msg;
if l_mesg_count > 0 then
l_mesg := chr(10) || substr(fnd_msg_pub.get(fnd_msg_pub.g_first,
fnd_api.g_false),
1,
512);
for i in 1 .. 2
loop
l_mesg := l_mesg || chr(10) || substr(fnd_msg_pub.get(fnd_msg_pub.g_next,
fnd_api.g_false),
1,
512);
end loop;
fnd_msg_pub.delete_msg();
l_mesg_len := length(l_mesg);
for i in 1 .. ceil(l_mesg_len / 255)
loop
apps.fnd_file.put_line(apps.fnd_file.log,
substr(l_mesg, ((i * 255) - 254), 255));
end loop;
end if;
else
apps.fnd_file.put_line(apps.fnd_file.log, 'SUCCESS');
apps.fnd_file.put_line(apps.fnd_file.log,
'THID: ' ||
to_char(l_trans_rec.transaction_header_id));
apps.fnd_file.put_line(apps.fnd_file.log,
'ASSET_ID: ' ||
to_char(l_asset_hdr_rec.asset_id));
apps.fnd_file.put_line(apps.fnd_file.log,
'ASSET_NUMBER: ' ||
l_asset_desc_rec.asset_number);
end if;
end auto_import_info_p;
测试脚本是OK的,测试数据可以顺利导入系统O(∩_∩)O
CCID的获取还有待研究...
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25103190/viewspace-734020/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25103190/viewspace-734020/