基于数据注入和事件驱动的自动化控制方法及相关产品与流程
本技术涉及自动化控制,尤其涉及一种基于数据注入和事件驱动的自动化控制方法及相关产品。
背景技术:
1、自动化控制是指在工业场景或业务场景中,通过预先录制或编排的操作序列,自动执行重复性任务的控制方式。随着企业信息化程度的提高,越来越多的业务流程需要依赖自动化技术来完成。
2、现有自动化流程控制通常由rpa(robotic process automation,机器人流程自动化)工具或脚本自动化工具实现。但是,rpa或脚本自动化工具通常只能按照预设的输入数据执行固定流程;当需要接收来自外部设备的实时数据以执行跨设备自动化任务时,如任务执行过程中需基于扫码枪、可编程逻辑控制器(programmable logic controller,plc)、上位机、自动化测试平台等外部设备的实时数据时,rpa或脚本自动化工具难以注入外部数据,通常需要开发专用的应用程序编程接口(即api接口)或使用中间文件进行数据交换,系统耦合度高、开发周期长,而且等待外部数据注入过程通常是采用轮询方式检查数据到达的情况,容易出现系统资源空转的情况导致资源浪费。
技术实现思路
1、本技术提供一种基于数据注入和事件驱动的自动化控制方法及相关产品,以解决现有自动化流程控制方案中外部数据注入困难、等待数据时资源浪费的问题。
2、第一方面,本技术实施例提供了一种基于数据注入和事件驱动的自动化控制方法,包括:
3、通过tcp服务端监听外部客户端的连接请求,并在监听到连接请求时,与请求的目标客户端建立数据传输通道以传输数据;
4、执行预设的自动化流程中的操作步骤,并在执行到与数据注入需求关联的目标步骤时,调用目标步骤关联的目标脚本挂起当前自动化执行线程,使目标脚本进入挂起等待状态,以释放系统资源;
5、当通过tcp服务端接收到来自目标客户端的输入数据时,唤醒处于挂起等待状态的目标脚本,使得唤醒的目标脚本对输入数据进行数据类型识别,以识别出业务数据;
6、退出目标脚本并继续执行后续操作步骤,以依据业务数据对目标应用软件执行对应操作,并通过tcp服务端向目标客户端返回操作结果,实现跨设备的自动化控制。
7、在一实施例中,调用目标步骤关联的目标脚本挂起当前自动化执行线程,使目标脚本进入挂起等待状态,包括:
8、调用目标步骤关联的目标脚本,以通过调用异步事件等待接口的方式,挂起当前自动化执行线程,使目标脚本进入挂起等待状态,并向目标客户端发送就绪状态信号;就绪状态信号用于通知目标客户端发送输入数据。
9、在一实施例中,当通过tcp服务端接收到来自目标客户端的输入数据时,唤醒处于挂起等待状态的目标脚本,使得唤醒的目标脚本对输入数据进行数据类型识别,以识别出业务数据,包括:
10、当通过tcp服务端接收到来自目标客户端的输入数据时,将输入数据写入输入数据共享变量,调用异步事件通知接口唤醒处于挂起等待状态的目标脚本;目标脚本被唤醒后,从输入数据共享变量读取输入数据并进行数据类型识别,以在输入数据被识别为业务数据时,将业务数据存入业务数据共享变量,并在输入数据被识别为控制指令时,根据控制指令执行对应的控制处理逻辑。
11、在一实施例中,目标脚本对输入数据进行数据类型识别的过程,包括:
12、当输入数据的数据头为预设的命令前缀字符时,确定输入数据为控制命令;
13、当输入数据的数据头不为预设的命令前缀字符时,确定输入数据为业务数据。
14、在一实施例中,依据业务数据对目标应用软件执行对应操作,包括:
15、从业务数据共享变量读取业务数据;
16、将业务数据输入至目标应用软件的输入框或表格单元格;或,根据业务数据在目标应用软件中执行查询操作。
17、在一实施例中,控制命令包括退出指令、状态查询指令和测试指令;在输入数据被识别为控制指令时,根据控制指令执行对应的控制处理逻辑,包括:
18、当控制指令为退出指令时,终止自动化流程;
19、当控制指令为状态查询指令或测试指令时,通过tcp发送接口向目标客户端返回对应信息,并继续调用异步事件等待接口等待。
20、在一实施例中,异步事件等待接口基于异步事件对象实现;在调用异步事件等待接口时,清除异步事件对象的事件标志并挂起当前自动化执行线程;
21、在调用异步事件通知接口时,将异步事件对象的事件标志置位并唤醒挂起的目标脚本对应的线程。
22、在一实施例中,tcp服务端支持的消息路由模式包括自动处理模式和自定义处理器模式;将输入数据写入预设的输入数据共享变量之前,该方法还包括:
23、确定tcp服务端当前使用的消息路由模式;
24、当tcp服务端当前使用自动处理模式时,将输入数据写入预设的输入数据共享变量,并调用异步事件通知接口,唤醒处于挂起等待状态的目标脚本进行输入数据处理;
25、当tcp服务端当前使用自定义处理器模式时,通过tcp服务端将输入数据转发至预先配置的消息处理器进行输入数据处理。
26、在一实施例中,tcp服务端支持的数据接收模式包括文本模式和二进制模式;通过tcp服务端接收到来自目标客户端的输入数据,包括:
27、当tcp服务端当前的数据接收模式为文本模式时,将来自目标客户端的字节流按文本编码解码为文本字符串,以得到输入数据;
28、当tcp服务端当前的数据接收模式为二进制模式下,按预设的二进制数据包结构解析来自目标客户端的二进制数据包,以得到输入数据。
29、在一实施例中,执行预设的自动化流程中的操作步骤,包括:
30、加载预存的自动化流程对应的json配置文件,并解析json配置文件中的json对象,每一所json对象对应预设的自动化流程中的一个操作步骤;操作步骤对应的json对象至少包括步骤类型字段、坐标字段、窗口标识字段;
31、根据json对象中的步骤类型字段、坐标字段、窗口标识字段,执行对应的操作步骤,并在读取到json对象中存在目标脚本关联字段时,确定对应的操作步骤为关联有目标脚本的目标步骤。
32、在一实施例中,目标步骤对应的json对象还包括目标脚本的调用时机字段,调用目标步骤关联的目标脚本,包括:
33、根据目标脚本的调用时机字段,确定目标脚本的调用时机,调用时机包括在目标步骤执行之前调用,或在目标步骤执行之后调用;
34、依据调用时机,在执行目标步骤之前或执行目标步骤之后,根据目标脚本关联字段,调用目标步骤关联的目标脚本。
35、在一实施例中,在执行后续操作步骤时,检测当前操作步骤对应json对象中的字段;
36、当检测到当前操作步骤对应的json对象中包括指向目标步骤的跳转目标字段时,在当前操作步骤执行完毕后,根据跳转目标字段跳转回目标步骤,以重新执行目标步骤及对应的目标脚本,进入下一轮等待。
37、在一实施例中,在执行预设的自动化流程中操作步骤的过程中,目标脚本通过上下文变量池复用跨循环的资源实例;资源实例由目标脚本首次创建时存入上下文变量池,并将用于销毁资源实例的清理句柄注册到统一的清理列表;资源实例包括浏览器驱动实例、com对象实例、网络连接实例、数据库连接实例和http会话实例中的一种或多种;
38、在后续执行循环中,目标脚本被唤醒后从上下文变量池获取并复用已存在的资源实例。
39、在一实施例中,在复用已存在的资源实例之前,目标脚本还用于:
40、对资源实例进行健康检查,若健康检查未通过,则销毁资源实例,并创建新的资源实例进行替换。
41、在一实施例中,清理句柄为异步协程函数,注册时通过注册状态标志防止同一资源被重复注册;在预设的自动化流程结束时,由执行器在结束代码块中倒序遍历清理列表,并在独立的异常捕获域中执行各清理句柄;
42、其中,清理句柄关联有超时时间;在执行清理句柄时,若清理句柄的执行时间超过关联的超时时间,则强制终止清理句柄并继续执行下一清理句柄。
43、第二方面,本技术实施例提供了一种基于数据注入和事件驱动的自动化控制系统,包括控制器,该控制器包括:
44、tcp服务端模块,用于监听外部客户端的连接请求,并在监听到连接请求时,与请求的目标客户端建立数据传输通道以传输数据;
45、流程执行引擎模块,用于执行预设的自动化流程中的操作步骤,并在执行到与数据注入需求关联的目标步骤时,调用目标步骤关联的目标脚本挂起当前自动化执行线程,使目标脚本进入挂起等待状态,以释放系统资源;
46、当通过tcp服务端接收到来自目标客户端的输入数据时,唤醒处于挂起等待状态的目标脚本,使得唤醒的目标脚本对输入数据进行数据类型识别,以识别出业务数据;
47、流程执行引擎模块,还用于退出目标脚本并继续执行后续操作步骤,以依据业务数据对目标应用软件执行对应操作,并通过tcp服务端向目标客户端返回操作结果,以实现跨设备的自动化控制。
48、第三方面,本技术实施例提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
49、第四方面,本技术实施例提供了一种可读存储介质,该可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
50、第五方面,本技术实施例提供了一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序在被处理器执行时实现上述方法的步骤。
51、上述基于数据注入和事件驱动的自动化控制方法及相关产品所提供的一个方案中,通过设置tcp服务端监听外部客户端连接请求,并建立目标客户端与自动化控制系统之间的数据传输通道,使外部设备能够主动向自动化流程注入所需数据,实现跨设备的数据交互;同时,在自动化流程执行过程中,当执行至与数据注入需求关联的目标步骤时,调用对应目标脚本挂起当前自动化执行线程以进入挂起等待状态,使自动化执行线程在未接收到输入数据期间暂停执行并释放占用的系统资源,避免循环等待或持续占用线程造成的资源浪费;当接收到目标客户端发送的输入数据后,通过tcp服务端将输入数据传递至目标脚本,并唤醒挂起的目标脚本进行数据处理,以保证外部输入数据能够及时驱动自动化流程继续执行;进而在后续操作步骤中基于目标脚本识别出的业务数据对目标应用软件执行对应控制操作,实现自动化流程与外部设备之间的数据联动,从而提高外部数据注入的便捷性,并减少数据等待过程中的资源占用以降低资源浪费。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com