EAS总账备忘录

本文介绍了EAS总账系统的架构及数据表设计,包括科目、凭证、辅助账等核心模块,并详细阐述了如何通过修改数据库和代码来添加自定义核算项目。
EAS总账备忘录


科目1----1辅助账1----1..n核算项目类型
凭证1----1..n凭证分录1----0..n辅助账行


辅助账组合表:即横表T_BD_AssistantHG,每个核算项目类型占用一列,每行代表每一种核算项目的组合(具体辅助账)。
凭证:T_GL_Voucher
凭证分录:T_GL_VoucherEntry
凭证辅助账行:T_GL_VoucherAssistRecord,记录发生额,外键FAssGrpId关联横表FID(即可找到具体的核算项目)。

核算项目类型:T_BD_AsstActType,FMappingFieldName表示该核算项目在横表中的列名。
自定义核算项目类型:T_BD_GeneralAsstActTypeGroup
自定义核算项目:T_BD_GeneralAsstActType,EAS Client定义关系后,自动列入T_BD_AsstActType。BIM发布后FGLAsstactTypeGrpID被设置为关联自定义核算项目类型。


科目余额表:T_GL_AccountBalance,记录及时余额(列原币、本位币、报告币别),FBalType表余额类型:1-保存后余额,5-过账后余额。每记录又分原币、综合本位币、综合报告币三行存储,故存储空间系数=2x3=6。虚体科目余额视图V_GL_VIRTUALBALANCE,原表T_GL_AccountBalanceUnion已废弃。
辅助账余额表:T_GL_AssistBalance 外键FAssistGrpId关联横表FID,存储方式同上。


往来账:T_GL_AcctCussent,FVchAssistRecordID关联凭证辅助账行。
核销关系历史记录:T_GL_AcctCussentHistory


科目表:T_BD_AccountTable
会计科目:T_BD_AccountView
期间类型:T_BD_PeriodType
会计期间:T_BD_Period


(综合本位币)GLC	@# 11111111-1111-1111-1111-111111111111DEB58FDC
(综合报告币)GRC	@$ 22222222-2222-2222-2222-222222222222DEB58FDC


-------------------------新增自定义核算项目:资金帐户、证券中介、投资产品...-------------------------
核算项目设置:((U)=update,(+)=add) 
 BIM透视图,基础资料鼠标右键设置为核算项目并发布业务单元。
 代码提交:(U)AbstractAssistantHGinfo.java
       (U)T_BD_AssistantHG.table(部署时手工增加数据库字段)
       (U)AssistantHG.entity
       (+)R_AssistantHG_xxx.relation(xxx为增加的核算项目,可结合cvs对比。)
 部署(核算项目部分):
  1)t_bd_asstacttype新增系统核算项目记录,或者登录系统,在核算项目中新增。
  2)手工修改T_BD_AssistantHG,增加新增的核算项目字段(FxxxID varchar(44))。
  3)元数据打包:T_BD_AssistantHG.table、AssistantHG.entity、R_AssistantHG_xxx.relation
  4)类打包:AbstractAssistantHGinfo.class
 
打包Ant脚本部分:
  类:
  <include name="**/eas/basedata/master/auxacct/AbstractAssistantHGInfo.class" /> 
  元数据:
  <include name="**/eas/basedata/master/auxacct/T_BD_AssistantHG.table" /> 
  <include name="**/eas/basedata/master/auxacct/app/AssistantHG.entity" /> 
  <include name="**/eas/basedata/master/auxacct/app/R_AssistantHG_Product.relation" /> 
  <include name="**/eas/basedata/master/auxacct/app/R_AssistantHG_SecurityCompany.relation" /> 
  <include name="**/eas/basedata/master/auxacct/app/R_AssistantHG_CapitalAccount.relation" /> 

 
部署方法:
    1)拷贝xxx.jar到lib:server的patch和client的patch目录。
    2)拷贝xxx-metas.jar到metas:server的patch和client的patch目录。
    3)账套执行脚本[修改核算项目横表.sql],形如:
	alter table T_BD_AssistantHG add FProductID varchar(44);
	Create Table T_BD_Product ....

核算项目中便可出现新增的项:
(上传个图片还要申请,BS!)
适用范围 1 11启用科目对照提示生成结账凭证错误 7 12特殊数据权限授权不起作用 7 13总账系统参数重复,无法删除 7 14做凭证时选不到内部公司 7 15科目辅助账无法变更 8 16变更科目辅助账类型时报错 8 17客户信息错误添加,删除时提示被辅助账横引用 9 18点击总账模块菜单时提示没有启用的科目 9 2.初始化 10 21辅助账科目初始余额录入界面无法显示外币余额 10 22副帐簿辅助账初始余额无法录入 10 23总账与固定资产无法关联 10 24科目余额初始化,无法录入实际损益发生额 11 25现金流量初始化界面录入辅助账时性质栏为灰色 11 26应付与总账联用时,提示对账不平 11 27辅助账初始化时选择特定的核算项目报错 11 3.凭证处理 13 31当第一条分录录入的是贷方科目时,辅助账行只显示头而无内容 13 32暂存凭证提交后编码不变,还是原来的暂存凭证号 13 33辅助项目输入金额的时候能否分成借贷方输入 13 34应付账款设置了为受控系统,所以在总账中无法生成此凭证。 13 35结转损益时选不到有余额的损益类科目 13 36凭证保存或是提交都保存报错 13 37凭证查询界面无法按照记账类型进行排序 14 财务会计总账应用问题集萃 金蝶国际软件集团有限公司版权所有 3 38本组织查询凭证可以看到其它组织凭证 14 39凭证录入不要显示报告币借贷方 14 310凭证录入时,在辅助账类型中录入客户助记码,不能自动带出该客户。 14 311凭证提交后立即出现打印界面 14 312凭证使用工作流复核后,在凭证序时簿界面还是显示提交状态,无法过账。 15 313凭证提交总是提示业务日期晚于到期日 15 314凭证无法提交 15 315凭证提交时提示“凭证现金流量附项目指定不正确” 15 316 凭证出现跳号 15 317凭证业务日前提交后无法修改 16 318凭证已指定流量在附调整又要求再次调整 16 319标准凭证引入后希望制单人还是原凭证制单人 16 320凭证引出为模式凭证报错 16 321凭证重排的规则 16 322凭证提交,提示“核算项目借贷不平” 17 323 其他业务单据生成凭证,在凭证序时薄修改和删除凭证,提示获取关联关系出错 17 324在引入凭证提示未有符合过滤条件的凭证被引入 17 325设置数量核算的科目,在新增凭证界面无法带出计量单位和数量列 18 326凭证录入时,选择辅助账查看的界面如何设置为左树右结构 18 327生成凭证的日期如何设置为当天的日期 18 328新增凭证选择不到外部银行账户 18 329新增凭证,辅助账选择银行账户,按F7无银行账户供选择。 18 330新增凭证中,无法选择指定的供应商 18 331暂存凭证修改后凭证跳转到其他位置 19 332标准凭证引入的凭证无法进行修改 19 333修改组织单元名称后,凭证序时簿界面还显示的变更前核算项目名称。 19 334其他业务系统单据生成凭证有空行 19 335凭证复核报错 19 336标准凭证引入报错 19 337用智能ABC输入法录入凭证时,EAS系统自动关闭 20 338在录入凭证辅助账时,把辅助账“名称”设置为默认查询条件 适用版本:EAS600 20 339凭证序时簿界面发现缺少转账凭证 20 340凭证序时簿界面审核和过账的按钮是不可用 20 财务会计总账应用问题集萃 金蝶国际软件集团有限公司版权所有 4 341凭证新增,如何选择到所有职员信息 21 342结转损益后,损益类科目还有余额 21 343总账->期末处理->期末结账报错 21 344凭证删除后在应付系统还存在相应数据 21 345期末处理->结转损益报错 21 346凭证无法过账,提示辅助账未结束初始化 21 347 凭证序时簿界面无法显示核算项目列 22 348 凭证编号不能自动更改 22 349 编码规则经常不记录断号,凭证出现断号。 22 350多借多贷分录下,凭证提交时本位币借贷平衡,报告币借贷不平衡,差一分钱 23 351"凭证查询"双击报错 23 352 收款单生成的凭证无法删除 24 353 科目余额显示职员为空 25 354 凭证中字段FSOURCETYPE、FBIZSTATUS的内容及含义 26 4.账簿、财务报 26 41明细分类账导出报错 26 42多栏账方案报错 27 43辅助核算明细内容为空 27 44辅助核算明细借方、贷方列数显示异常 27 45凭证金额与辅助核算明细显示的金额不一致 27 46科目余额显示的核算项目与基础资料的核算项目名称不一致 27 47核算项目余额期末余额显示为空 28 48虚体查询核算项余额切换币别需重现选择公司 28 49科目核算项目组合查询报错 28 410科目核算项目组合,同一科目不同期间,显示的科目条数不一致 28 411科目余额是否包含未过账凭证显示的结果不一致 29 412科目余额查询大量的数据,拉动右侧滚动条报错 29 413科目余额科目初始余额异常 29 414科目余额核算项目列显示异常 29 415科目余额核算项目内容显示异常 30 416科目余额科目名称与科目代码不符 30 417科目余额联查明细数据不正确 30 财务会计总账应用问题集萃 金蝶国际软件集团有限公司版权所有 5 418科目余额一级科目与明细科目合计数不一致 30 419科目余额核算项目组合中的期初余额不一致 30 420科目余额无数据 31 421明细分类账查询时,凭证编号未能按顺序排列 31 422明细分类账显示的借贷位置不正确 31 423虚体查询科目余额数据不正确 31 424科目余额核算项目信息显示异常 31 425科目余额一级科目不能自动汇总二级科目的金额 31 426科目余额明细科目数量合计与一级科目数量不一致。 32 427总账科目余额与明细账金额不符 32 428明细分类账导出EXCEL时系统卡死。 32 429科目余额头显示不正常 32 430科目余额头部分出现黑框框/个别用户查询辅助核算明细显示6位小数 33 431科目余额过滤“显示核算项目明细”查询核算项目名称显示错误。 34 432会计科目余额方向调整 34 433要求虚体科目余额公司范围选择只显示用户有权限的公司 35 434科目余额勾选显示核算项目明细显示辅助账空行 35 435总账科目余额与明细分类账数据有差异 35 5.往来管理、往来通知单 36 51通知单查询中“解除结帐检查”按钮不可见 36 52通知单查询中“联查凭证”功能需要进行权限项控制 36 53往来帐帐龄分析,帐龄时间不可设置 36 54账龄分析查询报错 36 55总账菜单中未见<往来通知单>菜单 36 56现金流量通知单勾稽 37 57无法更改“核销模式”参数,提示存在未过账的凭证 37 58通知单查询已解除结账检验,但是系统仍然无法结账 37 59往来账查询显示不出客户和供应商 38 510凭证挂辅助账(供应商)往来账查询查不到 39 6.期末处理 39 61期末调汇时无报告币栏 39 62结转损益科目金额错误 39 财务会计总账应用问题集萃 金蝶国际软件集团有限公司版权所有 6 63结转损益生成凭证提示借贷不等 39 64结转损益科目未按余额相反方向结转,导致数据查询不便。 39 65期末调整凭证摊销功能不可用 40 66期末处理余额重算报错 40 67自动转账分录借方分录无法取数 40 68反月结不成功 40 69自动结转模板无法按指定的成本中心结转 40 610总账期末结账时提示重新连接 41 7.现金流量 41 71凭证界面指定现金流量无法保存 41 72现金流量汇率变动产生的现金流量净额为空 42 73凭证指定现金流量界面无法选择现金流量项目 42 74现金流量查询界面汇总数异常 42 75现金流量指定界面多了“性质”栏,影响凭证提交 42 76现金流量补充资料和现金流量 42 77现金流量中,经营活动产生的现金流量净额错误 43 78现金流量查询结果出错导致 43 79现金流量项目指定问题 43 710现金流量与附经营活动现金流量净额不一致 43 711附指定中,对一级科目无法取消指定 44 8.多账薄与其他 44 81主副账簿本位币不一致时,如何传递凭证 44 82凭证模板无法打印现金流量项目 44 83辅助核算明细打印核算项目小计页数 44 84辅助核算明细套打多个核算项目为空 44 85辅助明细账无法设置外币套打模板 45 86核算项目余额打印参数设置报错 45 87凭证多张打印时显示的页数不正确 45 88凭证打印预览,点击页面设置报错 45 89凭证界面显示科目异常,导致无法打印 45 810核算项目打印名称错误 46 811凭证打印仍然显示之前的核算项目名称 46
一、重建索引的前提 1、上频繁发生update,delete操作; 2、上发生了alter table ..move操作(move操作导致了rowid变化)。 二、重建索引的标准 1、索引重建是否有必要,一般看索引是否倾斜的严重,是否浪费了空间, 那应该如何才可以判断索引是否倾斜的严重,是否浪费了空间, 对索引进行结构分析(如下): SQL>Analyze index index_name validate structure; 2、在执行步骤1的session中查询index_stats,不要到别的session去查询。 SQL>select height,DEL_LF_ROWS/LF_ROWS from index_stats; 说明:当 查询出来的 height>=4 或者 DEL_LF_ROWS/LF_ROWS>0.2 的场合 , 该索引考虑重建 。 举例: (t_gl_assistbalance 26 万多条信息 ) SQL> select count(*) from t_gl_assistbalance ; 输出结果: COUNT(*) ---------- 265788 SQL> Analyze index IX_GL_ASSTBAL_1 validate structure; Index analyzed SQL> select height,DEL_LF_ROWS/LF_ROWS from index_stats; 输出结果: HEIGHT DEL_LF_ROWS/LF_ROWS ---------- ------------------- 4 1 三、重建索引的方式 1、drop 原来的索引,然后再创建索引; 举例: 删除索引:drop index IX_PM_USERGROUP; 创建索引:create index IX_PM_USERGROUP on T_PM_USER (fgroupid); 说明:此方式耗时间,无法在24*7环境中实现,不建议使用。 2 、直接重建: 举例: alter index indexname rebuild; 或alter index indexname rebuild online; 说明:此方式比较快,可以在24*7环境中实现,建议使用此方式。 四、alter index rebuild 内部过程和注意点 alter index rebuild 和alter index rebuil online的区别 1、扫描方式不同 1.1、Rebuild以index fast full scan(or table full scan) 方式读取原索引中的数据来构建一个新的索引,有排序的操作; 1.2、rebuild online 执行扫描获取数据,有排序的操作; 说明:Rebuild 方式 (index fast full scan or table full scan 取决于统计信息的cost) 举例1 SQL> explain plan for alter index IX_GL_ASSTBAL_1 rebuild; Explained SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT --------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | --------------------------------------------------------------------- | 0 | ALTER INDEX STATEMENT | | 999K| 4882K| 3219 | | 1 | INDEX BUILD NON UNIQUE| IDX_POLICY_ID2 | | | | | 2 | SORT CREATE INDEX | | 999K| 4882K| | | 3 | INDEX FAST FULL SCAN | IDX_POLICY_ID2 | 999K| 4882K| | --------------------------------------------------------------------- 举例2 SQL> explain plan for alter index idx_policy_id rebuild; Explained SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT --------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | --------------------------------------------------------------------- | 0 | ALTER INDEX STATEMENT | | 2072K| 9M| 461 | | 1 | INDEX BUILD NON UNIQUE| IDX_POLICY_ID | | | | | 2 | SORT CREATE INDEX | | 2072K| 9M| | | 3 | TABLE ACCESS FULL | TEST_INDEX | 2072K| 9M| 461 | 举例3 ( 注意和 举例1 比较 ) Rebuil online 方式 : SQL> explain plan for alter index idx_policy_id2 rebuild online; Explained SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT --------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | ---------------------------------------------------------------------| 0 | ALTER INDEX STATEMENT | | 999K| 4882K| 3219 | | 1 | INDEX BUILD NON UNIQUE| IDX_POLICY_ID2 | | | | | 2 | SORT CREATE INDEX | | 999K| 4882K| | | 3 | TABLE ACCESS FULL | TEST_INDEX2 | 999K| 4882K| 3219 | 2 、rebuild 会阻塞 dml 操作 ,rebuild online 不会阻塞 dml 操作 ; 3 、rebuild online 时系统会产生一个 SYS_JOURNAL_xxx 的 IOT 类型的系统临时日志 , 所有 rebuild online 时索引的变化都记录在这个中 , 当新的索引创建完成后 , 把这个的记录维护到新的索引中去 , 然后 drop 掉旧的索引 ,rebuild online 就完成了。 注意点: 1、 执行rebuild操作时,需要检查空间是否足够; 2、虽然说rebuild online操作允许dml操作,但是还是建议在业务不繁忙时间段进行; Rebuild操作会产生大量redo log ; 五、重建分区上的分区索引 重建分区索引方法: Alter index indexname rebuild partition paritionname tablespace tablespacename; Alter index indexname rebuild subpartition partitioname tablespace tablespacename; Partition name 可以从user_ind_partitions查找 Tablepace 参数允许alter index操作更改索引的存储空间; 六、索引状态描述 在数据字典中查看索引状态,发现有三种: valid:当前索引有效 N/A :分区索引 有效 unusable:索引失效 七、术语 1、高基数:简单理解就是中列的不同值多。 2、低基数:建单理解就是中的列的不同值少。 3、以删除的叶节点数量:指得是数据行的delete操作从逻辑上删除的索引节点 的数量,要记住oracle在删除数据行后,将 “ 死 “ 节点保留在索引中,这样做可以加快sql删除操作的速度,因此oracle删除数据行后可以不必重新平衡索引。 4、索引高度:索引高度是指由于数据行的插入操作而产生的索引层数,当中添加大量数据时,oracle将生成索引的新层次以适应加入的数据行,因此,oracle索引可能有4层,但是这只会出现在索引数中产生大量插入操作的区域。Oracle索引的三层结构可以支持数百万的项目,而具备4层或是更多层的需要重建。 5、每次索引访问的读取数:是指利用索引读取一数据行时所需要的逻辑I/O操作数,逻辑读取不必是物理读取,因为索引的许多内容已经保存在数据缓冲区,然而,任何数据大于10的索引都需要重建。 6、什么时候重建呢? 察看 dba_indexes 中的 blevel 。这列是说明索引从根块到叶快的级别,或是深度。如果级别大于等于4。则需要重建, 如下 :Select index_name,blevel from dba_indexes where blevel>=4. 另一个从重建中受益的指标显然是当该索引中的被删除项占总的项数的百分比。如果在20%以上时,也应当重建,如下 SQL>analyze index index_name validate structure SQL>select (del_lf_rows_len/lf_rows_len)*100 from index_stats where name= ’ index_name ’ 就能看到是否这个索引被删除的百分比。 7、什么样的重建方式更好? (1)、建索引的办法: 1.1、删除并从头开始建立索引。 1.2 、 使用 alter index index_name rebuild 命令重建索引。 1.3 、 使用 alter index index_name coalesce 命令重建索引。 (2)、下面讨论一下这三种方法的优缺点: 2.1、删除并从头开始建索引:方法是最慢的,最耗时的。一般不建议。 2.2、Alter index index_name rebuild 快速重建索引的一种有效的办法,因为使用现有索引项来重建新索引,如果客户操作时有其他用户在对这个操作,尽量使用带online参数来最大限度的减少索引重建时将会出现的任何加锁问题,alter index index_name rebuild online。 但是,由于新旧索引在建立时同时存在,因此,使用这种技巧则需要有额外的磁盘空间可临时使用,当索引建完后把老索引删除,如果没有成功,也不会影响原来的索引。利用这种办法可以用来将一个索引移到新的空间。 Alter index index_name rebuild tablespace tablespace_name 。 这个命令的执行步骤如下: 首先,逐一读取现有索引,以获取索引的关键字。 其次,按新的结构填写临时数据段。 最后,一旦操作成功,删除原有索引树,降临时数据段重命名为新的索引。 需要注意的是alter index index_name rebuild 命令中必须使用tablespace字句,以保证重建工作是在现有索引相同的空间进行。 2.3、alter index index_name coalesce 使用带有coalesce参数时重建期间不需要额外空间,它只是在重建索引时将处于同一个索引分支内的叶块拼合起来,这最大限度的减少了与查询过程中相关的潜在的加锁问题,但是,coalesce选项不能用来将一个索引转移到其他空间。 八、其他 1、truncate 分区操作和truncate 普通的区别? 1.1、Truncate 分区操作会导致全局索引失效; truncate 普通对索引没有影响; 1.2、Truncate 分区操作不会释放全局索引中的空间,而truncate 普通会释放索引所占空间; 2、rename 名操作对索引没有影响,因为rename操作只是更改了数据字典,中数据行的rowid并没有发生变化 总结: 1、判断是否需要重建索引: SQL>analyze index index_name validate structure; SQL> select height,DEL_LF_ROWS/LF_ROWS from index_stats; ( 或 Select index_name,blevel from dba_indexes where blevel>=4 ); 说明 : 当查询出来的 height>=4 或者 DEL_LF_ROWS/LF_ROWS>0.2 的场合 , 该索引考虑重建 ; 2 、重建索引方法 : 方法一、 Alter index index_name rebuild tablespace tablespace_name; 优点:是快速重建索引的一种有效的办法,可以用来将一个索引移到新的空间。 缺点:重建期间需要额外空间。 方法二、 alter index index_name coalesce; 优点:重建期间不需要额外空间。 缺点:coalesce选项不能用来将一个索引转移到其他空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值