[关闭]
@xuduochoua 2015-12-23T03:27:11.000000Z 字数 6075 阅读 1511

提交流程配置XML文件说明

国元 自动化


1 说明

  1. 本配置针对代码提交流程到ERP
  2. 默认流程的操作过程为(除去登陆):
    1 打来流程
    2 子操作:成对出现,亦为打开子操作页面,提交子操作
    3 提交附件 :类似子操作:打开提交附件页面,提交附件
    3 提交流程
  3. 相关配置说明详见配置项说明

2 配置文件如下

  1. <base>
  2. <crawl>
  3. <id>1</id>
  4. <name>自动提交APP审核流程</name>
  5. <baseUrl>http://oa.gyzq.com.cn:8082</baseUrl>
  6. <!-- 打开流程 -->
  7. <openProcess>
  8. <id>1</id>
  9. <name>打开APP审核流程</name>
  10. <url>/OperateProcessor?operate=StartWork&amp;Table=vLYR_APPSP&amp;ID=32&amp;WindowType=1&amp;extWindow=true&amp;PopupWin=true</url>
  11. <method>GET</method>
  12. <userCookie>1</userCookie>
  13. <!-- 消息头 可添加多个 -->
  14. <headers>
  15. </headers>
  16. <!-- 请求参数如果是正则,一定加上() 使用正则工具类获取第一个group,此时的regexFrom表示来自流程的第一个页面(first)还是上一个(before)打开的页面;
  17. 也可以是动态传入的参数 形式如${key}, 则会在传入参数的map中查找key对应的值 -->
  18. <params>
  19. <!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 -->
  20. <dynamicParams></dynamicParams>
  21. <!-- 常量参数 key=value 用:分割 -->
  22. <constantParams></constantParams>
  23. </params>
  24. <!-- 从返回页面中判断是否成功 -->
  25. <success>提交的null流程</success>
  26. <!-- 返回的结果 -->
  27. <back></back>
  28. </openProcess>
  29. <!-- 流程的子操作 可为多个 需要成对出现 subOperation-->
  30. <subOperations>
  31. <subOperation>
  32. <openSub>
  33. <id>1</id>
  34. <name>打开加班明细</name>
  35. <url>/WorkProcessor?Table=wfGYMS_JBSQ&amp;StepID=initialStep&amp;Column=JBXXXX&amp;SubmitForm=DATA_FORM&amp;EVENT_SOURCE=AddHypotObj&amp;extWindow=true&amp;PopupWin=true</url>
  36. <method>GET</method>
  37. <userCookie>1</userCookie>
  38. <headers>
  39. <no-cache>true</no-cache>
  40. </headers>
  41. <params>
  42. <!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 -->
  43. <dynamicParams>
  44. <Token regexFrom="first">Token=(.*?)&amp;</Token>
  45. <WorkID regexFrom="first">&amp;WorkID=(\d+?)&amp;</WorkID>
  46. </dynamicParams>
  47. <!-- 常量参数 key=value 用:分割 -->
  48. <constantParams>
  49. </constantParams>
  50. </params>
  51. <success></success>
  52. <back></back>
  53. </openSub>
  54. <submitSub>
  55. <id>1</id>
  56. <name>提交加班明细</name>
  57. <url>http://oa.gyzq.com.cn:8082/OperateProcessor?operate=WorkAction.5&amp;Table=wfGYMS_JBSQ&amp;StepID=initialStep&amp;isSubmit=1&amp;operate=Add</url>
  58. <method>POST</method>
  59. <userCookie>1</userCookie>
  60. <!-- 消息头 可添加多个 -->
  61. <headers>
  62. <no-cache>true</no-cache>
  63. <Referer>http://www.sougou.com</Referer>
  64. </headers>
  65. <!-- 请求参数如果是正则,一定加上() 使用正则工具类获取第一个group -->
  66. <params>
  67. <!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 形式如${key}, 则会在传入参数的map中查找key对应的值-->
  68. <dynamicParams>
  69. <OperateID regexFrom="before">;OperateID=(.*?)&amp;</OperateID>
  70. <Token regexFrom="first">Token=(.*?)&amp;</Token>
  71. <WorkID regexFrom="first">&amp;WorkID=(\d+?)&amp;</WorkID>
  72. <KSSJ>${KSSJ}</KSSJ>
  73. <JSSJ>${JSSJ}</JSSJ>
  74. </dynamicParams>
  75. <!-- 常量参数 key=value 用:分割 -->
  76. <constantParams>
  77. XM=60:$C{XM}=0:BM=盐城解放南路证券营业部:JBSJ=2.0:TXHBZ=0
  78. </constantParams>
  79. </params>
  80. <success>执行新增成功</success>
  81. <back></back>
  82. </submitSub>
  83. </subOperation>
  84. </subOperations>
  85. <!-- 提交附件的通用操作 -->
  86. <subAttachment>
  87. <openSub>
  88. <id>1</id>
  89. <name>打开提交附件</name>
  90. <url>/WorkProcessor?Table=WF_APPSP&amp;StepID=initialStep&amp;Column=FJ&amp;SubmitForm=DATA_FORM&amp;EVENT_SOURCE=AddHypotObj&amp;extWindow=true&amp;PopupWin=true</url>
  91. <method>GET</method>
  92. <userCookie>1</userCookie>
  93. <headers>
  94. <no-cache>true</no-cache>
  95. </headers>
  96. <params>
  97. <!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 -->
  98. <dynamicParams>
  99. <Token regexFrom="first">Token=(.*?)&amp;</Token>
  100. <WorkID regexFrom="first">&amp;WorkID=(\d+?)&amp;</WorkID>
  101. </dynamicParams>
  102. <!-- 常量参数 key=value 用:分割 -->
  103. <constantParams>
  104. </constantParams>
  105. </params>
  106. <success></success>
  107. <back></back>
  108. </openSub>
  109. <submitSub>
  110. <id>2</id>
  111. <name>提交附件</name>
  112. <url>&lt;form action=\&quot;(.*?)\&quot; method=\&quot;post\&quot;</url>
  113. <method>POST</method>
  114. <userCookie>1</userCookie>
  115. <!-- 消息头 可添加多个 -->
  116. <headers>
  117. <no-cache>true</no-cache>
  118. </headers>
  119. <!-- 请求参数如果是正则,一定加上() 使用正则工具类获取第一个group -->
  120. <params>
  121. <!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 形式如${key}, 则会在传入参数的map中查找key对应的值-->
  122. <dynamicParams>
  123. <FJMC>${FJMC}</FJMC>
  124. <FJ>${FJ}</FJ>
  125. <BZ>${BZ}</BZ>
  126. <LJDZ>${LJDZ}</LJDZ><!-- 链接地址 -->
  127. </dynamicParams>
  128. <!-- 常量参数 key=value 用:分割 -->
  129. <constantParams>
  130. operate=Add:$C{FJMC}=1:$C{FJ}=9:$C{BZ}=1:$C{MC}=1:$C{LJDZ}=1
  131. </constantParams>
  132. </params>
  133. <success>执行新增成功</success>
  134. <back></back>
  135. </submitSub>
  136. </subAttachment>
  137. <!-- 提交流程 -->
  138. <submitProcess>
  139. <id>1</id>
  140. <name>提交APP审核流程流程</name>
  141. <!-- <url>http://oa.gyzq.com.cn:8082/OperateProcessor?operate=WorkAction.5&amp;Table=WF_APPSP&amp;isSubmit=1</url> --><!-- 提交 -->
  142. <url>/OperateProcessor?operate=WorkSave&amp;Table=WF_APPSP&amp;isSubmit=1</url><!-- 保存 -->
  143. <method>get</method>
  144. <userCookie>1</userCookie>
  145. <!-- 消息头 可添加多个 -->
  146. <headers>
  147. <no-cache>true</no-cache>
  148. </headers>
  149. <!-- 请求参数如果是正则,一定加上() 使用正则工具类获取第一个group -->
  150. <params>
  151. <!-- 动态参数 正则(一定加上() 使用正则工具类获取第一个group)或动态传入 -->
  152. <dynamicParams>
  153. <Token regexFrom="first">Token=(.*?)&amp;</Token>
  154. <WorkID regexFrom="first">&amp;WorkID=(\d+?)&amp;</WorkID>
  155. <StepID>initialStep</StepID> -->
  156. <WorkActionID regexFrom="first">&amp;WorkActionID=(\d+?)&amp;</WorkActionID>
  157. <SQR regexFrom="first">name=\"SQR\".*?value=\"(\d*?)\".*?></SQR>
  158. <SQRBM regexFrom="first">name=\"SQRBM\".*?value=\"(\d*?)\".*?></SQRBM>
  159. <LCNR>${LCNR}</LCNR><!-- 流程内容 -->
  160. <LCLX>${LCLX}</LCLX><!-- 流程类型 -->
  161. </dynamicParams>
  162. <!-- 常量参数 key=value 用:分割 -->
  163. <constantParams>
  164. $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
  165. </constantParams>
  166. </params>
  167. <!-- <success>执行提交成功</success> -->
  168. <success>执行保存成功</success>
  169. <back>提交的.*?流程\[(\d*?)\]</back>
  170. </submitProcess>
  171. </crawl>
  172. </base>

3、配置文件说明

  1. 整合xml包裹在base标签中
  2. base标签下包含的crawl即为一个完整的提交流程
  3. 一个crawl 包含以下元素:

    id:当前流程的id, 外部使用配置的时候会根据id获得此id对应的流程
    name: 该流程的名称
    baseUrl:当前流程的base地址
    openProcess:此标签下的配置为打开一个流程的配置
    subOperations:此标签下的为流程的子操作,每个子操作subOperation下包含打开页面openSub,提交页面submitSub
    subAttachment:此标签下的配置为提交附件的通用操作,其下包含打开页面openSub,提交操作submitSub
    submitProcess:此标签下的配置为提交一个流程的配置

  4. 无论是打开页面还是提交页面在本配置中通通视为一次网络请求,因此无论是openProcessopenSubsubmitSub下面都包含相同的配置:

    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=(.*?)&amp;</Token> <LCNR>${LCNR}</LCNR>
    success:表示当前页面如果执行成功则页面中应该包含的字符串
    back: 当前页面操作成功应返回的值,多为正则表达式,如不配置,则返回整个页面

更新说明

更新时间 2015年12月23日
更新作者 VIC

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注