技术领域
本发明涉及计算机技术领域,具体地说是一种实用性强、基于Oracle数据库客户端的业务自动处理方法。
背景技术:
在实现预约挂号的移动应用中,由于医院业务系统处理缺失自动取消预约功能,经常需要在移动终端的APP端进行处理,通常一般由APP端通过串联方式经过多个前置服务与医院业务系统进行数据交互,一般均有APP端发起请求,业务服务器返回后交易结束,但因为APP为手机端,由于环境安全等因素,不可能在APP端发起定时的自动业务操作,一项简单的定时服务如果单独开辟前置服务器未免浪费,对此,需基于串联的某个服务器,通过简单的开发完成定时业务的处理操作。基于此,现提供一种基于Oracle数据库客户端的业务自动处理方法。
技术实现要素:
本发明的技术任务是针对以上不足之处,提供一种实用性强、基于Oracle数据库客户端的业务自动处理方法。
一种基于Oracle数据库客户端的业务自动处理方法,包括设置在移动终端的APP,与APP网络连接的APP前置服务模块,APP与APP前置之间通过Json报文进行传输,APP前置进行报文转换、安全处理;APP前置后端为中间业务前置服务器,负责业务分发、账务处理服务器,同时部署了系统平台的Oracle数据库,中间业务前置服务器与医院业务服务器前置相连,通过Socket报文进行通讯;医院业务服务器前置连接业务系统,通过Oracle工具包UTL_TCP,以Socket报文方式进行业务交互,完成访问系统平台的Oracle数据库。
在移动终端的APP上,每10钟从系统平台的Oracle数据库查询20分钟内已预约的记录,根据订单号查询当前订单状态,如果是预约成功,则发起对此订单的取消预约。
在中间业务前置服务器的oracle数据库中,通过sql语句建立定时任务,建立定时任务执行的存储过程及执行Socket发送报文函数,添加可执行Oracle工具包中UTL_TCP包、UTL_FILE包的权限,启动定时服务即可。
基于上述oracle数据库,医院业务系统处理缺失自动取消预约功能的详细步骤处理如下:
l)启动服务,执行定时任务,定时任务每10分钟执行一次;
2)任务每次执行查询20分钟内产生的预约记录,即从数据库中进行查询,把上次未成功的预约重复执行一次;
3)对查询出来的每条预约记录进行遍历,查询预约记录状态,通过Oracle工具包UTL_TCP,执行Socket报文交互;
4)根据预约记录的订单状态,如果是预约成功状态,通过Oracle工具包UTL_TCP,执行Socket报文交互,取消预约订单,完成此记录处理,如此循环;
5)通过Oracle工具包UTL_FILE,存储日志记录。
本发明的一种基于Oracle数据库客户端的业务自动处理方法,具有以下优点:
该发明的一种基于Oracle数据库客户端的业务自动处理方法,通过串联现有技术中的中间业务前置服务器,通过简单的开发完成定时业务的处理操作,避免了需要单独开辟前置服务器造成的浪费,实用性强,适用范围广泛,易于推广。
附图说明
附图1为本发明的实现示意图。
附图2为本发明的实现逻辑图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步说明。
如附图1、图2所示,本发明提供一种基于Oracle数据库客户端的业务自动处理方法,包括设置在移动终端的APP,与APP网络连接的APP前置服务模块,APP与APP前置之间通过Json报文进行传输,APP前置进行报文转换、安全处理,不适合在此开发部署业务自动处理业务;APP前置后端为中间业务前置服务器,负责业务分发、账务处理服务器,同时部署了系统平台的Oracle数据库,中间业务前置服务器与医院业务服务器前置相连,通过Socket报文进行通讯;业务服务器前置连接业务系统,由于业务系统为第三方开发,只能通过报文方式进行业务交互。
根据以上情况,了解到可以通过oracle的UTL包与业务系统进行交互,并且需要访问平台数据库,此种部署方式既合理又简单。
根据业务需求,在移动终端的APP上,需每10钟从本地数据库查询20分钟内已预约的记录,根据订单在中间业务前置oracle数据库服务器上,通过sql语句建立定时任务,建立定时任务执行的存储过程及执行Socket发送报文函数 ,添加可执行UTL_TCP、UTL_FILE的权限,启动定时服务即可。
Oracle的UTL_TCP包提供了一种额外的方法来主动与应用程序来进行通信。UTL_FILE包可以用来读写操作系统上的文本文件,UTL_FILE提供了在客户端(FORM等等)和服务器端的文件访问功能。
号查询当前订单状态,如果是预约成功,则发起对此订单的取消预约。
具体逻辑图如1所示,详细步骤处理如下:
(l)启动服务,执行定时任务,定时任务每10分钟执行一次。
(2)任务每次执行查询20分钟内产生的预约记录(从本地数据库中进行查询),相当于把上次未成功的又重复执行一次,保证服务的可靠性。
(3)对查询出来的每条预约记录进行遍历,查询预约记录状态,通过Oracle工具包UTL_TCP,执行Socket报文交互。
(4)根据预约记录的订单状态(1:预约成功,2:取消预约,3:号源过期,4:已取号,5:已退号,8:停诊),如果是预约成功状态,取消预约订单(,通过Oracle工具包UTL_TCP,执行Socket报文交互。)。完成此记录处理,如此循环。
(5)通过Oracle工具包UTL_FILE,存储日志记录。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于Oracle数据库客户端的业务自动处理方法的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。