ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 项目总结之接口开发 [摘]

项目总结之接口开发 [摘]

原创 Linux操作系统 作者:blueshine07 时间:2012-04-18 11:03:30 0 删除 编辑

AP模块
一:设置:

1、设置税码

clip_image002

clip_image004

2、弹性域的设置:

clip_image006

clip_image008


二:字段

A: 接口头表

1、group_id 发票批号 Sequence

2、org_id 经营组织ID 验证是否存在于ERP系统表hr_operating_units中并且是否有效.

3、source 发票来源 导入的类型是否存在并且有效,该信息存在于表Ap_Lookup_Codes中

4、invoice_num 发票号 如果有不同供应商是必输项 否则在导入时候的系统时间

5、invoice_type_lookup_code 发票类型代码 必须是Standard 或者Credit 如果没有输入则会根据amount字段如果为零或者整数则为Standard 否则为Credit

6、doc_category_code 单据类别 如果预置文件设置的是’Always’并且没有输入值。如果Allow Document Category Override Payables 设置为可用,可以输入值自己需要的值

7、invoice_date 发票日期 会根据系统设置。如果GL_DATE Basis 是invoice_date则invoice_date必须落在open 或者future period。

8、gl_date 总账日期

9、vendor_id 供应商ID 验证导入的供应商是否存在并且有效,数据存在于表PO_VENDORS总

10、vendor_site_id 供应商地点 验证导入的供应商地点是否存在并且有效,数据存在于表PO_VENDOR_SITES_ALL中.

11、invoice_amount 发票金额

12、invoice_currency_code 发票币种 输入事务处理的币种代码,如果没有值则为供应商地址上的值

13、exchange_rate 汇率 同AR

14、exchange_rate_type 汇率类型 AR

15、exchange_date 汇率日期

16、terms_id 条款 ID验证是否存在ERP中,并且判定是否有效,该数据存在表AP_TERMS中

17、terms_date 条款日期

18、payment_method_lookup_code 供应商付款方式,取自po_vendor_sites_all ),验证是否存在于ERP中并且有效,该信息存在表po_vendor_sites_all中

19、description 描述

20、attribute_category 根据义务需要赋值

21、attribute1 ---- attribute15 根据义务需要赋值

22、line_type_lookup_code TAX 或者ITEM

23、Who column (creation_date、created_by、last_update_date、last_updated_by、last_update_login)

B:接口行表

1、invoice_id 必输项 发票ID ap_invoice_lines_interface_s.Nextval

2、line_number 行号

3、line_type_lookup_code 行类型 在AP_LOOKUP_CODES里进行验证,必须是ITEM、TAX\MISCELLANEOUS\FRIGHT

4、line_group_number 如果需要把多个行信息分配成一个费用,可以个他们的line_group_number赋相同的值

5、amount 发票金额 如果ap相爱那个匹配po那么amount=quantity_invoiced*unit price

6、accounting_date 会计结算日期如果Gl Date Basis option 设置为Goods Received/Invoice Date 则此处的值就为Invoice Date 如果Gl Date Basis option 设置为Goods Received系统时间则此处的值就为系统时间

7、distribution_set_id 如果ap和po匹配的话,此处应为空否则应该在AP_DISTRIBUTION_SETS中的DISTRIBUTION_SET_ID中验证

8、dist_code_combination_id 帐户ID

9、account_segment 会计段,如果不想用系统默认的可以在输入值值必须在AP_INVOICE_DISTRIBUTION_ALL的CODE_COMBINATION_ID中存在。否则可以置空。

10、balancing_segment 同account_segments

11、cost_center_segment 同account_segments

12、tax_code_id 税码 应该在上面的设置界面中定义的税码

13、description 描述

14、attribute_category 根据业务需要

15、attribute1 ---- attribute15 根据业务需要

16、Who column (creation_date、created_by、last_update_date、last_updated_by、last_update_login)


AR模块

AR的设置比较多,在AR导入的时候要特别的注意,有时候在导入时产生的一些错误不是程序代码本身的问题,而是设置和导入的字段不一致造成的。


一:设置对接口表中的字段的影响

1、事物处理类型

clip_image010

(1-a)

A:cust_trx_type_id字段应该对用相应的ID

B:此处的计税没有选中TAX_RATE =null TAX_CODE =null

如果选中了计税有两种选择

一:可以用系统的税收默认值和规则。则TAX_RATE =null TAX_CODE =null

系统会根据设置自动取值。

二:可以手动录入TAX_RATE 和TAX_CODE的值。但是TAX_RATE 和TAX_CODE必须在系统中实现维护过。

clip_image012

(1-b)

见下图

clip_image014

(1-c)

2、事务处理来源

clip_image016

(2-a)

选中自动事物处理编号时字段

trx_number=null

否则trx_number为必输项

参考字段关联到事务处理界面中的参考字段

clip_image018

(2-b)

clip_image020

(2-c)

clip_image022

(2-d)

clip_image024

(2-e)

clip_image026

(2-f)

interface_line_context

interface_line_attribute1

interface_line_attribute2

interface_line_attribute3

interface_line_attribute4

下面介绍的是在目前设置中应该录入接口表(ra_interface_lines_all

)的字段,具体那些字段需要录入还要看项目的具体需求。

注意是在AR模块中只有行接口表没有头接口表

通过调用系统的标准请求(ra_interface_lines_all)生成一张简单的AR发票。

我在事物处理来源中的设置决定输入字段的值是ID标识。


二:字段信息:

A: 表ra_interface_lines_all

line_type := 'LINE'

conversion_type := 'User'(‘USER’,’ Spot’,’CORPERATE’,’ Spot’,’ EMU FIXED’)

clip_image028

1、 INTERFACE_LINE_CONTEXT:输入行事务处理弹性域的上下文值。必输项。

2、 INTERFACE_LINE_ATTRIBUTE1-INTERFACE_LINE_ATTRIBUTE15: 输入行事务处理弹性域值。 此弹域值必须唯一标识一条事务处理行记录。具体需要由业务决定

3、 BATCH_SOURCE_NAME:事务处理来源。此事务处理来源必须存在于RA_BATCH_SOURCES_ALL.NAME AND RA_BATCH_SOURCES_ALL. BATCH_SOURCE_TYPE=’FOREIGN’

4、 LINE_TYPE:输入事务处理的行类型。值为:’LINE’,’TAX’,’CHARGES’,’FRIGHT’。

5、 DESCRIPTION:输入事务处理行的说明。必输项。

6、 CURRENCY_CODE:输入事务处理的币种。

7、 AMOUNT:输入事务处理中的收入金额。

如果LINE_TYPE=’LINE’,且此事务处理既不是FRIGHT-ONLY也不是TAX-ONLY时必须输入。

如果LINE_TYPE=’TAX’,必须在此列或者在TAX_RATE列输入值。

如果LINE_TYPE=’CHARGE’,必须留空。

8、 CUST_TRX_TYPE_ID:输入事务处理事务处理类型ID。根据事务处理类型来决定输入 CUST_TRX_TYPE_NAME或CUST_TRX_TYPE_ID。此事务处理类型必须存在于:RA_CUST_TRX_TYPES_ALL.CUST_TRX_TYPE_ID

9、 ORIG_SYSTEM_BILL_CUSTOMER_ID:输入收单方客户ID。

10、 ORIG_SYSTEM_BILL_ADDRESS_ID:输入收单方地址ID。此地址对应的地点分OU。

11、 CONVERSION_TYPE:输入事务处理的汇率转换类型。

12、 CONVERSION_RATE:输入事务处理的汇率转换率。如果事务处理为本位币,且CONVERSION_TYPE为‘User’,则设置CONVERSION_RATE为1。其它情况下,则留空。

13、 CONVERSION_DATE:输入事务处理的汇率转换类型。如果事务处理行为本位币,则此列必须为空。

14、 TRX_NUMBER:输入事务处理编号。如果LINE_TYPE=’LINE’,’CHARGES’事务处理类型自动事务 处理编号设为N时,则为必输项。否则必须为空。

15、 ORG_ID:输入事务处理所属业务组织ID。

16、 TERM_ID:输入付款条件ID。

17、 VAT_TAX_ID, TAX_CODE,TAX_RATE,TAX_PREDEDENCE

18、 SET_OF_BOOKS_ID 每条事务处理所属组织的账本。

19、 ORG_ID 输入每条事务处理所属的组织。

B表ra_interface_distributions_all

1、 INTERFACE_DISTRIBUTION_ID:输入分配ID,系统会自动获取sequence的值。

2、 interface_line_context,interface_line_attribute1- interface_line_attribute15 具体见上面的介绍

3、 account_class 可以通过自动会计自动创建、若不想自动会计则可以手动录 入、手动录入会覆盖自动会计 其中的REV(收入) REC(应收款) TAX(税)

4、 amount 事物处理行的行金额

5、 percent 对事务处理行金额的百分比进行计税,通常为100。

6、 segment1- segment5启动自动会计时卡伊不需要输入,系统会根据会计自动赋值否则需要根据业务需要手动录入。

7、 org_id 同上

clip_image030

设置了自动会计后可以不用对表插入ra_interface_distributions_all

如果对下面的字段赋值会覆盖自动

也可以单独的对税或收入进行手动录入。

见图(2-c)否则要输入 可以见自动会计中的设置

clip_image032


GL模块
一:前提设置

1、日记账来源定义;

clip_image034

2、日记账类别定义;

clip_image036


二:接口表字段

主要描述了GL_INTERFACE表所需关键字段。当对这些关键字段录入后,就可以通过SRS请求,生成一张简单的未过账总帐凭证。

1、STATUS:输入“NEW”,指明导入新数据到GL应用中。必输项。

2、SET_OF_BOOKS_ID:帐套ID,必输项。可以用以下SQL查询:

SELECT gsob.set_of_books_id,gsob.name

FROM gl_sets_of_books gsob

3、ACCOUNTING_DATE:输入发生事务处理的会计结算日期。总帐应用产品会自动将日记帐批分配给该会计

结算日期所属的会计期。如果启用了平均余额处理,总帐管理系统将使用您定义的有

效日期规则,对照事务处理日历验证会计结算日期以确定事务处理的有效日期。必输

项。

4、CURRENCY_CODE:输入事务处理的币种代码。必输项。

5、DATE_CREATED:输入您的导入日记帐分录行的创建日期。您在此处输入的信息只不过是您自己的记录,

它不会显示在总帐应用产品中。必输项。

6、CREATED_BY:输入一个标识,以用来识别来自源系统的数据。此处输入的标识为您提供从“日记帐导入”

数据到源系统的跟踪线索。但是,日记帐导入数据在成功导入后将从 GL_INTERFACE 表中

被删除,并且此标识不会显示在总帐应用产品中。必输项。

7、ACTUAL_FLAG:输入 A 值表示实际金额,B 值表示预算金额或 E 值表示保留金额。必输项。

8、ENCUMBRANCE_TYPE_ID:如果在ACTUAL_FLAG 列中输入了E值,则必须输入相应的保留标识。可以在总

帐应用产品的“保留类型”表单中定义新的保留类型。“保留类型”表的

ENCUMBRANCE_TYPE_ID 列。可以使用以下SQL来查询:

SELECT encumbrance_type_id

,encumbrance_type

FROM gl_encumbrance_types

WHERE enabled_flag = 'Y';

9、BUDGET_VERSION_ID:如果在ACTUAL_FLAG列中输入了B ,则必须输入相应的预算标识。可以在总帐应用产品的“定义预算”表单中定义新的预算版本。“预算版本”表的 BUDGET_VERSION_ID 列。可以使用以下 SQL来查询:

SELECT budget_version_id

,budget_name

FROM gl_budget_versions

WHERE status IN ('C','O');

10、USER_JE_CATEGORY_NAME:输入事务处理的日记帐类别名称。您可以在总帐应用产品的“日记帐类别”表单中定义日记帐类别。“日记帐分录类别”表的 USER_JE_CATEGORY_NAME 列。必输项。

11、USER_JE_SOURCE_NAME:输入事务处理的日记帐分录来源名称。您可以在总帐应用产品的“日记帐来源”表单中定义日记帐来源。“日记帐分录来源”表的 USER_JE_SOURCE_NAME 列。必输项。

12、CURRENCY_CONVERSION_DATE:输入非本位币事务的币种转换日期。如果在

USER_CURRENCY_CONVERSION_TYPE中输入了非“用户”转换类型,此列必须输入值。如果转换类型为“用户”,默认值为账户日期。

13、USER_CURRENCY_CONVERSION_TYPE:输入非本位币事务的汇率转换类型。如果输入了“用户”值,则你必须在CURRENCY_CONVERSION_RATE输入值。其它转换类型必须在CURRENCY_CONVERSION_DATE中输入值。

15、SEGMENT1-SEGMENT30:账户段。

16、CODE_COMBINATION_ID:账户组合ID。如果SEGMENT1-SEGMENT30与CODE_COMBINATION_ID同时都输入了。系统优先选择SEGMENT1-SEGMENT30的值,而忽略CODE_COMBINATION_ID的值

17、ENTERED_DR:输入每行事务处理的借项金额。您可以在给定行的 ENTERED_DR 或 ENTERED_CR 列中输入值,但不能在同一行中输入两个值。必输项。

18、ENTERED_CR: 输入每行事务处理的贷项金额。您可以在给定行的 ENTERED_DR 或 ENTERED_CR 列中输入值,但不能在同一行中输入两个值。必输项。

19、ACCOUNTED_DR:输入非本位币事务转换为本位币的借方金额。你可以在一行中输入ACCOUNTED_DR和ACCOUNTED_CR。如果你输入ACCOUNTED_DR,则必须在ENTERED_DR输入值。

20、ACCOUNTED_CR:输入非本位币事务转换为本位币的贷方金额。你可以在一行中输入ACCOUNTED_DR和ACCOUNTED_CR。如果你输入ACCOUNTED_CR,则必须在ENTERED_CR输入值。

21、REFERENCE1:输入“导入批”的批名。“日记帐导入”使用以下格式来创建默认的批名:(用户输入的可选 REFERENCE1)(来源)(请求标识)(实际标志)(组标识)。如果输入了批名,则“日记帐导入”会将批名的前 50 个字符置于以上格式之前

22、REFERENCE2:输入批说明。如果您未输入批说明,则“日记帐导入”将自动使用以下格式为批提供说明:日记帐导入(来源)(请求标识)。

23、REFERENCE4:输入日记帐分录名。“日记帐导入”使用以下格式来创建默认的日记帐分录名:(类别名)(币种)(货币折换类型,如果适用)(货币折换率,如果适用)(货币折换日期,如果适用)(保留类型标识,如果适用)(预算版本标识,如果适用)。如果您输入日记帐分录名,则“日记帐导入”将按以上格式设置日记帐分录名的前 25 个字符。

24、REFERENCE5:输入日记帐分录名说明。如果未输入日记帐分录说明,则“日记帐导入”将自动使用以下格式为日记帐分录提供说明:日记帐导入 - 并发请求标识。

25、GL_SL_LINK_ID:输入来源行的ID。用于GL_IMPORT_REFERENCE表追溯。

26、GL_SL_LINK_TABLE:输入记录来源。用于GL_IMPORT_REFERENCE表追溯


三:GL接口注意事项

1、如果需要导入日记账参考的话,必须在“日记账来源”定义中,设置“导入日记账参考”。这样GL_IMPORT_REFERENCES将会记录JE_BATCH_IC、JE_HEADER_ID、GL_SL_LINK_ID、GL_SL_LINK_TABLE。后面两个字段用于记录来源及其来源行ID。

clip_image034[1]

2、GL_INTERFACE错误消息:

当导入接口表的数据有错误发生,则此时可以通过:日记账->导入->删除来更正。错误码对应的错误信息可以在提交SRS请求后的output文件“日记账导入执行报告”获得详细信息。如下图所示:

clip_image037clip_image038clip_image040

clip_image042


四:GL接口其它注意事项

1、使用客户化接口表导入日记账。即:创建一张类似于GL_INTERFACE表来导入日记账数据。具体步骤:

a) 创建一张与GL_INTERFACE列相同的标准表。也可以增加一些列在新建的接口表中。

b) 在新建的数据借口表中插入数据。

c) 在GL_INTERFACE_CONTROL表中填充数据。

d) 提交SRS请求导入日记账。

2、 使用自定义接口表的好处:

a) 多表导入日记账,提高效率,而非单表导入。

b) 自由选择接口表装载数据,并且在导入成功后是否删除客户化接口表。

3、 用到的标准API:

a) GL_JOURNAL_IMPORT_PKG.CREATE_TABLE创建新接口表。

参数名

必须

类型

Table_name

Y

客户化接口表名称

Tablespace

N

客户化接口表表空间

Physical_attributes

N

客户化接口表新增物理列

Create_n1_index

N

客户化接口表是否创建名为N1索引

N1_tablespace

N

客户化接口表N1索引表空间

N1_physical_attributes

N

客户化接口表N1索引表物理列

Create_n2_index

N

客户化接口表是否创建名为N2索引

N2_tablespace

N

客户化接口表N2索引表空间

N2_physical_sttributes

N

客户化接口表N2索引表物理列

b) GL_JOURNAL_IMPORT_PKG.POPULATE_INTERFACE_CONTROL

参数名

必须

类型

User_je_source_name

Y

接口表数据的日记账来源名称

Group_id

Y

接口表数据的Group_id。传入的变量必须为number型

Set_of_books_id

Y

接口表数据的帐套ID

Interface_run_id

Y

创建GL_INTERFACE_CONTROL数据的Interface run id

Table_name

N

接口表名称

Process_data_action

N

标示处理成功后,接口数据如何处理。值为其中之一GL_JOURNAL_IMPORT_PKG.SAVE_DATA;GL_JOURNAL_IMPORT_PKG.DELETE_DATA


AP与AR的区别
一:接口表的删除

1:通过设置

AR的接口表的删除设置在

clip_image044

2:可以跑一个请求

clip_image046

AP只有一种

AP的接口表的删除设置在

clip_image048

在代码中提交参数为‘N’

v_request_id := fnd_request.submit_request

('SQLAP',

'APXIIMPT', --应付款管理系统开放接口导入

'', TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS'),

FALSE,--p_org_id, --R12

p_source, --Source:来源

p_group_id, --Group:组

p_batch_name, --Batch Name:批名

NULL, --Hold Name:暂挂名

NULL, --Hold Reason:暂挂原因

NULL, --GL Date:GL 日期

'N', --Purge:清除

'N', --Trace Switch:跟踪开关

'N', --Debug Switch:调试开关

'N', --Summarize Report:汇总报告以审核报表

1000, --Commit Batch Size:提交批大小

g_user_id, --User ID:用户标识

g_login_id, --Login ID:登录标识

CHR(0));


二:请求提交分组

AR:是按照

batch_source_id --Batch Source Id--发票批来源

org_id,

AP:按照

Source --Source:来源

group_id --Group:组

batch_name --Batch Name:批名


三:AP与AR接口操作中涉及到的表

1、系统接口表:

AR: ra_interface_lines_all;

ra_interface_distributions_all

注:AR没有接口头表

AP: ap_invoices_interface

ap_invoice_lines_interface

注:AP没有分配接口表

ra_interface_lines_all 中没有status状态标示数据是否插入正式表中

ap_invoices_interface 中有status状态标示数据是否插入正式表中

‘PROCESSED’为成功插入到正式表中‘REJECTED’没有成功插入到正式表中

后面章节有具体说明

2、正式表

AR: ra_customer_trx_all(头)

ra_customer_trx_lines_all(行)

ra_cust_trx_line_gl_dist_all(分配)

AP: ap_invoices_all

ap_invoice_distributions_all(分配)

3、错误接口表:

AP: ap_interface_rejections

AR: RA_INTERFACE_ERRORS_ALL

4:从系统接口表到系统标准表:

AR:

ra_interface_lines_all中的数据 系统会根据设置的分组规则筛选头信息插入到ra_customer_trx_all,行信息插入到ra_customer_trx_line_all中,若没有插入收入和税收会根据自动会计自动生成会计科目分录到ra_cust_trx_line_gl_dist_all表中

AP: ap_invoices_interface 行中的信息

AR的分组规则(陈龙大哥贡献的!) 见附件

用同样的逻辑思考GL发现GL应该存在固定的分组规则把GL_INTERFACE中的数据按照改规则拆分并插入到GL_HEADER和GL_LINES中但是具体的信息还不是很了解只知道日记帐名可以区分gl的head和line

5:注:

AR和AP的事物处理编号字段的长度也是不一样的

AR:TRX_NUMBER VARCHAR2(20)

AP:INVOICE_NUM VARCHAR2(50)


AP、AR与gl应该注意的细节

当数据从接口表中插入到系统表口时出错时候AP、AR、GL他们实现的机制是不同的因此需要特别注意的。下面是在我个人理解的基础上总结的。


一:AP

A :错误表ap_interface_rejections

该表记录了数据从系统接口表到系统标准表过程中出错的信息。其中关键的字段有parent_id、parent_table

parent_id = invoice_id(记录了系统接口表头的ID信息)

= invoice_line_id(记录了系统接口表行的ID信息)

parent_table = 'AP_INVOICES_INTERFACE'(记录了系统接口表行中的错误数据信息)

= 'AP_INVOICE_LINES_INTERFACE'(记录了系统接口表头中的错误数据信息)

B:标准接口表ap_invoices_interface

当数据成功从接口表插入到系统标准表ap_invoices_interface表中的status会回填成'PROCESSED'

当数据没有成功从接口表插入到系统标准表时

不管是行还是头信息出错都会置ap_invoices_interface的status字段为'REJECTED'


二:AR

A :错误表RA_INTERFACE_ERRORS_ALL

该表记录了数据从系统接口表到系统标准表过程中出错的信息。其中关键的字段有

interface_line_id、interface_distribution_id用来标记行中的错误信息和分配的错误信息

B:AR接口表中没有status字段记录接口表中数据是否插入到系统标准表中


三:GL

A:GL中没有记录错误的表,但是有记录插入成功的表

GL_INTERFACE或者客户化(CUX_INTERFACE)表中的的数据在插入系统标准表之前需要调用一个PROCEDURE,生成对接口表的控制信息gl_journal_import_pkg.populate_interface_control(

user_je_source_name => g_source_name

,group_id => v_group_id

,set_of_books_id => g_set_of_books_id

,interface_run_id => v_run_id

,table_name => 'GL_INTERFACE'

,processed_data_action => gl_journal_import_pkg.DELETE_DATA);

实质上把上面的值插入到gl_interface_control表中相关字段中

如果没有传递group_id、interface_run_id则会自动返回一个 group_id、interface_run_id

我个人的理解是当提交系统标准请求之前要先生成一个控制信息

只是把这个控制信息放在gl_interface_control表的字段中。

提交标准请求时会根据返回的v_run_id找到控制信息即是否删除接口表中成功导入的信息。

gl_import_references是用来记录成功导入到系统标准表中的信息有两个关键的字段需要注意

gl_sl_link_id、gl_sl_link_table是从GL_INTERFACE中自动带过来的,因此GL_INTERFACE用过来标示唯一的一条数据

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25103190/viewspace-721501/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-08-26

  • 博文量
    55
  • 访问量
    149538