@xuduochoua
2015-12-23T03:27:11.000000Z
字数 6075
阅读 1511
国元 自动化
1打来流程
2子操作:成对出现,亦为打开子操作页面,提交子操作
3提交附件 :类似子操作:打开提交附件页面,提交附件
3提交流程
<base><crawl><id>1</id><name>自动提交APP审核流程</name><baseUrl>http://oa.gyzq.com.cn:8082</baseUrl><!-- 打开流程 --><openProcess><id>1</id><name>打开APP审核流程</name><url>/OperateProcessor?operate=StartWork&Table=vLYR_APPSP&ID=32&WindowType=1&extWindow=true&PopupWin=true</url><method>GET</method><userCookie>1</userCookie><!-- 消息头 可添加多个 --><headers></headers><!-- 请求参数如果是正则,一定加上() 使用正则工具类获取第一个group,此时的regexFrom表示来自流程的第一个页面(first)还是上一个(before)打开的页面;也可以是动态传入的参数 形式如${key}, 则会在传入参数的map中查找key对应的值 --><params><!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 --><dynamicParams></dynamicParams><!-- 常量参数 key=value 用:分割 --><constantParams></constantParams></params><!-- 从返回页面中判断是否成功 --><success>提交的null流程</success><!-- 返回的结果 --><back></back></openProcess><!-- 流程的子操作 可为多个 需要成对出现 subOperation--><subOperations><subOperation><openSub><id>1</id><name>打开加班明细</name><url>/WorkProcessor?Table=wfGYMS_JBSQ&StepID=initialStep&Column=JBXXXX&SubmitForm=DATA_FORM&EVENT_SOURCE=AddHypotObj&extWindow=true&PopupWin=true</url><method>GET</method><userCookie>1</userCookie><headers><no-cache>true</no-cache></headers><params><!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 --><dynamicParams><Token regexFrom="first">Token=(.*?)&</Token><WorkID regexFrom="first">&WorkID=(\d+?)&</WorkID></dynamicParams><!-- 常量参数 key=value 用:分割 --><constantParams></constantParams></params><success></success><back></back></openSub><submitSub><id>1</id><name>提交加班明细</name><url>http://oa.gyzq.com.cn:8082/OperateProcessor?operate=WorkAction.5&Table=wfGYMS_JBSQ&StepID=initialStep&isSubmit=1&operate=Add</url><method>POST</method><userCookie>1</userCookie><!-- 消息头 可添加多个 --><headers><no-cache>true</no-cache><Referer>http://www.sougou.com</Referer></headers><!-- 请求参数如果是正则,一定加上() 使用正则工具类获取第一个group --><params><!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 形式如${key}, 则会在传入参数的map中查找key对应的值--><dynamicParams><OperateID regexFrom="before">;OperateID=(.*?)&</OperateID><Token regexFrom="first">Token=(.*?)&</Token><WorkID regexFrom="first">&WorkID=(\d+?)&</WorkID><KSSJ>${KSSJ}</KSSJ><JSSJ>${JSSJ}</JSSJ></dynamicParams><!-- 常量参数 key=value 用:分割 --><constantParams>XM=60:$C{XM}=0:BM=盐城解放南路证券营业部:JBSJ=2.0:TXHBZ=0</constantParams></params><success>执行新增成功</success><back></back></submitSub></subOperation></subOperations><!-- 提交附件的通用操作 --><subAttachment><openSub><id>1</id><name>打开提交附件</name><url>/WorkProcessor?Table=WF_APPSP&StepID=initialStep&Column=FJ&SubmitForm=DATA_FORM&EVENT_SOURCE=AddHypotObj&extWindow=true&PopupWin=true</url><method>GET</method><userCookie>1</userCookie><headers><no-cache>true</no-cache></headers><params><!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 --><dynamicParams><Token regexFrom="first">Token=(.*?)&</Token><WorkID regexFrom="first">&WorkID=(\d+?)&</WorkID></dynamicParams><!-- 常量参数 key=value 用:分割 --><constantParams></constantParams></params><success></success><back></back></openSub><submitSub><id>2</id><name>提交附件</name><url><form action=\"(.*?)\" method=\"post\"</url><method>POST</method><userCookie>1</userCookie><!-- 消息头 可添加多个 --><headers><no-cache>true</no-cache></headers><!-- 请求参数如果是正则,一定加上() 使用正则工具类获取第一个group --><params><!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 形式如${key}, 则会在传入参数的map中查找key对应的值--><dynamicParams><FJMC>${FJMC}</FJMC><FJ>${FJ}</FJ><BZ>${BZ}</BZ><LJDZ>${LJDZ}</LJDZ><!-- 链接地址 --></dynamicParams><!-- 常量参数 key=value 用:分割 --><constantParams>operate=Add:$C{FJMC}=1:$C{FJ}=9:$C{BZ}=1:$C{MC}=1:$C{LJDZ}=1</constantParams></params><success>执行新增成功</success><back></back></submitSub></subAttachment><!-- 提交流程 --><submitProcess><id>1</id><name>提交APP审核流程流程</name><!-- <url>http://oa.gyzq.com.cn:8082/OperateProcessor?operate=WorkAction.5&Table=WF_APPSP&isSubmit=1</url> --><!-- 提交 --><url>/OperateProcessor?operate=WorkSave&Table=WF_APPSP&isSubmit=1</url><!-- 保存 --><method>get</method><userCookie>1</userCookie><!-- 消息头 可添加多个 --><headers><no-cache>true</no-cache></headers><!-- 请求参数如果是正则,一定加上() 使用正则工具类获取第一个group --><params><!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 --><dynamicParams><Token regexFrom="first">Token=(.*?)&</Token><WorkID regexFrom="first">&WorkID=(\d+?)&</WorkID><StepID>initialStep</StepID> --><WorkActionID regexFrom="first">&WorkActionID=(\d+?)&</WorkActionID><SQR regexFrom="first">name=\"SQR\".*?value=\"(\d*?)\".*?></SQR><SQRBM regexFrom="first">name=\"SQRBM\".*?value=\"(\d*?)\".*?></SQRBM><LCNR>${LCNR}</LCNR><!-- 流程内容 --><LCLX>${LCLX}</LCLX><!-- 流程类型 --></dynamicParams><!-- 常量参数 key=value 用:分割 --><constantParams>$C{LCBT}=0:$C{JBXXXX}=12:$C{JBNR}=7:$C{FJ}=12:$C{SPYJ}=0:$C{CSR}=25:$C{SQR}=0:$C{SQRBM}=0:$C{SQSJ}=0:$C{LCLX}=0</constantParams></params><!-- <success>执行提交成功</success> --><success>执行保存成功</success><back>提交的.*?流程\[(\d*?)\]</back></submitProcess></crawl></base>
base标签中base标签下包含的crawl即为一个完整的提交流程一个crawl 包含以下元素:
id:当前流程的id, 外部使用配置的时候会根据id获得此id对应的流程
name: 该流程的名称
baseUrl:当前流程的base地址
openProcess:此标签下的配置为打开一个流程的配置
subOperations:此标签下的为流程的子操作,每个子操作subOperation下包含打开页面openSub,提交页面submitSub
subAttachment:此标签下的配置为提交附件的通用操作,其下包含打开页面openSub,提交操作submitSub
submitProcess:此标签下的配置为提交一个流程的配置
无论是打开页面还是提交页面在本配置中通通视为一次网络请求,因此无论是openProcess、openSub、submitSub下面都包含相同的配置:
id :此网络操作的id,无实际意义
name: 当前操作的名称,方便日志
url:当前操作的url,如果非htt开头则 追加baseUrl,因为提交表单的url可能来自页面的action,因此若此标签内为正则,则从上一个页面中提取Url,同时判断是否追加baseUrl
method:当前请求为GET还是POST,可配置为GET或者POST
userCookie:当前请求是否使用cookie,1为使用,因当前流程全部需要使用,故此配置暂时未使用
headers:当前请求的头消息,可配置多个,此标签下的子标签的标签名即为头消息的key,子标签的标签值即为头消息的value
params:请求的参数,分静态参数constantParams和动态参数dynamicParams
静态参数(常量参数)constantParams:形如:key1=value1:key2=value2....,以英文冒号分割多组参数
动态参数dynamicParams:动态参数可能来自页面和动态传入的参数;
dynamicParams下的每个标签名即为一个参数名,
来自页面:如果标签为内的为一个正则一定加上()使用正则工具类获取第一个group,
标签属性regexFrom的值可为first表示来自打开流程页面,如果为before,则表示来自当前页面前一个页面。
动态传入:如果标签内的内容形式如${key}, 则会在传入参数的map中查找key对应的值
eg:<Token regexFrom="first">Token=(.*?)&</Token><LCNR>${LCNR}</LCNR>
success:表示当前页面如果执行成功则页面中应该包含的字符串
back: 当前页面操作成功应返回的值,多为正则表达式,如不配置,则返回整个页面
更新时间 2015年12月23日
更新作者 VIC