一种基于RPA机器人的报文解析方法与流程

文档序号:32405086发布日期:2022-12-02 20:18阅读:142来源:国知局
一种基于RPA机器人的报文解析方法与流程
一种基于rpa机器人的报文解析方法
技术领域
1.本发明涉及rpa技术领域,具体涉及一种基于rpa机器人的报文解析方法。


背景技术:

2.http请求在网页自动化中为高频使用指令,一般需要填写方法、url、协议头以及协议体信息,一般相关的信息都是从浏览器、fiddler、postman中复制,对于熟练使用相关工具的用户来说,反复的复制会增加工作的繁琐程度,对于一些相关知识不了解的用户,需要准确的在一堆信息中,整理清楚url、协议头以及协议体等相关的含义,用户使用门槛会提高。
3.rpa的全称为机器人流程自动化(robotic process automation),主要的功能就是将工作信息与业务交互通过机器人来按照自先设计的流程去执行。市面上相关rpa厂商一般都支持http下载的功能,但一般都需要用户自己手动来区分url、协议头以及协议体信息并进行填写,在降低使用门槛和用户体验上做的不够友好。


技术实现要素:

4.本发明的目的在于,提供一种基于rpa机器人的报文解析方法。本发明可以对报文消息进行自动解析,方便用户使用rpa机器人,提高了用户体验。
5.本发明提供的技术方案如下:一种基于rpa机器人的报文解析方法,包括如下步骤:
6.步骤1、获取报文消息,将报文消息录入至rpa机器人中;
7.步骤2、利用rpa机器人判断报文消息中的字符串是否包含curl,若包含则调用curl类的静态方法解析;若不包含则调用http消息协议类的静态方法解析;
8.步骤3、将解析结果返回rpa机器人界面显示。
9.上述的基于rpa机器人的报文解析方法,步骤2中,调用curl类的静态方法解析报文消息,按以下步骤进行:
10.步骤2.a、通过正则表达式匹配报文消息中的关键字,获取关键字数组;
11.步骤2.b、遍历关键字数组,解析每个关键字;
12.步骤2.c、将解析结果组装到报文消息对象中,得到报文消息对象的字段信息。
13.前述的基于rpa机器人的报文解析方法,步骤a中,利用正则表达式循环匹配到的所有匹配项,当前循环匹配项的第六项如果不是空,则关键字格式解析失败,字符串缺少引号,提示检查格式;若为空则依次将解析的匹配项的第三、四、五项拼接在一起添加到关键字数组中,最后返回关键字数组。
14.前述的基于rpa机器人的报文解析方法,步骤b中,关键字的解析规则如下:
15.(1)关键词为:-a、
‑‑
user-agent,解析为user-agent;
16.(2)关键词为:-h、
‑‑
header,解析为header;
17.(3)关键词为:-d、
‑‑
date、
‑‑
data-ascii、
‑‑
data-raw和
‑‑
data-binart,解析为
data;
18.(4)关键词为:-i、
‑‑
head,解析为head;
19.(5)关键词为:-b、
‑‑
cookiet,解析为cookie;
20.(6)关键词为:-x、
‑‑
request,解析为method;
21.(7)使用正则表达式匹配关键字中的url地址,若匹配成功,解析为url字段。
22.前述的基于rpa机器人的报文解析方法,其特征在于:步骤c中,将解析结果组装到报文消息对象中是:
23.当解析结果为user-agent时,将结果添加到报文消息对象的header字典中,索引为user-agent,值为对应的关键字;
24.当解析结果为方法时,将结果解析到报文消息对象的方法字段中;
25.当解析结果为cookie时,将结果添加到报文消息对象的header字典中,索引为set-cookie,值为对应的关键字;
26.当解析结果为data,将解析结果拼接到报文消息对象的主体字段;
27.当解析结果为head时,使用正则表达式继续匹配,提取出索引和值,再将结果添加到报文消息对象的header字典中。
28.前述的基于rpa机器人的报文解析方法,步骤2中,调用http消息协议类的静态方法解析,按以下步骤进行:
29.步骤2.1、使用正则表达式匹配报文消息中输入数据的所有行;
30.步骤2.2、解析第一个非空行数据,如果解析的结果大于等于2,则依次解析出报文消息对象的方法字段和url字段,再将行数加1;
31.步骤2.3、解析完第一行后,再次遇到空行时,则表示header部分解析结束,提取出索引和值,再将对应的索引和值添加到报文消息对象的header字典中;
32.步骤2.4、将剩余部分的行追加到报文消息对象的主体字段。
33.前述的基于rpa机器人的报文解析方法,若rpa机器人自动化运行解析任务失败或运行取消,则进行异常类错误处理。
34.前述的基于rpa机器人的报文解析方法,所述异常类错误处理包括如下步骤:
35.步骤1、设置消息处理模块,用于触发全局错误处理;
36.步骤2、设置全局任务队列,存储待执行rpa应用的任务信息;
37.步骤3、设置监听线程,监听线程监听全局任务队列;
38.步骤4、在某个rpa应用运行结果为异常退出时,监听线程监听回传的任务状态,开启异常处理通知;
39.步骤5、调用服务端接口,获取步骤4中开启的异常处理通知,构成全局错误列表;
40.步骤6、消息处理模块根据全局错误列表依次触发全局错误处理。
41.前述的基于rpa机器人的报文解析方法,所述消息处理模块为邮件处理通知模块、即时通讯软件消息通知模块和/或指定应用执行模块。
42.前述的基于rpa机器人的报文解析方法,所述邮件处理通知模块使用第三方库mailkit的smtpclient创建smtp连接,通过用户设置的登陆和授权码相关信息,连接并通过send方法发送异常处理通知信息到指定邮箱;
43.所述即时通讯软件消息通知模块将需要发送的异常处理通知消息组装成平台需
要的json格式,通过restsharp库创建一个http请求对象,将用户设置的webhook地址和密钥传入,调用excute方法采用post的方式发送到对应通讯软件的服务端,服务端将收到的信息再转发到用户设置的即时通讯软件的客户端;
44.所述指定应用执行模块在触发全局错误处理时,选择执行指定的rpa应用。
45.与现有技术相比,本发明可以利用rpa机器人判断报文消息中的字符串是否包含curl,若包含则调用curl类的静态方法解析;若不包含则调用http消息协议类的静态方法解析,再将解析结果返回rpa机器人界面显示,从而可以实现对报文消息的自动解析,省去了大量的复制粘贴步骤,减少了在复制粘贴过程中出错的概率。本发明化繁为简,一键识别,对于新手小白用户,在使用的时候无需过多关心字段的含义,按照操作步骤将相关的文本粘贴即可,降低使用门槛,方便用户使用rpa机器人,提高了用户体验,对用户更加的友好。此外,本发明将rpa机器人自动化运行解析任务结果的异常处理通知填充到全局错误列表中,然后设置消息处理模块,消息处理模块根据全局错误列表依次触发全局错误处理,以此本发明的全局错误处理,不需要针对每个应用都设置一遍异常处理步骤,降低了开发和维护的成本;本发明可以支持多种形式和多种软件的触发,能够满足大部分的办公应用场景,让用户能随时随地的了解rpa应用是否异常,且能及时处理。本发明还可以通过执行指定rpa应用,可以对执行的出错应用做一些数据回滚或者报警类的处理,在处理方式上更加的灵活和高效。
附图说明
46.图1是本发明的流程示意图;
47.图2是调用curl类的静态方法解析报文消息的流程示意图;
48.图3是调用http消息协议类的静态方法解析报文消息的流程示意图。
49.图4是实施例2的流程示意图;
50.图5是邮件处理通知模块设置示意图;
51.图6是即时通讯软件消息通知模块设置示意图;
52.图7是指定应用执行模块设置示意图。
具体实施方式
53.下面结合实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
54.实施例:一种rpa机器人运行的屏幕画面录制方法,包括rpa机器人,该rpa机器人为影刀机器人,可通过网页下载安装,所述rpa机器人由指令集,流程设计器,结果调试器,流程管理器,全局变量管理器以及工具栏组成。
55.指令集:用于存放管理rpa指令,用户可以选择需要的指令通过双击或者拖拽的方式添加到流程设计器,进行自由设计。
56.流程设计器:为用户提供可视化rpa流程编辑平台。
57.结果调试器:用于显示程序错误信息,日志信息以及其他调试数据。
58.流程管理器:管理rpa流程以及python脚本等流程文件。
59.全局变量管理器:管理全局变量。
60.工具栏:包含了流程编排、调试功能和智能录制等功能。
61.本实施例中,通过rpa机器人进行报文解析,其步骤如下:
62.步骤1、获取报文消息,将报文消息录入至rpa机器人中;所述报文消息包括curl报文消息和http报文消息两种格式,报文消息可以通过工具fiddle、chrome浏览器、postman等获得。
63.若从chrome浏览器导出,其步骤是:
64.第一步:打开chrome调试工具;
65.第二步:刷新或操作页面,让目标请求触发;
66.第三步:在network中,找到相应的请求,右键,选择"copy as curl(bash)",拷贝消息到剪切板中;
67.若从fiddler中导出,其步骤是:
68.第一步:打开fiddler,清空列表使目标请求更容易找到;
69.第二步:执行能够触发目标请求的动作,如打开网页或操作桌面软件;
70.第三步:在fiddler的结果列表中,找到相应的请求,双击,找到报文,拷贝即可;
71.若从postman中导出,其步骤是:
72.第一步:打开postman,手工输入各项参数,运行通过后
73.第二步:点击"code",选中"http",拷贝即可。
74.步骤2、利用rpa机器人判断报文消息中的字符串是否包含curl,若包含则调用curl类的静态方法解析;若不包含则调用http消息协议类的静态方法解析;以http报文消息的解析进行进一步地说明。
75.内部类httpmessage(http报文消息)的method(方法)、url(网址)、body(主体)三个字段为字符串类型,headers(标题)字段为字典类型,最终会将识别结果返回一个httpmessage(http报文消息)对象并渲染到rpa机器人的界面。
76.用户输入待解析的报文信息,根据输入的信息是否包含“curl”(curl是一个利用url语法在命令行下工作的文件传输工具)分成两种解析方案:
77.若报文消息中的字符串包含curl,若包含则调用curl类的静态方法解析,如图2所示:
78.步骤2.a、通过正则表达式(\\s*(?:([^\\s\\\"']+)|'((?:[^\\']|\\.)*)'|\"((?:[^\\\"]|\\.)*)\"|(\\.?)|(\\s))(\\s|$)?)匹配报文消息中的关键字,获取关键字数组;匹配是,当前循环匹配项的第六项如果不是空,则关键字格式解析失败,字符串缺少引号,提示检查格式;若为空则依次将解析的匹配项的第三、四、五项拼接在一起添加到关键字数组中,最后返回关键字数组。
[0079]
步骤2.b、遍历关键字数组,解析每个关键字;关键字的解析规则如下:
[0080]
(1)关键词为:-a、
‑‑
user-agent,解析为user-agent(用户代理);
[0081]
(2)关键词为:-h、
‑‑
header,解析为header(头部);
[0082]
(3)关键词为:-d、
‑‑
date、
‑‑
data-ascii、
‑‑
data-raw和
‑‑
data-binart,解析为data(数据);
[0083]
(4)关键词为:-i、
‑‑
head,解析为head(头部);
[0084]
(5)关键词为:-b、
‑‑
cookiet,解析为cookie;
[0085]
(6)关键词为:-x、
‑‑
request,解析为method(方法);
[0086]
(7)使用正则表达式(http(?:s)?://)匹配关键字中的url地址,若匹配成功,解析为url字段。
[0087]
步骤2.c、将解析结果组装到报文消息对象中,得到报文消息对象的字段信息。
[0088]
本实施例中,当解析结果为user-agent(user-agent)时,将结果添加到报文消息(httpmessage)对象的header字典中,索引(key)为user-agent(user-agent),值为对应的关键字;
[0089]
当解析结果为方法(method)时,将结果解析到报文消息(httpmessage)对象的方法(method)字段中;
[0090]
当解析结果为cookie时,将结果添加到报文消息(httpmessage)对象的header字典中,索引(key)为set-cookie,值为对应的关键字;
[0091]
当解析结果为data,将解析结果拼接到报文消息(httpmessage)对象的主体(body)字段;
[0092]
当解析结果为head时,使用正则表达式(\s*([^\s]+)\s*:\s*(.+))继续匹配,提取出索引(key)和值(value),再将结果添加到报文消息(httpmessage)对象的headers字典中。
[0093]
通过上述三步构建好报文消息(httpmessage)对象的字段信息返回到rpa机器人界面上并渲染。
[0094]
若报文消息中的字符串不包含curl,调用http消息协议(httpmessageprotocol)类的静态方法解析,如图3所示:
[0095]
步骤2.1、使用正则表达式((.*?)\r?\n)匹配报文消息中输入data的所有行;
[0096]
步骤2.2、解析第一个非空行数据,使用表达式((.+?)\s+)解析,如果解析的结果大于等于2,则依次解析出报文消息(httpmessage)对象的方法(method)字段和网址(url)字段,再将行数加1;
[0097]
步骤2.3、解析完第一行后,再次遇到空行时,则表示header部分解析结束,接下来的行为header相关部分,使用表达式\s*([^\s]+)\s*:\s*(.+)继续解析header相关部分,提取出索引(key)和值(value),再将对应的索引(key)和值(value)添加到报文消息(httpmessage)对象的header字典中;
[0098]
步骤2.4、当header部分和header相关部分解结束,剩下的部分为body(主体)行,将剩余部分的行追加到报文消息(httpmessage)对象的主体(body)字段。
[0099]
通过上述四步会构建好httpmessage对象的字段信息返回到rpa机器人界面上并渲染。
[0100]
综上,本发明可以利用rpa机器人判断报文消息中的字符串是否包含curl,若包含则调用curl类的静态方法解析;若不包含则调用http消息协议类的静态方法解析,再将解析结果返回rpa机器人界面显示,从而可以实现对报文消息的自动解析,省去了大量的复制粘贴步骤,减少了在复制粘贴过程中出错的概率。本发明化繁为简,一键识别,对于新手小白用户,在使用的时候无需过多关心字段的含义,按照操作步骤将相关的文本粘贴即可,降低使用门槛,方便用户使用rpa机器人,提高了用户体验,对用户更加的友好。
[0101]
实施例2:本实施例在实施例1的基础上,若rpa机器人自动化运行解析任务失败或运行取消,则进行异常类错误处理,如图4所示,包括如下步骤:
[0102]
步骤1、设置消息处理模块,用于触发全局错误处理;
[0103]
所述消息处理模块为邮件处理通知模块、即时通讯软件消息通知模块和/或指定应用执行模块。
[0104]
如图5所示,所述邮件处理通知模块在触发全局错误处理时,将异常处理通知进行发送至指定邮箱,设置多个接收邮件的账户,用户可配置由影刀rpa机器人发送,也可自定义邮箱发送。
[0105]
如图6所示,所述即时通讯软件消息通知模块在触发全局错误处理时,将异常处理通知进行发送至相关的告警通知群。本实施例支持主流的办公通讯软件,包括钉钉、飞书、企业微信,可在各类软件的pc客户端获取webhook地址,获取该地址之后,即可向相关的告警通知群自动推送消息。
[0106]
如图7所示,所述指定应用执行模块在触发全局错误处理时,选择执行指定的rpa应用,该指定的rpa应用可以对执行的出错应用做一些数据回滚或者报警类的处理,在处理方式上更加的灵活和高效。
[0107]
步骤2、设置全局任务队列,存储待执行rpa应用的任务信息;所述全局任务队列是在rpa机器人的程序封装priorityblockingcollection(优先级阻塞收集)类,内部组合了一个blockingcollection(阻塞集合)类型的线程安全的全局任务队列,激活的rpa应用都会进入到该队列中排队执行。
[0108]
在程序启动之初,会初始化该全局任务队列,全局任务队列里存放任务信息(taskinfo),任务信息包括任务id、任务名称、任务类型(触发器类型)、创建时间、是否排队执行(由于应用运行是单线程模型,即每次只能运行一个应用,所以需要排队执行,当任务不选择排队执行且此时刚好有任务在运行,则会直接将其状态修改为失败,不再执行)等;
[0109]
步骤3、设置监听线程,监听线程监听全局任务队列;
[0110]
步骤4、在某个rpa应用运行结果为异常退出时,监听线程监听回传的任务状态,开启异常处理通知;具体是,监听线程获取任务,通过autoresetevent(自动重置事件)信号量控制,当一个应用运行结束之后,调用continuewith设置好的回调方法,当回传的任务状态isfaulted(有缺陷)是true的时候,会调用handletaskerror(处理错误任务)方法来处理开启的异常处理通知。
[0111]
步骤5、调用服务端接口,获取步骤4中开启的异常处理通知,构成全局错误列表;实施例中,当获取到的信息不为空时,遍历获取到的信息,根据不同的errorhandingkind(错误处理)类型,来添加到类型为ierrorhandingrule(错误处理规则)的列表当中,得到全局错误列表;
[0112]
步骤6、消息处理模块根据全局错误列表依次触发全局错误处理。
[0113]
若是邮箱触发,则使用第三方库mailkit的smtpclient创建smtp连接,通过用户设置的登陆和授权码相关信息,连接并通过send方法发送消息到指定邮箱;
[0114]
若是即时通讯软件触发的方式,则是将需要发送的异常处理通知消息组装成平台需要的json格式,通过restsharp库创建一个http请求对象,将用户设置的webhook地址和密钥传入,调用excute方法采用post的方式发送到对应通讯软件的服务端,服务端将收到的信息再转发到用户设置的即时通讯软件的客户端。
[0115]
若是指定应用执行模块触发,则将rpa应用的任务信息组装后,添加到
blockingcollection全局任务队列中等待排队执行。
[0116]
通过以上方式,本发明将rpa应用运行结果的异常处理通知填充到全局错误列表中,然后设置消息处理模块,消息处理模块根据全局错误列表依次触发全局错误处理,以此本发明的全局错误处理,不需要针对每个应用都设置一遍异常处理步骤,降低了开发和维护的成本;本发明可以支持多种形式和多种软件的触发,能够满足大部分的办公应用场景,让用户能随时随地的了解rpa应用是否异常,且能及时处理。本发明还可以通过执行指定rpa应用,可以对执行的出错应用做一些数据回滚或者报警类的处理,在处理方式上更加的灵活和高效。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1