sync2todo_UnifiedWorkbench.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473
  1. /*
  2. * resources.getEntityManagerContainer() // 实体管理容器.
  3. * resources.getContext() //上下文根.
  4. * resources.getOrganization() //组织访问接口.
  5. * requestText //请求内容.
  6. * request //请求对象.
  7. */
  8. load("nashorn:mozilla_compat.js");
  9. print("----发送待办开始---------");
  10. //var Todo_Service_URL = 'http://10.11.198.224:9083/UnifiedWorkbench/ProcessTaskService';
  11. //WSDL http://10.11.198.224:9083/UnifiedWorkbench/ProcessTaskService/ProcessTaskService.wsdl
  12. //var Read_Service_URL ='http://10.11.198.224:9083/UnifiedWorkbench/ProcessReadService';
  13. //WSDL http://10.11.198.224:9083/UnifiedWorkbench/ProcessReadService/ProcessReadService.wsdl
  14. var Todo_Service_URL = 'http://10.11.198.209:9083/UnifiedWorkbench/ProcessTaskService';
  15. var Read_Service_URL ='http://10.11.198.209:9083/UnifiedWorkbench/ProcessReadService';
  16. var Project_Name = '安徽智和';
  17. var Project_Password = 'ahzh';
  18. function getServerHost(){
  19. return "http://zhtest.ah.unicom.local";
  20. }
  21. function getServerPort(){
  22. var server_port = "8080";
  23. return (server_port == "" || server_port == "80") ? "" : (":"+server_port);
  24. }
  25. function init(){
  26. var resp = resources.getContext().applications().getQuery(com.x.base.core.project.x_message_assemble_communicate.class, 'consume/list/sync2todo/count/30');
  27. var text = resp.getData().toString();
  28. var list = JSON.parse(text);
  29. for (var i = 0; i < list.length; i++) {
  30. var item = list[i];
  31. switch (item.type) {
  32. case 'task_create':
  33. var task = JSON.parse(item.body);
  34. send_task_create(item.id, task);
  35. break;
  36. case 'taskCompleted_create':
  37. var task = JSON.parse(item.body);
  38. send_taskCompleted_create(item.id, task);
  39. break;
  40. case 'taskCompleted_delete':
  41. var task = JSON.parse(item.body);
  42. send_task_delete(item.id, task);
  43. break;
  44. case 'read_create':
  45. var read = JSON.parse(item.body);
  46. send_read_create(item.id, read);
  47. break;
  48. case 'readCompleted_create':
  49. var read = JSON.parse(item.body);
  50. send_readCompleted_create(item.id,read);
  51. break;
  52. case 'task_delete':
  53. var task = JSON.parse(item.body);
  54. send_task_delete(item.id, task);
  55. break;
  56. case 'read_delete':
  57. var read = JSON.parse(item.body);
  58. send_read_delete(item.id, read);
  59. break;
  60. default:
  61. break;
  62. }
  63. }
  64. }
  65. function getPersonFeature( person ){
  66. return "wangyj733";
  67. }
  68. function getPersonAttribute(userid , attributeName ){
  69. var org = resources.getOrganization();
  70. var _list = org.personAttribute().listAttributeWithPersonWithName(userid, attributeName);
  71. if(_list.length===0){
  72. return userid;
  73. } else {
  74. if(_list[0]&&_list[0]!=""){
  75. return _list[0];
  76. } else {
  77. return userid;
  78. }
  79. }
  80. }
  81. function concatUrl(task) {
  82. return getServerHost() + getServerPort() + "/x_desktop/work.html?workid=" + task.work;
  83. }
  84. function concatTaskUrl(task){
  85. return getServerHost() + getServerPort() + "/x_desktop/work.html?taskid=" + task.id;
  86. }
  87. function concatTaskCompletedUrl(taskcompleted){
  88. return getServerHost() + getServerPort() + "/x_desktop/work.html?taskcompletedid=" + taskcompleted.id;
  89. }
  90. function concatReadUrl(read){
  91. return getServerHost() + getServerPort() + "/x_desktop/work.html?readid=" + read.id;
  92. }
  93. function concatReadCompletedUrl(readcompleted){
  94. return getServerHost() + getServerPort() + "/x_desktop/work.html?readcompletedid=" + readcompleted.id;
  95. }
  96. function getXMLText(root, tag){
  97. var list = root.getElementsByTagName(tag);
  98. if( list == null )return null;
  99. var node = list.item(0);
  100. if( node == null )return null;
  101. return node.getTextContent();
  102. }
  103. function updateConsume( id ){
  104. try {
  105. resources.getContext().applications().getQuery(com.x.base.core.project.x_message_assemble_communicate.class, 'consume/' + id + '/type/sync2todo');
  106. }catch(e){
  107. print("更新消息,将消息标志为已处理出错,id="+id + ":");
  108. print( e.printStackTrace() );
  109. return false;
  110. }
  111. }
  112. function isRespSuccess( xmlStr ){
  113. try {
  114. var DocumentBuilderFactory = Java.type('javax.xml.parsers.DocumentBuilderFactory');
  115. var StringReader = Java.type('java.io.StringReader');
  116. var InputSource = Java.type('org.xml.sax.InputSource');
  117. var dbf = DocumentBuilderFactory.newInstance();
  118. var db = dbf.newDocumentBuilder();
  119. var sr = new StringReader(xmlStr);
  120. var is = new InputSource(sr);
  121. var document = db.parse(is);
  122. var root = document.getDocumentElement();
  123. var faultcode = getXMLText(root, "faultcode");
  124. var faultstring = getXMLText(root, "faultstring");
  125. if (faultcode) {
  126. return false
  127. } else {
  128. return true
  129. }
  130. }catch(e){
  131. print("解析返回结果报错:");
  132. print( e.printStackTrace() );
  133. return false
  134. }
  135. }
  136. function sendRequest_task( xml ){
  137. try{
  138. print("发起请求:"+xml);
  139. var ArrayList = Java.type('java.util.ArrayList');
  140. var heads = new ArrayList();
  141. var NameValuePair = Java.type('com.x.base.core.project.bean.NameValuePair');
  142. var p1 = new NameValuePair('Content-Type', 'text/xml; charset=utf-8');
  143. heads.add(p1);
  144. var HttpConnectionClass = Java.type('com.x.base.core.project.connection.HttpConnection');
  145. var resp = HttpConnectionClass.postAsString(Todo_Service_URL, heads, xml);
  146. print( "统一待办返回:"+resp );
  147. return isRespSuccess( resp );
  148. }catch(e){
  149. print("发送请求出错:");
  150. print( e.printStackTrace() );
  151. }
  152. }
  153. function get_task_create_xml( task ){
  154. var xml = '';
  155. xml += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processtask.service.webservice.unifiedworkbench.zoneland.net/">';
  156. xml += '<soapenv:Header/>';
  157. xml += '<soapenv:Body>';
  158. xml += '<proc:update>';
  159. xml += '<arg0>'+ Project_Name +'</arg0>'; //项目名称projectName,每个应用都分开
  160. xml += '<arg1>'+ Project_Password +'</arg1>'; //接入密码key,每个应用都分开
  161. xml += '<arg2>'+ getPersonFeature(task.person) +'</arg2>'; //targets, 办理人
  162. xml += '<arg3>'+ '' +'</arg3>'; //processor, 上一个环节的处理人, 如果只生成待办不为处理人生成已办,那么发送人可不填写
  163. xml += '<arg4>'+ getPersonFeature( task.creatorPerson) +'</arg4>'; //creator, 流程工单拟稿人
  164. xml += '<arg5>'+ task.opinion +'</arg5>'; //opinion, 流程处理意见
  165. xml += '<arg6>'+ task.title +'</arg6>'; //title, 工单标题
  166. xml += '<arg7>'+ task.work +'</arg7>'; //unid, 应用系统的待办唯一ID
  167. xml += '<arg8>'+ task.job +'</arg8>'; //additionalUnid 上级流程实例(工单)的唯一标识,如果有多层,可以用逗号分隔,主流程在第一位
  168. xml += '<arg9>'+ task.id +'</arg9>'; //feature, 流程实例(工单)唯一标识, 任务ID
  169. xml += '<arg10>'+ task.routeName +'</arg10>'; //reserve, 决策名称:送办理|归档|送审批等等
  170. xml += '<arg11>'+ task.startTime +'</arg11>'; //composeTime, 数据生成时间:2011-08-30 12:00:00
  171. xml += '<arg12>'+ task.processName +'</arg12>'; //process, 直接写流程名称
  172. xml += '<arg13>'+ task.processName +'</arg13>'; //fileType,文档类型,直接写流程名称
  173. xml += '<arg14>'+ task.activityName +'</arg14>'; //activity, 当前环节名称
  174. xml += '<arg15>'+ 'false' +'</arg15>'; //newly, 是否是草稿
  175. xml += '<arg16>'+ task.processName +'</arg16>'; //category,分类名称,直接写流程名称
  176. xml += '<arg17>'+ '' +'</arg17>'; //urgency,紧急程度:请默认“一般”
  177. xml += '<arg18>'+ '' +'</arg18>'; //secrecy,密级:请默认“普通文件”
  178. xml += '<arg19>'+ task.serial +'</arg19>'; //serial,文号:对公文必须,可以为空
  179. xml += '<arg20>'+ 0 +'</arg20>'; //expirationMinutes, 不要求,固定为0
  180. xml += '<arg21>'+ '' +'</arg21>'; //expirationTime,不要求,固定为""
  181. xml += '<arg22>'+ false +'</arg22>'; //hastenEnable,不要求,固定为false
  182. xml += '<arg23>'+ 0 +'</arg23>'; //hastenMinutes,不要求,固定为0
  183. xml += '<arg24>'+ '' +'</arg24>'; //hastenTime 不要求,催办时间,可以为空
  184. xml += '<arg25>'+ 'false' +'</arg25>'; //enableRemind|remindEnable,不要求,固定为false
  185. xml += '<arg26>'+ 'false' +'</arg26>'; //remindForceFlag|remindForce, 不要求,固定为false
  186. xml += '<arg27>'+ concatTaskUrl( task ) +'</arg27>'; //link, 访问链接
  187. xml += '<arg28>'+ '' +'</arg28>'; //linkView, 配合流程监控平台,江西移动环境接入为拟稿时间
  188. xml += '<arg29>'+ '' +'</arg29>'; //linkFlow, 办理链接, 可以为空
  189. xml += '<arg30>'+ '' +'</arg30>'; //linkRemove, 删除链接, 可以为空
  190. xml += '<arg31>'+ '' +'</arg31>'; //linkSupervise, 督办链接, 可以为空
  191. xml += '<arg32>'+ '' +'</arg32>'; //linkSuspend, 挂起链接, 可以为空
  192. xml += '<arg33>'+ '' +'</arg33>'; //linkReset, 重置链接, 可以为空
  193. xml += '<arg34>'+ '' +'</arg34>'; //linkReroute, 调度链接, 可以为空
  194. xml += '</proc:update>';
  195. xml += '</soapenv:Body>';
  196. xml += '</soapenv:Envelope>';
  197. return xml;
  198. }
  199. function send_task_create(id, task) {
  200. print("======send_task_create start=========" + ", consume id : " + id);
  201. var xml = get_task_create_xml( task );
  202. if( sendRequest_task( xml ) ){
  203. updateConsume( id );
  204. }
  205. print("======send_task_create end=========" + ", consume id : " + id);
  206. }
  207. function get_task_delete_xml( task ){
  208. var xml = '';
  209. xml += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processtask.service.webservice.unifiedworkbench.zoneland.net/">';
  210. xml += '<soapenv:Header/>';
  211. xml += '<soapenv:Body>';
  212. xml += '<proc:removeTaskAsFeature>';
  213. xml += '<arg0>'+ Project_Name +'</arg0>'; //项目名称projectName,每个应用都分开
  214. xml += '<arg1>'+ Project_Password +'</arg1>'; //接入密码key,每个应用都分开
  215. xml += '<arg2>'+ task.id +'</arg2>'; //需要删除的 Feature
  216. xml += '</proc:removeTaskAsFeature>';
  217. xml += '</soapenv:Body>';
  218. xml += '</soapenv:Envelope>';
  219. return xml;
  220. }
  221. function send_task_delete(id, task) {
  222. print("--------send_task_delete start------------" + ", consume id : " + id);
  223. var xml = get_task_delete_xml( task );
  224. if( sendRequest_task( xml ) ){
  225. updateConsume( id );
  226. }
  227. print("--------send_task_delete end------------" + ", consume id : " + id);
  228. }
  229. function get_taskCompleted_create_xml( task ){
  230. var xml = '';
  231. xml += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processtask.service.webservice.unifiedworkbench.zoneland.net/">';
  232. xml += '<soapenv:Header/>';
  233. xml += '<soapenv:Body>';
  234. xml += '<proc:update>';
  235. xml += '<arg0>'+ Project_Name +'</arg0>'; //项目名称projectName,每个应用都分开
  236. xml += '<arg1>'+ Project_Password +'</arg1>'; //接入密码key,每个应用都分开
  237. xml += '<arg2>'+ '' +'</arg2>'; //targets, 办理人
  238. xml += '<arg3>'+ getPersonFeature( task.person ) +'</arg3>'; //processor, 上一个环节的处理人, 如果只生成待办不为处理人生成已办,那么发送人可不填写
  239. xml += '<arg4>'+ getPersonFeature( task.creatorPerson ) +'</arg4>'; //creator, 流程工单拟稿人
  240. xml += '<arg5>'+ task.opinion +'</arg5>'; //opinion, 流程处理意见
  241. xml += '<arg6>'+ task.title +'</arg6>'; //title, 工单标题
  242. xml += '<arg7>'+ task.work +'</arg7>'; //unid, 应用系统的待办唯一ID
  243. xml += '<arg8>'+ task.job +'</arg8>'; //additionalUnid 上级流程实例(工单)的唯一标识,如果有多层,可以用逗号分隔,主流程在第一位
  244. xml += '<arg9>'+ task.id +'</arg9>'; //feature, 流程实例(工单)唯一标识, 任务ID
  245. xml += '<arg10>'+ task.routeName +'</arg10>'; //reserve, 决策名称:送办理|归档|送审批等等
  246. xml += '<arg11>'+ task.startTime +'</arg11>'; //composeTime, 数据生成时间:2011-08-30 12:00:00
  247. xml += '<arg12>'+ task.processName +'</arg12>'; //process, 直接写流程名称
  248. xml += '<arg13>'+ task.processName +'</arg13>'; //fileType,文档类型,直接写流程名称
  249. xml += '<arg14>'+ task.activityName +'</arg14>'; //activity, 当前环节名称
  250. xml += '<arg15>'+ 'false' +'</arg15>'; //newly, 是否是草稿
  251. xml += '<arg16>'+ task.processName +'</arg16>'; //category,分类名称,直接写流程名称
  252. xml += '<arg17>'+ '' +'</arg17>'; //urgency,紧急程度:请默认“一般”
  253. xml += '<arg18>'+ '' +'</arg18>'; //secrecy,密级:请默认“普通文件”
  254. xml += '<arg19>'+ task.serial +'</arg19>'; //serial,文号:对公文必须,可以为空
  255. xml += '<arg20>'+ 0 +'</arg20>'; //expirationMinutes, 不要求,固定为0
  256. xml += '<arg21>'+ '' +'</arg21>'; //expirationTime,不要求,固定为""
  257. xml += '<arg22>'+ false +'</arg22>'; //hastenEnable,不要求,固定为false
  258. xml += '<arg23>'+ 0 +'</arg23>'; //hastenMinutes,不要求,固定为0
  259. xml += '<arg24>'+ '' +'</arg24>'; //hastenTime 不要求,催办时间,可以为空
  260. xml += '<arg25>'+ 'false' +'</arg25>'; //enableRemind|remindEnable,不要求,固定为false
  261. xml += '<arg26>'+ 'false' +'</arg26>'; //remindForceFlag|remindForce, 不要求,固定为false
  262. xml += '<arg27>'+ concatTaskCompletedUrl( task ) +'</arg27>'; //link, 访问链接
  263. xml += '<arg28>'+ '' +'</arg28>'; //linkView, 配合流程监控平台,江西移动环境接入为拟稿时间
  264. xml += '<arg29>'+ '' +'</arg29>'; //linkFlow, 办理链接, 可以为空
  265. xml += '<arg30>'+ '' +'</arg30>'; //linkRemove, 删除链接, 可以为空
  266. xml += '<arg31>'+ '' +'</arg31>'; //linkSupervise, 督办链接, 可以为空
  267. xml += '<arg32>'+ '' +'</arg32>'; //linkSuspend, 挂起链接, 可以为空
  268. xml += '<arg33>'+ '' +'</arg33>'; //linkReset, 重置链接, 可以为空
  269. xml += '<arg34>'+ '' +'</arg34>'; //linkReroute, 调度链接, 可以为空
  270. xml += '</proc:update>';
  271. xml += '</soapenv:Body>';
  272. xml += '</soapenv:Envelope>';
  273. return xml;
  274. }
  275. function send_taskCompleted_create(id, task) {
  276. print("--------send_taskCompleted_create start------------" + ", consume id : " + id);
  277. var xml = get_taskCompleted_create_xml( task );
  278. if( sendRequest_task( xml ) ){
  279. updateConsume( id );
  280. }
  281. print("--------send_taskCompleted_create end------------" + ", consume id : " + id);
  282. }
  283. function sendRequest_read(xml){
  284. try{
  285. print("发起请求:"+xml);
  286. var ArrayList = Java.type('java.util.ArrayList');
  287. var heads = new ArrayList();
  288. var NameValuePair = Java.type('com.x.base.core.project.bean.NameValuePair');
  289. var p1 = new NameValuePair('Content-Type', 'text/xml; charset=utf-8');
  290. heads.add(p1);
  291. var HttpConnectionClass = Java.type('com.x.base.core.project.connection.HttpConnection');
  292. var resp = HttpConnectionClass.postAsString(Read_Service_URL, heads, xml);
  293. print( "统一待办返回:"+resp );
  294. return isRespSuccess( resp );
  295. }catch(e){
  296. print("发送请求出错:");
  297. print( e.printStackTrace() );
  298. }
  299. }
  300. function get_read_create_xml( read ){
  301. var xml = '';
  302. xml += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processread.service.webservice.unifiedworkbench.zoneland.net/">';
  303. xml += '<soapenv:Header/>';
  304. xml += '<soapenv:Body>';
  305. xml += '<proc:update>';
  306. xml += '<arg0>'+ Project_Name +'</arg0>'; //项目名称projectName,每个应用都分开
  307. xml += '<arg1>'+ Project_Password +'</arg1>'; //接入密码key,每个应用都分开
  308. xml += '<arg2>'+ getPersonFeature( read.person ) +'</arg2>'; //targets, 待阅人
  309. xml += '<arg3>'+ '' +'</arg3>'; //processor, 上一个环节的处理人, 如果只生成待办不为处理人生成已办,那么发送人可不填写
  310. xml += '<arg4>'+ getPersonFeature( read.creatorPerson ) +'</arg4>'; //creator, 流程工单拟稿人
  311. xml += '<arg5>'+ read.title +'</arg5>'; //title, 工单标题
  312. xml += '<arg6>'+ read.work +'</arg6>'; //unid, 应用系统的待办唯一ID
  313. xml += '<arg7>'+ read.job +'</arg7>'; //additionalUnid 上级流程实例(工单)的唯一标识,如果有多层,可以用逗号分隔,主流程在第一位
  314. xml += '<arg8>'+ read.processName +'</arg8>'; //process, 直接写流程名称
  315. xml += '<arg9>'+ read.processName +'</arg9>'; //fileType,文档类型,直接写流程名称
  316. xml += '<arg10>'+ read.activityName +'</arg10>'; //activity, 当前环节名称
  317. xml += '<arg11>'+ read.processName +'</arg11>'; //category,分类名称,直接写流程名称
  318. xml += '<arg12>'+ '' +'</arg12>'; //urgency,紧急程度:请默认“一般”
  319. xml += '<arg13>'+ '' +'</arg13>'; //secrecy,密级:请默认“普通文件”
  320. xml += '<arg14>'+ read.serial +'</arg14>'; //serial,文号:对公文必须,可以为空
  321. xml += '<arg15>'+ read.id +'</arg15>'; //feature, 流程实例(工单)唯一标识, 任务ID
  322. xml += '<arg16>'+ '' +'</arg16>'; //reserve, 决策名称:送办理|归档|送审批等等
  323. xml += '<arg17>'+ 'false' +'</arg17>'; //enableRemind|remindEnable,不要求,固定为false
  324. xml += '<arg18>'+ 'false' +'</arg18>'; //remindForceFlag|remindForce, 不要求,固定为false
  325. xml += '<arg19>'+ read.startTime +'</arg19>'; //composeTime, 数据生成时间:2011-08-30 12:00:00
  326. xml += '<arg20>'+ '' +'</arg20>'; //expirationTime,不要求,固定为""
  327. xml += '<arg21>'+ '' +'</arg21>'; //hastenTime 不要求,催办时间,可以为空
  328. xml += '<arg22>'+ concatReadUrl( read ) +'</arg22>'; //link, 访问链接
  329. xml += '<arg23>'+ '' +'</arg23>'; //linkView, 配合流程监控平台,江西移动环境接入为拟稿时间
  330. xml += '<arg24>'+ '' +'</arg24>'; //linkFlow, 办理链接, 可以为空
  331. xml += '<arg25>'+ '' +'</arg25>'; //linkRemove, 删除链接, 可以为空
  332. xml += '<arg26>'+ '' +'</arg26>'; //linkSupervise, 督办链接, 可以为空
  333. xml += '<arg27>'+ '' +'</arg27>'; //linkSuspend, 挂起链接, 可以为空
  334. xml += '<arg28>'+ '' +'</arg28>'; //linkReset, 重置链接, 可以为空
  335. xml += '<arg29>'+ '' +'</arg29>'; //linkReroute, 调度链接, 可以为空
  336. xml += '</proc:update>';
  337. xml += '</soapenv:Body>';
  338. xml += '</soapenv:Envelope>';
  339. return xml;
  340. }
  341. function send_read_create(id, read){
  342. print("======send_read_create start=========" + ", consume id : " + id);
  343. var xml = get_read_create_xml( read );
  344. if( sendRequest_read( xml ) ){
  345. updateConsume( id );
  346. }
  347. print("======send_read_create end=========" + ", consume id : " + id);
  348. }
  349. function get_read_delete_xml( read ){
  350. var xml = '';
  351. xml += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processread.service.webservice.unifiedworkbench.zoneland.net/">';
  352. xml += '<soapenv:Header/>';
  353. xml += '<soapenv:Body>';
  354. xml += '<proc:removeReadAsFeature>';
  355. xml += '<arg0>'+ Project_Name +'</arg0>'; //项目名称projectName,每个应用都分开
  356. xml += '<arg1>'+ Project_Password +'</arg1>'; //接入密码key,每个应用都分开
  357. xml += '<arg2>'+ read.id +'</arg2>'; //需要删除的 Feature
  358. xml += '</proc:removeReadAsFeature>';
  359. xml += '</soapenv:Body>';
  360. xml += '</soapenv:Envelope>';
  361. return xml;
  362. }
  363. function send_read_delete(id, read ) {
  364. print("--------send_read_delete start------------" + ", consume id : " + id);
  365. var xml = get_read_delete_xml( read );
  366. if( sendRequest_read( xml ) ){
  367. updateConsume( id );
  368. }
  369. print("--------send_read_delete end------------" + ", consume id : " + id);
  370. }
  371. function get_read_create_xml( read ){
  372. var xml = '';
  373. xml += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processread.service.webservice.unifiedworkbench.zoneland.net/">';
  374. xml += '<soapenv:Header/>';
  375. xml += '<soapenv:Body>';
  376. xml += '<proc:update>';
  377. xml += '<arg0>'+ Project_Name +'</arg0>'; //项目名称projectName,每个应用都分开
  378. xml += '<arg1>'+ Project_Password +'</arg1>'; //接入密码key,每个应用都分开
  379. xml += '<arg2>'+ '' +'</arg2>'; //targets, 待阅人
  380. xml += '<arg3>'+ getPersonFeature(read.person) +'</arg3>'; //processor, 上一个环节的处理人, 如果只生成待办不为处理人生成已办,那么发送人可不填写
  381. xml += '<arg4>'+ getPersonFeature(read.creatorPerson) +'</arg4>'; //creator, 流程工单拟稿人
  382. xml += '<arg5>'+ read.title +'</arg5>'; //title, 工单标题
  383. xml += '<arg6>'+ read.work +'</arg6>'; //unid, 应用系统的待办唯一ID
  384. xml += '<arg7>'+ read.job +'</arg7>'; //additionalUnid 上级流程实例(工单)的唯一标识,如果有多层,可以用逗号分隔,主流程在第一位
  385. xml += '<arg8>'+ read.processName +'</arg8>'; //process, 直接写流程名称
  386. xml += '<arg9>'+ read.processName +'</arg9>'; //fileType,文档类型,直接写流程名称
  387. xml += '<arg10>'+ read.activityName +'</arg10>'; //activity, 当前环节名称
  388. xml += '<arg11>'+ read.processName +'</arg11>'; //category,分类名称,直接写流程名称
  389. xml += '<arg12>'+ '' +'</arg12>'; //urgency,紧急程度:请默认“一般”
  390. xml += '<arg13>'+ '' +'</arg13>'; //secrecy,密级:请默认“普通文件”
  391. xml += '<arg14>'+ read.serial +'</arg14>'; //serial,文号:对公文必须,可以为空
  392. xml += '<arg15>'+ read.id +'</arg15>'; //feature, 流程实例(工单)唯一标识, 任务ID
  393. xml += '<arg16>'+ '' +'</arg16>'; //reserve, 决策名称:送办理|归档|送审批等等
  394. xml += '<arg17>'+ 'false' +'</arg17>'; //enableRemind|remindEnable,不要求,固定为false
  395. xml += '<arg18>'+ 'false' +'</arg18>'; //remindForceFlag|remindForce, 不要求,固定为false
  396. xml += '<arg19>'+ read.startTime +'</arg19>'; //composeTime, 数据生成时间:2011-08-30 12:00:00
  397. xml += '<arg20>'+ '' +'</arg20>'; //expirationTime,不要求,固定为""
  398. xml += '<arg21>'+ '' +'</arg21>'; //hastenTime 不要求,催办时间,可以为空
  399. xml += '<arg22>'+ concatReadCompletedUrl( read ) +'</arg22>'; //link, 访问链接
  400. xml += '<arg23>'+ '' +'</arg23>'; //linkView, 配合流程监控平台,江西移动环境接入为拟稿时间
  401. xml += '<arg24>'+ '' +'</arg24>'; //linkFlow, 办理链接, 可以为空
  402. xml += '<arg25>'+ '' +'</arg25>'; //linkRemove, 删除链接, 可以为空
  403. xml += '<arg26>'+ '' +'</arg26>'; //linkSupervise, 督办链接, 可以为空
  404. xml += '<arg27>'+ '' +'</arg27>'; //linkSuspend, 挂起链接, 可以为空
  405. xml += '<arg28>'+ '' +'</arg28>'; //linkReset, 重置链接, 可以为空
  406. xml += '<arg29>'+ '' +'</arg29>'; //linkReroute, 调度链接, 可以为空
  407. xml += '</proc:update>';
  408. xml += '</soapenv:Body>';
  409. xml += '</soapenv:Envelope>';
  410. return xml;
  411. }
  412. function send_readCompleted_create(id, read) {
  413. print("--------send_readCompleted_create start------------" + ", consume id : " + id);
  414. var xml = get_readCompleted_create_xml( read );
  415. if( sendRequest_read( xml ) ){
  416. updateConsume( id );
  417. }
  418. print("--------send_readCompleted_create end------------" + ", consume id : " + id);
  419. }
  420. init();
  421. print("----发送待办结束---------");