接口(实例)演示

一下为项目上ATS接口的代码结构,方面之后代码查阅。

一、数据初步准备

1.1 使用check_id初始化凭证大类

将来接口表cux.cux_gl_inter_sx_ats中attribute9进行赋值,值为E时,表明数据来自与表ats_ulic_of_pay_transactions. abstract和ats_ulic_hec_pay_transactions. Abstract相等的check_id下的数据,其它情况取A

1.2 初始化编码映射关系

对原有11i中的7个segment按照映射关系得到新和R12中的segment code

1.3 初始化历史分区

cux_gl_inter_pub.init_partition(p_period_name => p_period_name, p_inter_key => g_source_key)

 

以期间和来源为限定建立分区

1.4  初始化参数

若此部分出现异常,程序报错结束,

g_run_id := gl_journal_import_s.nextval

g_group_id :=gl_interface_control_s.nextval;

g_ledger_id := fnd_profile.value('GL_SET_OF_BKS_ID');

 

      

二、数据插入GL接口表

若此部分出现异常,程序报错结束

若此部分无数据进入,程序报错结束

 

2.1  检查数据

检查期间和期间是否打开 若此部分出现异常,程序报错结束

 

①检查是否有数据需要导入 若此部分出现null,程序报错结束

 

②检查借贷是否相等(单张凭证数据进行校验,若存在不相等的,则该凭证不进行数据插入,其它正常)若存在不相等的外围系统表中attribute8和attribute9分别录入错误信息和错误状态(FAILURE)

      

并未检查ledger_id

2.2  循环校验失进行映射后段值在键弹性域里是否存在

(1)出现错误的处理

通过upt_t_gl_ats_interface_detail将T_GL_ATS_INTERFACE

的attribute8,attribute9,attribute10分别update为 错误信息,失败状态标识,null;

 

(2)如果 check_Id下有任何record_id,出现交验错误,则整个check_Id的数据都不能插入接口表,其它正常

 

2.3  正式数据插入

(1)映射的变换

R12段说明

R12段

11i段

限定条件下

R12段取值

公司段

segment1

segment1

cux_old_new_map中取对应值

成本中心

segment2

segment3

null

R12字段对应默认值

其它

cux_old_new_map中取对应值

会计科目段

segment3

segment4

cux_old_new_map中取对应值

明细段

segment4

Segment5

以'B'开头

11i中原值

00000

R12字段对应默认值

往来段

Segment5

R12字段对应默认值

现金流量段

Segment6

attribute3

null

R12字段对应默认值

其它

cux_old_new_map中取对应值

渠道段

Segment7

R12字段对应默认值

产品

Segment8

R12字段对应默认值

预算科目

Segment9

R12字段对应默认值

项目段

Segment10

R12字段对应默认值

预算中心

Segment11

segment2

null

R12字段对应默认值

其它

cux_old_new_map中取对应值

2.4  进行回写

 

             t_gl_ats_interface.attribute1 = l_org_id

            

             t_gl_ats_interface.attribute10 = 'R' || l_request_id,

            

             t_gl_ats_interface.attribute9 = c_voucher_status_imported_gli

三、对GL接口表中数据进行验证和导入日记账

数据进入GL接口表后进行校验

  cux_gl_inter_pub.validate_data(x_errbuf    => v_errbuf,

                                   x_retcode   => v_retcode,

                                   p_inter_key => g_source_key,

                                   p_group_id  => l_group_id);

若此部分出现异常,更新外围系统表中attribute8 为失败  ,attribute8= nvl(cux_gl_inter_sx_ats.status_description, '因本次请求其他记录出错而置为错误'),程序报错结束,

 

 

日记账导入

 

cux_gl_inter_pub.journal_import(x_errbuf              => v_errbuf,

                                    x_retcode             => v_retcode,

                                    x_group_id            => l_group_id,

                                    x_run_id              => g_run_id,

                                    p_source_key          => g_source_key,

                                    p_ledger_id           => g_ledger_id,

                                    p_user_je_source_name => c_user_je_source_name,

                                    p_autopost_flag       => g_autopost_flag);

 

清除外围系统接口表历史表过期分区

 

若此部分出现异常,程序报错结束,

 

posted @ 2017-06-04 20:32  Akami  阅读(275)  评论(0编辑  收藏  举报