基于ARP底表的课题经费使用情况查询功能实现探讨(部分供参考)1前言目前各研究所的所级ARP系统和网上报销系统已正式使用,课题经费使用情况查询多在ARP财务模块中或通过discover报表进行,操作不方便和不直观,有些研究所,特别是按课题本进行经费核算的研究所,希望能为一线课题负责人和所领导提供实时快捷的经费使用情况查询功能.笔者就此对ARP系统底表进行分析研究,介绍如下.2主要功能课题经费使用情况查询为独立于所级ARP的外挂程序,可集成在各所portal或内部办公系统(所务公开网)中,功能是课题(本)负责人登录后,查看自已负责的课题(本)信息和某段时间收支累计和明细;所领导或科研处、财务处管理人员登录后,能按课题名称、课题编号、负责人等查询所有课题的经费信息.具体包括:提供组合查询功能,结合身份验证,列出全部或自已负责的课题本信息及当前余额.列出课题本各期间的期初期末余额和收支额,提供按年度、时间段查询和收支累积.列出课题本某期间或时间段内每笔收入、支出金额、凭证号、摘要、经手人等明细信息.列出课题借还款明细,列出累积欠款额.所级ARP系统中,课题及产出物信息在科研项目模块维护,课题收支在综合财务模块管理.收支明细记录于总帐的日记帐中,课题与日记帐间按帐套、会计期间、币种与会计科目号关联,会计科目由单位段、部门段、科目段、子目段、课题段、备用段共同组成,其中课题段即相当于课题本号,课题(本)经费查询主要按其汇总.3用户与权限查询功能可能独立运行,也可能集成在其它系统,应用程序需自带用户身份认证模块,同时也提供和支持与其它系统的接口.Oracle底表中没有记录人员的查询权限级别的信息项,对于查询全部课题本经费信息的用户需能指定和配置.普通用户可直接根据ARP系统中课题人员信息实时控制权限,即按子课题信息表和子课题人员表关联查询列出所负责课题,但这种方式无法列出虚拟课题号和不支持指定课题的第二负责人或其它查询人员.若将课题本信息一次性导出后为应用程序建立专门课题本与用户的查询授权对照表,控制方式灵活,但日后变化时需进行相应维护.结合两种方式优缺点,可以采用以ARP课题人员表为主,另配有对虚拟课题或第二查询人进行补充的授权表方式,即同时根据ARP课题人员表和补充的授权对照表控制权限.由于不建议直接在OracleERP库中建表或增改字段,用户信息与补充授权表存储在应用程序部署的服务器上(如加密码的mdb库),跨服务器的组合权限控制由应用程序验证模块实现.4底表分析ORACLEERP中有3万多底表、视图与数十万字段,关系复杂.一般结合系统界面可以针对性获得当前FORM相应表或视图信息,然后通过查看技术手册或Fnd_Tables、Fnd_Columns、Fnd_Views表获得详细信息.ARP底表中,会计科目表为gl_code_combinations,课题段为segment5字段,课题段的说明文字对应弹性域表fnd_flex_values、fnd_flex_values_tl的cas_coa_proj值集.子课题信息表为pa_tasks,子课题人员信息表可使用视图pa_project_players_v查看,两者通过task_id关联,与会计科目表的课题段通过课题编号(task_number)关联.总帐余额表为gl_balances,日记帐表分别为gl_je_batches(日记批)、gl_je_headers(日记头)、gl_je_lines(日记明细),均通过code_combination_id与科目表关联,其它相关表还有:gl_sets_of_books(帐套表)、gl_periods(会计期间表)等[3][4].图1ERP中GL、PA部分底表关系图5课题本信息列表课题编号和课题名称在科研项目中,但不含虚拟课题(行政部门经费),完整的课题本帐号信息在综合财务的会计科目表课题段中,帐号名称由项目模块传达到帐务时自动编译生成,常由由负责人+旧本号+经费来源+课题名称组成.课题帐号列表的实现有取自项目模块的真实课题名称或取自财务模块的课题段说明两种方式.前者课题编号和课题名称分别对应子课题表的task_number和task_longname,负责人对应课题人员表的full_name.其中子课题表中,同时含有管理需要或方便系统运行用配置的非真实课题等,需进行屏蔽,如service_type_code<>'管理需要'或task_numberin(selectsegment5fromgl_code_combinations);课题人员表中,包括课题组长、主要人员等,需通过人员角色(role)来判断,代码如:selecttask_numberas课...