首页 > 代码库 > 总账:日记账导入流程(文档 ID 1591640.1)
总账:日记账导入流程(文档 ID 1591640.1)
文档内容
概要 |
历史记录 |
详细信息 |
GL_INTERFACE_CONTROL |
GL_INTERFACE_HISTORY |
GL_IMPORT_REFERENCES |
摘要 |
Community Discussions |
Feedback |
参考 |
适用于:
Oracle General Ledger - 版本 11.5 和更高版本本文档所含信息适用于所有平台
可执行文件:GLLEZL -日记账导入
可执行文件:GLLEZLSRS-通过提交标准请求允许日记账导入程序
表单:GLXSTCPC.FMB – 并发程序控制
表单:GLXJIRUN.FMB – 导入日记账
表单:GLXJICOR.FMB – 更正日记账导入数据
表单:GLXJIDEL.FMB – 删除日记账数据
概要
会计事务处理来源于Oracle应用产品中的财务和生产制造模块中的正常商务活动,也包括其他外部模块中的商务活动。日记账导入流程的设计就是为了将这些事务处理登记到总账模块。
此流程的工作基于存于接口表中的现有数据。接口表名称:GL_INTERFACE。
每个子分类账通过一个或多个特定的流程将信息存储在此表中。一旦数据存储于接口表,日记账导入程序将加载总账表中的数据产生未过账的日记账批。
历史记录
2000.5: 原始pdf文档 Amanda Gonzalez创作
2000.10: 由作者修订
2011.11.17: Nuno Mascarenhas修订格式并完成,在R12发布
详细信息
第1章: 日记账导入概览
会计事务处理来源于Oracle应用产品中的财务和生产制造模块中的正常商务活动,也包括其他外部模块中的商务活动。日记账导入流程的设计就是为了将这些事务处理登记到总账模块。此流程的工作基于存于接口表中的现有数据。接口表名称:GL_INTERFACE。
每个子分类账通过一个或多个特定的流程将信息存储在此表中。一旦数据存储于接口表,日记账导入程序将加载总账表中的数据产生未过账的日记账批。
此流程唯一的例外就是Family Pack G 之前的Oracle资产模块,此模块直接加载总账表。目前,资产模块也将信息存到总账接口表,用于传送会计数据到总账。
下表详细描述了此程序的流程:
序号 活动 条件 前往 1 信息存入总账接口表 (子分类账, 外部系统, ADI 等。) 2 2 根据来源和组织标识(Group ID)导入日记账 3 3 日记账导入终结是否报错? (检查针对错误或警告的执行报表) 是 11 否 4 4 来源是否为标准子分类账? 是 5 否 9 5 在来源中修订错误,针对标准子分类账,您需要支持帮助。 6 6 是否为R12 环境? (如果是,则无需删除,系统已回滚至XLA表) 是 8 否 7 7 删除错误的批,准备再次导入。 8 8 请从来源再次传送更正后的批。 1 9 错误很多? 是 7 否 10 10 使用更正日记账表单在接口表修改错误。 2 11 批信息已正确产生,准备过账。 结束
第2章: 日记账导入流程涉及的数据结构
GL_INTERFACE
此表用于通过日记导入程序来导入日记账分录批信息。您可以在此表中插入行,使用“运行日记账导入”表单来生成日记账批。目前,日记账导入程序支持导入不同名称的表,但这些表的结构必须相同。
您必须为所有非空列提供值。
非空列(不同版本间存在差异)
- STATUS
- ACCOUNTING_DATE
- CURRENCY_CODE
- DATE_CREATED
- CREATED_BY
- ACTUAL_FLAG
- USER_JE_CATEGORY_NAME
- USER_JE_SOURCE_NAME
GL_INTERFACE_CONTROL
此表用于控制日记账导入程序的执行。当您在导入日记账表单中开始运行日记账导入时,系统将为您指定的表中的每个来源和group_id插入一行。当日记账导入程序完成,这些行将被删除。如果您从外部运行日记账导入程序,您必须先行在表GL_INTERFACE_CONTROL中插入一行。
日记账导入程序就是通过本表来确定要导入的接口表名称(INTERFACE_TABLE_NAME)
流程的运行情况将显示在状态栏位中,状态包含以下字段:
- P – 暂挂; 日记账导入程序未被启动;
- S – 选定; 由来源和Group id确定的数据组,已被流程选中;
- I – 进程中; 由来源和Group id确定的数据组已被选中并且处于处理进程中
非空列:
- JE_SOURCE_NAME
- STATUS
GL_INTERFACE_HISTORY
此表中存储的行信息是通过导入程序从GL_INTERFACE表中成功导入的行。在启用存档日记账导入数据选项后,总账模块应用每次会在您成功运行日记账导入请求后添加这些行到此表中。此选项在并发程序控制表单中定义。此选项会增加执行时间, 但是可以用于审核的目的。
您只能将此信息用作历史参考。总账模块不会使用此表中的数据
GL_IMPORT_REFERENCES
根据日记账来源配置,日记账导入程序将信息存入此表。您可以通过在日记账来源表单中将“导入日记账参考”设置为“是”来确认您需要维护来源的事务处理指定日记账分录来源。当其事务处理来源的“导入日记账参考”设置为“是”的日记账导入程序开始运行时,日记账分录行与来源中的源文件的匹配信息将存储到本表中。此功能名称为账户追溯。
以下字段用于关联子分类账信息
- gl_sl_link_id
- gl_sl_link_table
在R12标准子分类账中,这里一般指XLA表(值为“XLAJEL”),然而在11i中,指的是子分类账相关的表。
存储在此表中的数据会根据系统版本和事务处理的类型不同而变化。子分类账使用参考字段的方式是不同的。
下表中列示某些常见子分类账的字段所取值的作用:
Transactions | Reference 1 | Reference 2 | Reference 3 | Reference 4 | Reference 5 | Reference 6 | Reference 7 | Reference 8 | Reference 9 | Reference 10 |
RELEASE 11i | ||||||||||
Payables/Payments | Vendor name | Invoice id | Check id | External check number | Paid invoice number | ‘AP Payments‘ | SOB id | Invoice distribution line number | Invoice payment id | Cash, Discount, Liability, Exchange Gain, Exchange Loss, Future Pay |
Payables/Invoices | Vendor name | Invoice id | Distribution line number | Invoice number | ‘AP Invoices‘ | SOB id | Expense, Liability | |||
Receivables/Transactions | posting control id | customer trx id | cust trx line gl dist id | trx number | cust account number | CUSTOMER | bill to customer id | CM, DM, CB, INV | type||account class | RA_CUST_TRX_LINE_GL_DIST |
Receivables/Receipts | posting control id | cash receipt id ||cash receipt history id | line id | receipt number | pay from customer | TRADE | TRADE_‘source_type‘ | AR_CASH_RECEIPT_HISTORY | ||
Receivables/Applications (cash) | posting control id | cash receipt id ||receivable application id | line id | receipt number | trx number, null | cust trx type | pay from customer | TRADE, CCUR | application type||source type | AR_RECEIVABLE_APPLICATIONS |
Receivables/Applications (CM) | posting control id | receivable application id | line id | trx number | trx number, null | cust trx type | bill to customer id | CMAPP | application type||source type | AR_RECEIVABLE_APPLICATIONS |
Receivables/Adjustments | posting control id | adjustment id | line id | trx number | adjustment number | cust trx type | bill to customer id | ADJ | ADJ_source type | AR_ADJUSTMENTS |
Receivables/Miscel.Rec. | posting control id | cash receipt id | line id | receipt number | cash receipt history id | pay from customer | MISC | MISC_source type | AR_CASH_RECEIPT_HISTORY | |
Receivables/Bills Receivable | posting control id | transaction history id | line id | trx number | customer trx id | cust trx type | drawee id | cust trx type | BR_source type | AR_TRANSACTION_HISTORY |
Purchasing | PO, REQ | doc header id | doc distribution id | doc number | ||||||
Inventory | mta.gl batch id | mta.organization code | ||||||||
Consolidations (TRX) | consolidation id | consolidation run id | source hournal header id | source journal line num | source ccid | ‘Transaction‘ | subsidiary SOB | source batch id | ||
Consolidations (BAL) | consolidation id | consolidation run id | source ccid | currency type | budget version id | ‘Balances‘ | subsidiary SOB | period | amount type | actual amount |
Intercompany | transaction number | transaction id | offset line number | CLEARING, OFFSET | SENDER, RECEIVER | |||||
RELEASE 12 | ||||||||||
(all subledgers) | entity_id | accounting_event_id | ae_header_id | ae_line_num | DR amount | CR amount |
第3章: 传送和导入流程
A. 向接口表导入事务处理
在Oracle应用产品中,像AP, AR, PO, INV 和 WIP这几个模块,均有能够从存储商务活动的数据库结构中提取信息的并发程序,并将这些信息插入在GL_INTERFACE表中。
11i中各模块的部分传送并发程序见下表:
模块 | 程序 | 可执行文件 |
AP | 将应付账款传送至总账 | APPPST |
FA | 创建日记账分录 | FAPOST |
AR | 总账传送程序 | ARGLTP |
AX | AX传送至总账 | AXXPSTGL |
PA | 接口费用成本传送至总账 | PADTBC |
PRC:接口人工成本传送至总账 | PAGGLT | |
PRC: 接口使用成本传送至总账 | PASGLT | |
PRC:接口收入成本传送至总账 | PATTGL | |
INV | 将事务处理传送至总账 | INCTGL |
在R12中,为子分类账创建会计科目时,信息同时存入常见的XLA表(子分类账会计)中。当会计信息为最终时,传送日记账分录到总账流程将信息存入GL接口并自动提请日记账导入请求,也支持提请自动过账请求。
更多详细信息请见:创建会计科目并传送日记账分录到总账程序。
如果信息来自外部模块,GL_INTERFACE表必须通过SQL*Loader, Pro*C, PL/SQL 程序或Applications Desktop Integrator (ADI 或 Web ADI))等工具来导入。
以下是接口表中几个重要字段的描述:
账户组合 (Account Combination)
账户组合可以以下两种途径存储:
- 为字段CODE_COMBINATION_ID输入值
- 为在用的会计弹性域的每个段输入值。根据结构的定义,这些值包括:段1, 段2,..., 段n
如果账户组合以两种方式存储,则日记账导入程序会获取段列的值。
组织标识(Group ID)
发送程序利用此字段将事务处理分组。当信息来自Oracle应用产品的子分类账时,值会自动分配到此段并按序列GL_INTERFACE_CONTROL_S定义。日记账导入程序会根据来源和随机的组织标识来选择记录。
日记账类型(Journal Type)
预算,保留款或实际日记账都可以被输入表GL_INTERFACE。生成的日记账类型存储在字段ACTUAL_FLAG,可能出现的值如下:
- A : 实际
- E : 保留款
- B : 预算
外币兑换(Currency Conversion)
非本位币输入的日记账可以用以下两种方式存储:
- 在段ENTERED_CR或ENTERED_DR中,输入金额;在段USER_CURRENCY_CONVERSION_TYPE 和 CURRENCY_CONVERSION_DATE中分别输入折换类型和折换日期。如果您输入的是用户汇率,则您必须在CURRENCY_CONVERSION_RATE一列中输入一个折换率。对于其他的折换类型,您必须在CURRENCY_CONVERSION_DATE一列中输入折换日期。在此情况下,日记账导入程序会自动折算出本位币的金额。
- 填写段ENTERED_CR 或 ENTERED_DR, 以及ACCOUNTED_CR 或 ACCOUNTED_DR 时,无需指定折换类型和日期。账户金额必须为折算后的借方或贷方金额。
日记账来源(Journal Source)
此值被存储在段USER_JE_SOURCE_NAME中,同时与日记账来源的名称相对应。例如:应收账款,应付账款,库存等。
参考字段(Reference Fields)
参考字段是可选的,但如果被定义则按以下方法解释:
REFERENCE1 | 批名。结构: <参考1><来源><请求 ID><余额类型 ><组织标识> |
REFERENCE2 | 批描述; 如果未被定义,则显示: 日记账导入 <来源><请求ID> |
REFERENCE4 | 日记账分录名称; 格式: <类别><币种><折换类型 ><折换率><折换日期 ><保留款类型 ID><预算版本>. 部分信息根据日记账类型显示。 |
REFERENCE5 | 日记账分录描述; 如果未被定义, 按以下格式显示:日记账导入-请求ID |
REFERENCE6 | 参考或凭证号;如果未被定义,则在日记账导入生成时自动产生 |
REFERENCE7 | 冲销日记账标识 |
REFERENCE8 | 冲销日记账期间 |
REFERENCE10 | 日记账行描述 |
REFERENCE21...30 | 这些段的值和意义根据日记账来源和系统版本而不同。存储的信息根据源文档识别和匹配日记账。这些字段的值在表GL_JE_LINES和表GL_IMPORT_REFERENCES中通过REFERENCE _10映射到REFERENCE _1。 |
B. 日记账导入
日记账导入是一个复杂的工具,运行时需要同时在上千条记录上执行一系列的验证。日记账导入程序从子分类账加载数据到GL _INTERFACE表中,然后到GL _JE_BATCHES, GL _JE_HEADERS 和 GL _JE_LINES 表中。
定义并发程序控制
并发程序控制表单可用于提高日记账导入,成批分配/成批预算,和打开期间等程序的执行效率。日记账导入程序的效率可以通过增加存储在内存中的日记账行数量来实现。
在R12之前,此处的设置在特定的表单中完成
:
表单名称: GLXSTCPC
职责: 总账超级用户
路径: 设置 > 系统 > 控制
在R12 中的设置,采用以下配置文件选项:
- GL: 内存中的账户数
- GL: 存档日记账导入数据
- GL: 一次处理的数据数
- GL 日记账导入:按会计结算日期创建单独的日记账
提交日记账导入运行请求
一旦数据存储在GL _INTERFACE表中,您可以从导入日记账表单处手动提交导入请求
表单名称: GLXJIRUN
职责: 总账超级用户
路径: 日记账 > 导入 > 运行
目前,也可以在提交并发请求表单中提交日记账导入请求
来源:请选择您希望日记账导入程序生成的日记账分录来源,比如应收账款,应付账款等。
请注意,在R12环境中,日记账导入期间,事务处理信息只在接口表暂存(数据真正存储在XLA表中),因此不可以为子分类账来源使用子分类账会计提交日记账导入请求。日记账导入程序是通过传送会计信息程序自动启动的。
组织标识: 如果GL_INTERFACE表中的GROUP_ID字段存有值,或者由用户填写,或者由子分类账创建事务处理时产生,则导入此类事务处理到总账时,用户务必在导入日记账请求的表单处指定组织标识。
在导入日记账请求的表单处,针对组织标识字段有很多值供您选择,用户可以选择一个有效的值(存在于接口表中)来填写。总账会根据您指定的日记账来源和组织标识组合导入相应的数据。
如果您没有指定组织标识,则总账会从组织标识为空的特定的日记账分录来源导入数据。
在这种情况下导入日记账时,接口表中拥有空组织标识的不同的批可能会被合并。所以为了避免这种情况的发生,我们建议您始终指定组织标识。
您可以通过运行选项来选择是否导入说明性弹性域。
日记账导入并发程序: GLLEZL
并发程序最终生成的是一个请求日志文件和一个执行报告。请求日志文件中显示的内容有助于您解决程序运行时出现的相应问题,比如:
- 账套或账簿ID和名称
- 会计科目表(COA)ID
- 会计科目弹性域的段号以及段描述
- 本位币
- 暂记账户是否被启用
日记账导入执行报告汇总了所有的导入结果并列示出出错的行信息。
报告中同时列出所有可能出现的错误代码描述(并不意味着这些错误发生)。
C. 日记账导入更正
如果日记账导入程序运行结果报错,则指定来源和组织标识的记录不会导入。所有的行会存留在GL_INTERFACE表中。
在R12系统中,来自子分类账会计的行会回滚到XLA表中,并同时从接口表清除,所以在子分类账层就必须对这些行加以更正,保证无误后再传送,以避免在总账和子分类账对账时发生错误。
您可以使用“更正日记账导入数据”来更正这些错误。
- 第一个界面提供给您多种选项帮助您找到特定错误的日记账。
表单名称: GLXJICOR
职责: 总账超级用户
路径: 日记账 > 导入 > 更正
查询您在日记账导入执行报告中发现的错误并更正相关数据。您只能查询状态是错误或更正的日记账导入行。
- 此界面显示报错的实际日记账及其错误信息
表单名称: GLXJICOR
一旦被更正,您可以单击导入日记账按钮重新运行日记账导入。
屏幕上显示的是有关日记账的不同类型的信息,您可以在以下内容中选择:
- 批/日记账
- 账户
- 日记账行
- 说明性弹性域
- 参考
D. 日记账导入删除
只有在数据可以重新导入到GL_INTERFACE表中的情况下才可以使用此程序,比如数据是从电子表格或外部系统导入。同日记账更正,只有状态是错误的批才可以删除。
在R12环境中,子分类账批不能删除,因为行信息会回滚到XLA表中,接口表不存有数据。
目前,删除日记账程序按并发程序提请:
请求: 程序 – 删除日记账导入数据
较旧的版本使用表单删除批信息。
表单名称: GLXJIDEL
职责: 总账超级用户
路径: 日记账 > 导入 > 删除
选择来源,请求ID,组织标识。
警告!!! 一旦删除,数据将无法恢复。
如果数据来自电子表格或其他系统(非子分类账) 可以重新发送。
执行此操作请务必慎重!
第4章: 日记账导入错误代码
以下是日记账导入程序验证报错样例(日记账导入执行报告)。新增错误代码会随时更新。
期间错误代码
- EP01此日期不在任何打开的或将来可输入的期间内。
- EP02此账簿不存在打开的或将来可输入的期间。
- EP03此日期不在打开保留年度的任何期间内。
- EP04此日期不是一个业务日。
- EP05在此会计期中不存在业务日。
不平衡日记账错误代码
- WU01 警告: 此日记账分录不平衡。之所以被接受是因为在此分类账中允许暂记过账。
- EU02 此日记账分录不平衡,并且在此分类账中不允许暂记过账。
- EU03此保留款日记账分录不平衡,并且未定义“保留款准备金”账户。
弹性域错误代码
- EF01此会计日期的会计科目弹性域不活动。
- EF02此会计科目弹性域不允许明细过账。
- EF03不可用的会计科目弹性域。
- EF04这是无效的会计科目弹性域。检查您的交叉验证规则和段值。
- EF05不存在具有此代码组合标识的会计科目弹性域。
- EF06此替代账户无效。
- WF01已使用替代账户代替原始账户。
- WF02已使用暂记账户代替原始账户。
外币错误代码
- EC01 使用用户折换率类型时必须输入一个折换率。
- EC02 未提供折换日期。
- EC03 在输入外币日记账分录行时,必须提供折换率类型或入账金额。
- EC04 此折换日期不存在折换率。
- EC05 此折换类型不存在折换率。
- EC06 此币种不存在折换率。
- EC08币种代码无效。
- EC09未启用任何币种。
- EC10 不能创建外币保留款日记账。
- EC11折换率类型无效。
- EC12在分类账或 STAT 币种日记账行中,输入金额必须等于入账金额。
- EC13输入金额乘以折换率必须与入账金额相等。
- ECW1警告:由于未指定折换率类型,因此无法验证折换额。
预算错误代码
- EB01必须为预算行提供预算版本。
- EB02不能为冻结预算创建日记账。
- EB03预算年度未打开。
- EB04该分类账不存在此预算。
- EB05预算日记账的 encumbrance_type_id 列必须为 NULL。
- EB06必须为预算日记账提供期间名称。
- EB07 此期间名称无效,请检查日历以便查找有效的期间。
- EB08不能为预算创建平均日记账。
保留款错误代码
- EE01必须为保留款行提供保留款类型。
- EE02保留款类型无效或被禁用。
- EE03不能创建 STAT 币种的保留款日记账。
- EE04保留款行的 BUDGET_VERSION_ID 列必须为 NULL。
- EE05不能为保留款创建平均日记账。
冲销错误代码
- ER01必须提供冲销期间名称。
- ER02此冲销期间名称无效,请检查日历以便查找有效的期间。
- ER03必须提供冲销日期。
- ER04 此冲销日期不在有效的期间内。
- ER05此冲销日期不是数据库日期格式。
- ER06冲销日期必须与有效日期相同或在有效日期之后。
- ER07此冲销日期不是一个业务日。
- ER08在冲销期间内中没有业务日。
说明性弹性域错误代码
- ED01 上下文和属性值没有对日记账形成一个有效的说明性弹性域 - “日记账分录行”。
- ED02 上下文和属性值没有对日记账形成一个有效的说明性弹性域 - “捕获信息”。
- ED03 上下文和属性值没有对增值税形成一个有效的说明性弹性域。
其他错误代码
- EM01日记账分录类别无效。
- EM02未定义任何日记账分录类别。
- EM03无效的账簿ID。
- EM04无效的 “actual flag”: 必须是 "A" (实际), "B" (预算) 或 "E" (保留款)
- EM05实际日记账的 encumbrance_type_id 列必须为 NULL。
- EM06实际日记账的 budget_version_id 列必须为 NULL。
- EM07在输入 STAT 币种日记账行时,统计额属于 entered_dr(cr) 列。
- EM09未定义事务处理代码。
- EM10事务处理代码无效。
- EM12生成序列编号时出现 Oracle 错误。
- EM13分配的序号不活动。
- EM14 由于缺少授权或同义词,因此产生了序列编号设置错误。
- EM17 连续编号经常被使用,但此分类账和日记账分录类别不存在分配。
- EM18人工单据序号不能与“日记账导入”一起使用。
- EM19增值税数据仅在与实际日记账结合时才有效。
- EM21导入此批必须启用预算控制。
- EM22必须为此会计日期,默认折换率类型和您的双重币种定义折换率
- EM23此双重币种默认汇率类型配置文件选项无输入值。
- EM24平均日记账只能导入到合并分类账中。
- EM25平均日记账标志无效。有效值为 "Y"、"N" 和 NULL。
第5章: 故障排除脚本
以下是一些实用的脚本,帮助您解决日记账导入程序出现的相关错误:
- 估算从GL_INTERFACE表中(等待)导入过账的日记账行数:
q_ji1.sql :/* Lists all pending journal import groups and the number*/
/* of records in each group */
set linesize 120
col Currency format a8
spool q_ji1
Select set_of_books_id Book
, user_je_source_name Source
, user_je_category_name Category
, currency_code Currency
, trunc (date_created) Created
, actual_flag Journal
, count(*)
from gl_interface
group by set_of_books_id
, user_je_source_name
, user_je_category_name
, currency_code
, trunc (date_created)
, actual_flag
order by set_of_books_id, trunc (date_created)
/
spool off
- 统计在一个Group_ID下借方和贷方的金额
q_ji2.sql :/* Calculates the total amounts for a given group id */
set linesize 120
col s_en_cr format S999,999,999.99
col s_en_dr format S999,999,999.99
col s_acc_cr format S999,999,999.99
col s_acc_dr format S999,999,999.99
spool q_ji3
Select user_je_source_name Source
, User_je_category_name Category
, currency_code Currency
, sum (entered_cr) s_en_cr
, sum (entered_dr) s_en_dr
, sum (accounted_cr) s_acc_cr
, sum (accounted_dr) s_acc_dr
from gl_interface
where group_id = &group_id
group by user_je_source_name
, User_je_category_name
, currency_code
/
spool off
- 以下查询将实现针对来自应付账款的特定组织标识,把日记账行根据类别和内部发票ID分组,同时合计借方和贷方的金额(在11i环境):
q_ji3.sql :set linesize 120
col s_en_cr format S999,999,999.99
col s_en_dr format S999,999,999.99
col s_acc_cr format S999,999,999.99
col s_acc_dr format S999,999,999.99
col reference22 format a15
spool q_ji4
Select USER_JE_CATEGORY_NAME category
, reference22 invoice_id
, sum (entered_cr) s_en_cr
, sum (entered_dr) s_en_dr
, sum (accounted_cr) s_acc_cr
, sum (accounted_dr) s_acc_dr
, count(*)
from gl_interface
where user_jr_source_name =‘Payables‘ and
group_id = &group_id
group by USER_JE_CATEGORY_NAME, reference22
;
spool off此查询q_ji3.sql可以被改写,不同的参考字段可被应用于其他来源。
已知问题
已发布注意事项列表,请参考 My Oracle Support。
以下参考部分的文档也将提供相关的实用信息。
总账:日记账导入流程(文档 ID 1591640.1)