在csdn中搜索EBS日记账导入,都是一个版本的,很是头疼,找不到自己想要的东西。本人最近在学习EBS接口方面的知识,从最基本的日记账导入开始学习,在学习过程中,本人会将学的东西都记录下来,以便让你们知道日记账导入的流程,再而就是作为今后回顾的备忘录。
日记账导入的流程:
1.指定来源数据接口表
2.校验数据(校验账套名称,校验凭证来源,校验凭证类别是否存在,校验币种是否存在,校验记账日期和期间,校验账户组合,校验相同批次内借贷平衡等)
3.导入外围系统的数据
4.过账
备注:因为本文实现的是简单的日记账导入,目的是为了知道这么个流程,并且本文只操作了3这个步骤,完整的日记账导入后期会深入学习,这个仅供EBS接口的新手学习。
1 将数据插入到gl_interface
insert into gl_interface
(status,
accounting_date,
currency_code,
date_created,
created_by,
actual_flag,
user_je_category_name,
user_je_source_name,
encumbrance_type_id,
budget_version_id, -
entered_dr,
entered_cr,
period_name,
set_of_books_id)
values
('NEW',
to_date('2017/12/31', 'yyyy-mm-dd'),
'CNY',
to_date('2018/7/30 20:40:34', 'yyyy-mm-dd hh24:mi:ss'),
'-1',
'A',
'未到期',
'Manual',
null,
null,
'1000',
'1000',
null,
'2021');
2 提交请求,生成请求记录request_id。
DECLARE
//这个部分是定义变量
l_req_id_tbl number;
l_resp_id number;
l_resp_appl_id number;
l_group_id number;
l_interface_run_id number;
BEGIN
//这部分是为了确定模拟登陆中GL模块的id
select fap.APPLICATION_ID
into l_resp_appl_id
from fnd_application fap
where fap.APPLICATION_SHORT_NAME = 'SQLGL';
//这部分是为了确定模拟登陆中职责id
SELECT fr.responsibility_id
INTO l_resp_id
FROM fnd_responsibility_tl fr
WHERE fr.responsibility_name = '总帐管理超级用户(1)' --这个是我总账职责的名字
AND fr.application_id = l_resp_appl_id
and fr.LANGUAGE = 'ZHS';
//将gl_interface_control_s中的值一个一个放入到l_group_id
SELECT gl_interface_control_s.nextval INTO l_group_id FROM dual;
//模拟登陆(提交请求时提供一些必要的参数)
fnd_global.apps_initialize(user_id => 0, --用户id
resp_id => l_resp_id, --职责id
resp_appl_id => l_resp_appl_id); --模块id,比如总账id为101
//返回number值
l_interface_run_id := gl_interface_control_pkg.get_unique_run_id;
//生成控制表数据
gl_journal_import_pkg.populate_interface_control
(user_je_source_name => 'Manual',--接口表数据的日记账来源名称
group_id => l_group_id,--接口表数据的group_id
set_of_books_id => 2021, --接口表数据的账套ID
interface_run_id => l_interface_run_id, --创建gl_interface_control数据的interface_run_id
table_name => NULL, --接口表名称
processed_data_action => gl_journal_import_pkg.delete_data);
--标识处理成功后,接口数据如何处理。
//提交请求
l_req_id_tbl := fnd_request.submit_request
(application => 'SQLGL', --GL模块
program => 'GLLEZL', --应用程式
description => '资金', --请求说明
start_time => NULL, --run时间
sub_request => FALSE, --立刻提交请求
argument1 => to_char(l_interface_run_id),
argument2 => '2021', --帐套标识
argument3 => 'N', --将误差过帐至暂记帐,Y-是,N-否
argument4 => NULL, --日期范围,from accounting date
argument5 => NULL, --日期范围,to accounting date
argument6 => 'N', --创建汇总日记帐,Y-是,N-否
argument7 => 'O', --导入说明性弹性域,N-否,W-验证,O-没验证
argument8 => chr(0));
DBMS.OUTPUT.PUT_LINE(l_req_id_tbl);
commit;
END;
3 登陆到EBS上查看提交的请求
① 登陆到EBS,然后在责任中找到总账模块,我里面是总账管理超级用户(1)。
② 在总账模块中,点击“查看”下的“请求”。
③ 在查找请求中选择“所有个人请求”,然后选择“查找”。
④ 在请求行中就可以看到你提交的请求了,由于我的数据是随意插入的,没有进行检验、拼凑所以出现了警告。
简单的日记账导入完成了,大概的流程就是这样,但这不是完整的日记账导入,经过后期的学习,我会将完整的日记账导入过程拿出来和大家分享。