发明内容
本发明提供一种Oracle Forms信息系统业务逻辑的复用方法,用于解决Oracle Forms信息系统的业务逻辑被其他UI复用的问题。
为了解决以上的技术问题,本发明提供一种Oracle Forms信息系统业务逻辑的复用方法,所述方法包括以下步骤:
步骤A:在Oracle Forms信息系统数据库中创建基表,所述基表至少包括第一基表至第八基表,所述第一基表用于记录权限代码与Form代码的对应关系以及权限代码对Form中数据的増删改属性;所述第二基表用于记录用户与权限代码的对应关系;所述第三基表用于记录基表与基表字段的对应关系以及基表字段的増删改属性;所述第四基表用于记录基表字段的值列表及代码输入的规则;所述第五基表用于记录对基表字段或整条数据库记录进行校验时使用的数据库函数及数据库函数执行校验的顺序;所述第六基表用于记录Form的基表信息;所述第七基表用于记录执行校验的所有数据库函数;所述第八基表用于定义Oracle Forms信息系统的报错信息;
步骤B:从用户提供的参数中获取用户信息并判断用户及其请求的Form操作是否合法,如果用户及其请求的Form操作合法,则转入步骤C;反之则退出流程;
步骤C:从用户提供的数据文件中获取待校验数据并对待校验数据进行封装;
步骤D:在所述Oracle Forms信息系统中查询校验函数;
步骤E:构造校验函数对步骤C中封装的待校验数据进行校验;
步骤F:根据所述第三基表中的数据判断用户提供的数据文件中的必填字段是否为空,如果必填字段不为空,则执行步骤G;反之则向用户反馈错误信息并退出流程;
步骤G:更新Oracle Forms信息系统的数据库中的数据。
根据本发明的一种优选实施方式,所述步骤B具体包括:
步骤B1:验证用户提供的用户名和密码是否能够通过用户登陆验证,如果验证通过则执行步骤B2,反之则退出流程;
步骤B2:根据第一基表和第二基表信息验证用户是否有Form操作权限,如果有操作权限则转入步骤C,反之则退出流程。
根据本发明的另一种优选实施方式,所述步骤C具体包括:
步骤C1:创建DataService对象实例;
步骤C2:通过DataService读取并封装所述待校验数据;
步骤C3:从用户提供的数据文件中获取程序编号、基表字段、基表描述字段及待校验数据;
步骤C4:将所述待校验数据与所述基表字段保存在一个Map对象里。
根据本发明的另一种优选实施方式,所述步骤D具体包括:
步骤D1:从第六基表中获取基表名和元基表;
步骤D2:根据所述Map对象获取基表字段名,然后根据所述基表字段名和步骤D1中得到的基表名,从第五基表中获取当前字段校验所必需的函数名、函数参数、函数返回参数、函数执行顺序号以及报错类型;
步骤D3:从第四基表中获取字段简码;
步骤D4:从第七基表中获取执行校验的数据库函数的函数名和函数参数个数;
步骤D5:从第三基表中获取所述基表名对应字段是否为必填字段以及字段的増删改属性。
根据本发明的另一种优选实施方式,所述步骤E具体包括:根据步骤D中得到的函数的名称和函数参数拼接得到可执行的函数语句;执行所述函数语句并返回执行结果;根据所述执行结果判断函数是否出现错误,如果出现错误,则从第八基表中获取报错信息,并提示用户。
根据本发明的另一种优选实施方式,所述步骤G具体包括:根据基表名称、基表字段以及步骤E中校验后的数据拼接得到可执行的DML语句;执行所述DML语句并返回执行结果。
下面将更详细的描述本发明。
本发明首先包括基础数据的准备,即需要在Oracle Forms信息系统数据库中创建基表,所述基表至少包括第一基表至第八基表,下面对本发明中使用的第一基表至第八基表进行详细说明。
第一基表用于记录权限代码与Form代码的对应关系以及权限代码对Form中数据的増删改属性。如表1所示,表1为第一基表的字段设置以及字段说明。
表1
字段设置 |
字段说明 |
Security_code |
权限代码 |
Security_item |
Form代码 |
Insert_access |
是否有插入数据的权限 |
Update_access |
是否有更新数据的权限 |
Delete_access |
是否有删除数据的权限 |
第二基表用于记录用户与权限代码的对应关系。如表2所示,表2为第二基表的字段设置以及字段说明。
表2
字段设置 |
字段说明 |
Security_code |
权限代码 |
User_name |
用户名 |
第三基表用于记录基表与基表字段的对应关系以及基表字段的増删改属性。如表3所示,表3为第三基表的字段设置以及字段说明。
表3
字段设置 |
字段说明 |
item_table |
基表名 |
item_name |
字段名 |
item_request |
是否为必填字段 |
item_insert |
字段是否可插入 |
item_updateable |
字段是否可修改 |
item_update_null |
当字段为空时是否可修改 |
第四基表用于记录基表字段的值列表及代码输入的规则。如表4所示,表4为第四基表的字段设置以及字段说明。
表4
字段设置 |
字段说明 |
item_table |
基表名 |
item_name |
字段名 |
item_code |
字段简码,即字段值列表的取值来源 |
第五基表用于记录对基表字段或整条数据库记录进行校验时使用的数据库函数及执行校验的顺序。如表5所示,表5为第五基表的字段设置以及字段说明。
表5
第六基表用于记录Form的基表信息。如表6所示,表6为第六基表的字段设置以及字段说明。
表6
字段设置 |
字段说明 |
Meta_data_table |
元基表 |
prog_code |
Form编号 |
Base_table |
基表名 |
第七基表用于记录执行校验的所有数据库函数。如表7所示,表7为第七基表的字段设置以及字段说明。
表7
字段设置 |
字段说明 |
item_preodedure |
函数名 |
Passed_count |
参数个数 |
第八基表用于定义Oracle Forms信息系统的报错信息。如表8所示,表8为第八基表的字段设置以及字段说明。
表8
字段设置 |
字段说明 |
Message_code |
报错信息代码 |
Message_type |
报错类型 |
Message_text |
报错信息描述 |
从以上技术方案可以看出,本发明具有以下优点:
(1)本发明提供了一种对Oracle Forms信息系统的业务逻辑进行复用的软件接口,通过该软件接口,可以方便的将Oracle Forms信息系统的业务逻辑复用到其他UI;(2)用于复用的Oracle Forms信息系统的业务逻辑的开发流程、规范等不受影响,可保证Oracle Forms信息系统的业务逻辑的开发的持续性和稳定性;(3)可实现对Excel、XML等多种数据文件进行校验,因此本发明具有较强的适应性。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图,对本发明的具体实施方式进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例,也不是对本发明的限制。基于本发明的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1为本发明实施例提供的Oracle Forms信息系统业务逻辑的复用方法的流程图,如图1所示,该方法包括步骤101至步骤107,下面将分别对每个步骤进行详细说明。
步骤101:在Oracle Forms信息系统数据库中创建基表。
步骤101是为了准备数据库基础数据,主要通过创建第一基表至第八基表来完成数据准备,其中第一基表至第八基表的详细内容已经在发明内容中描述,这里不再赘述。完成基础数据准备之后,开始本发明实施例的具体业务逻辑复用方法的执行。
步骤102:判断权限验证是否通过,验证通过则执行步骤104;反之则退出流程。
步骤102根据用户提供的参数信息进行权限验证,需要说明,用户提供的参数信息包括用户名、密码和Form编号。具体地,步骤102首先验证用户提供的用户名和密码是否能够通过用户登陆验证,如果验证不通过则退出流程;反之则根据第一基表和第二基表信息验证用户是否有Form操作权限,如果有操作权限则转入步骤103,反之则退出流程。可以看出,通过步骤102增加了整个实施例流程的安全性。
步骤103:获取待校验数据并进行封装。
步骤103从用户提供的数据文件获取待校验数据,需要说明,用户提供的数据文件包括程序编号、基表字段、基表描述字段及待校验数据,待校验数据的格式可以为Excel格式数据、XML格式数据等等。具体地,步骤103包括如下步骤:创建DataService对象实例;通过DataService读取并封装待校验数据;从用户提供的数据文件中获取程序编号、基表字段、基表描述字段及待校验数据;将待校验数据与基表字段保存在一个Map对象里。另外需要说明,这里的DataService是一个数据服务平台,它具有ETL的功能,能够按照统一的规则集成并提高数据的质量,通过图形化工具快速灵活地设计与部署实现数据的抽取、转换、加载等功能。
步骤104:查询校验函数。
具体地,步骤104包括如下步骤:从第六基表中获取基表名(Base_table)和元基表(Meta_data_table);根据从第六基表中得到的基表名(Base_table),从第五基表中获取该基表中的各个字段以及对字段进行校验的函数名(item_preodedure)、函数参数(passed_items)、函数返回参数(into_item)、函数执行顺序号(val_seq)以及报错类型(message_level);根据从第六基表中得到的基表名(Base_table),从第四基表中获取该基表下各字段(item_name)对应的字段简码(item_code);根据第五基表中的函数名(item_preodedure),从第七基表中获取该函数的参数个数(passed_count);根据从第六基表中得到的基表名(Base_table),从第三基表中获取该基表名(item_name)对应字段是否必填(item_request)以及是否可插入(item_insert)。
步骤105:构造校验函数对步骤103中封装的待校验数据进行校验。
具体地,步骤105包括以下步骤:根据步骤104中查询到的函数的名称和函数参数拼接得到可执行的函数语句;执行该可执行函数语句并返回执行结果;根据所述执行结果判断函数是否出现错误,如果出现错误,则从第八基表中获取报错信息,并提示用户。
步骤106:根据第三基表中的数据判断用户提供的数据文件中的必填字段是否为空,如果必填字段不为空,则执行步骤107;反之则向用户反馈错误信息并退出流程。
具体地,步骤106通过第三基表中关于必填字段的信息(item_request)来判断用户提供的数据文件中的必填字段是否为空,如果用户提供的数据文件中的所有必填字段都不为空,则执行步骤107;如果用户提供的数据文件中存在必填字段为空的情况,则向用户反馈错误信息并退出流程。
步骤107:更新Oracle Forms信息系统的数据库中的数据。
具体地,步骤107包括以下步骤:根据步骤104中查询到基表名称、基表字段与步骤105中校验后的数据拼接得到可执行的DML语句;执行DML语句并返回执行结果。
以上实施例提供了一种对Oracle Forms信息系统的业务逻辑进行复用的软件接口,通过该实施例提供的软件接口,可以方便的将Oracle Forms信息系统的业务逻辑复用到其他UI,而且通过对不同格式的数据(例如Excel格式数据、XML格式数据等等)的支持,本实施例也具有较好的适应性,同时,本实施例的执行不影响用于复用的Oracle Forms信息系统的业务逻辑的开发流程、规范等,因此可保证Oracle Forms信息系统的业务逻辑开发的持续性和稳定性。