起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: qweasdzxc

[结贴] 弹出流转对话框取消后待办会新增新的数据

[复制链接]

506

主题

1631

帖子

3387

积分

论坛元老

Rank: 8Rank: 8

积分
3387
QQ
 楼主| 发表于 2017-6-5 15:24:50 | 显示全部楼层
本帖最后由 qweasdzxc 于 2017-6-5 15:26 编辑
jishuang 发表于 2017-6-5 15:21
那就是正确的,你的列表页面肯定不会有变化啊,要看的是待办任务中
你的列表页面是你的业务数据,业务数据 ...

1.可是现在点一次编辑,流程都会启动一次,数据都会产生新的。
2.我想他能直接打开业务页面,不用再跑到待办任务中点处理,这样行吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-5 15:42:03 | 显示全部楼层
1.点一次编辑,流程都会启动一次那是自己代码判断的问题,你要自己判断上面时候启动,什么时候不启动

2.列表流程的案例中处理流程时就是直接打开的对应页面处理的,不是到待办任务中执行的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3387

积分

论坛元老

Rank: 8Rank: 8

积分
3387
QQ
 楼主| 发表于 2017-6-5 16:07:26 | 显示全部楼层
jishuang 发表于 2017-6-5 15:42
1.点一次编辑,流程都会启动一次那是自己代码判断的问题,你要自己判断上面时候启动,什么时候不启动

2.列 ...

怎么判断它在SA_TASK有启动流程,没有的话进入编辑表单页面,有的话进入流程处理页面?这怎么判断呢
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-5 16:42:03 | 显示全部楼层
请仔细看看发的列表流程中启动和处理流程的实现,以及双击列表打开详细页面的实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3387

积分

论坛元老

Rank: 8Rank: 8

积分
3387
QQ
 楼主| 发表于 2017-6-5 18:20:49 | 显示全部楼层
jishuang 发表于 2017-6-5 16:42
请仔细看看发的列表流程中启动和处理流程的实现,以及双击列表打开详细页面的实现 ...

看了啊,双击列表打开详细页面的实现是看状态如果是未审批就启动流程,已完成就打开已结束的流程,否则处理流程
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-6 08:44:17 | 显示全部楼层
同样的啊你要根据自己的业务数据去判断啊,如果自己的业务数据中没有存储状态就根据sData1的值到SA_Task中的去查找,就是处理流程中的实现啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3387

积分

论坛元老

Rank: 8Rank: 8

积分
3387
QQ
 楼主| 发表于 2017-6-6 09:15:39 | 显示全部楼层
本帖最后由 qweasdzxc 于 2017-6-6 09:53 编辑
jishuang 发表于 2017-6-6 08:44
同样的啊你要根据自己的业务数据去判断啊,如果自己的业务数据中没有存储状态就根据sData1的值到SA_Task中 ...

怎么知道列表中点击的那一行是否已经启动流程了呢?具体怎么判断
我用下面的方法判断,每次点击无论SA_TASK有没有启动过流程,task都是获取为"",启动新的流程。
  1. var task=_this.getContext().getTask();
  2.                      if(task==="" || task===undefined || task===null){
  3.                        this.startFlow();
  4.                      }
  5.                      this.advanceFlow();

  6. Model.prototype.startFlow = function() {
  7.         var p=this.comp("process1");
  8.         var mainData=this.comp("mainData");
  9.     p.start("/SAM/assetManage/process/assetin/assetinProcess", mainData.getValue("fName")+"资产入库", mainData.getCurrentRowID(),null);
  10.     };

  11.   Model.prototype.advanceFlow = function() {
  12.     var dList = this.comp("mainData");
  13.     var sData1 = dList.getCurrentRowID();
  14.     var context = this.getContext();

  15.     // 定义action参数,请求taskDataAction获取当前环节的数据信息
  16.     var param = new biz.Request.ActionParam();
  17.     var taskRows = "";
  18.     param.setString("sData1", sData1);
  19.     biz.Request.sendBizRequest({
  20.         "context" : context,
  21.         "action" : "taskDataAction",
  22.         "parameters" : param,
  23.         "callback" : function(callbackData) {
  24.             if (callbackData.state) {
  25.                 taskRows = callbackData.response.rows;
  26.             } else
  27.                 alert("任务数据获取失败");
  28.         }
  29.     });
  30.     // 当有数据返回时获取第一条的信息进行处理
  31.     if (taskRows.length > 0) {
  32.         var title = taskRows[0].sActivityName.value;// 获得当前环节名称,作为页面的标题
  33.         var taskID = taskRows[0].task.value;// 获得任务ID,url中的参数
  34.         var url = taskRows[0].sEURL.value;// 获得当前环节的url
  35.         var status = taskRows[0].sStatusID.value;
  36.         var executorFID = taskRows[0].sExecutorFID.value;
  37.         var executorPersonID = taskRows[0].sExecutorPersonID.value;
  38.         url = url + "?task=" + taskID + "&_pagePattern=write";// _pagePattern=write是必须的,表示要处理这个任务
  39.         if (executorPersonID === context.getCurrentPersonID()) {// 如果执行者是否当前人
  40.             justep.Shell.showPage({
  41.                 url : url,
  42.                 title : title
  43.             }); // 调用justep.Shell.showPage方法打开流程当前环节对应的w文件
  44.         } else {
  45.             var sFIDs = context.getAllPersonMemberFIDs()
  46.             if (status === "tesReady" && (sFIDs.toString().indexOf(executorFID) > -1)) {// 判断执行者是否是当前操作者的所有人员成员所在的组织
  47.                 var executor = "";
  48.                 var params = new biz.Request.ActionParam();
  49.                 params.setString("task", taskID);
  50.                 params.setString("executor", executorFID);
  51.                 var options = {};
  52.                 options.context = this.getContext();
  53.                 options.action = "executeTaskAction";
  54.                 options.parameters = params;
  55.                 options.directExecute = true;
  56.                 options.callback = function(options) {
  57.                     if (options.state) {
  58.                         executor = options.response;
  59.                     } else {
  60.                         options.ignoreError = false;
  61.                     }
  62.                 };
  63.                 biz.Request.sendBizRequest(options);
  64.                 justep.Shell.showPage({
  65.                     url : url,
  66.                     title : title,
  67.                     executor : executor || ""
  68.                 });
  69.             } else {
  70.                 alert("任务应由其他人处理");
  71.             }
  72.         }

  73.     } else {
  74.         alert("流转未启动、已完成");
  75.     }
  76. };
复制代码


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-6 10:19:25 | 显示全部楼层
你的不是从待办中打开的肯定不能用var task=_this.getContext().getTask();获取啊
我在26楼已经了自己用sData1的值到SA_Task中查数据,参考发的案例中列表流程的实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3387

积分

论坛元老

Rank: 8Rank: 8

积分
3387
QQ
 楼主| 发表于 2017-6-6 10:45:08 | 显示全部楼层
本帖最后由 qweasdzxc 于 2017-6-6 10:46 编辑
jishuang 发表于 2017-6-6 10:19
你的不是从待办中打开的肯定不能用var task=_this.getContext().getTask();获取啊
我在26楼已经了自己用sDa ...

改成下面也不行啊!
你直接告诉我要怎么改啊,我也参考过了,老让我参考我也不知道到底什么地方错。
  1. if (row && '草稿' == row.val("fApprovedState")) {
  2.                         this.advanceFlow();
  3.                         
  4.                         //                         var url =
  5.                         //                         '$UI/SAM/assetManage/process/assetin/mainActivity.a?process=/SAM/assetManage/process/assetin/assetinProcess&activity=mainActivity&oppType=edit&sData1='+row.getID();
  6.                         //                         justep.Shell.showPage({url:url, title: '资产入库单'});
  7.                         //                         this.startFlow();
  8.                 } else {
  9.                         _this.comp("messageDialog").show({
  10.                                 message : "操作无效!"
  11.                         });
  12.                 }

  13. Model.prototype.startFlow = function() {
  14.                 var p = this.comp("process1");
  15.                 var mainData = this.comp("mainData");
  16.                 p.start("/SAM/assetManage/process/assetin/assetinProcess", mainData.getValue("fName") + "资产入库", mainData.getCurrentRowID(), null);
  17.         };

  18.         Model.prototype.advanceFlow = function() {
  19.                 var dList = this.comp("mainData");
  20.                 var sData1 = dList.getCurrentRowID();
  21.                 var context = this.getContext();

  22.                 // 定义action参数,请求taskDataAction获取当前环节的数据信息
  23.                 var param = new biz.Request.ActionParam();
  24.                 var taskRows = "";
  25.                 param.setString("sData1", sData1);
  26.                 biz.Request.sendBizRequest({
  27.                         "context" : context,
  28.                         "action" : "taskDataAction",
  29.                         "parameters" : param,
  30.                         "callback" : function(callbackData) {
  31.                                 if (callbackData.state) {
  32.                                         taskRows = callbackData.response.rows;
  33.                                 } else
  34.                                         alert("任务数据获取失败");
  35.                         }
  36.                 });
  37.                 // 当有数据返回时获取第一条的信息进行处理
  38.                 if (taskRows.length > 0) {
  39.                         var title = taskRows[0].sActivityName.value;// 获得当前环节名称,作为页面的标题
  40.                         var taskID = taskRows[0].task.value;// 获得任务ID,url中的参数
  41.                         var url = taskRows[0].sEURL.value;// 获得当前环节的url
  42.                         var status = taskRows[0].sStatusID.value;
  43.                         var executorFID = taskRows[0].sExecutorFID.value;
  44.                         var executorPersonID = taskRows[0].sExecutorPersonID.value;
  45.                         url = url + "?task=" + taskID + "&_pagePattern=write";// _pagePattern=write是必须的,表示要处理这个任务
  46.                         if (executorPersonID === context.getCurrentPersonID()) {// 如果执行者是否当前人
  47.                                 justep.Shell.showPage({
  48.                                         url : url,
  49.                                         title : title
  50.                                 }); // 调用justep.Shell.showPage方法打开流程当前环节对应的w文件
  51.                         } else {
  52.                                 var sFIDs = context.getAllPersonMemberFIDs()
  53.                                 if (status === "tesReady" && (sFIDs.toString().indexOf(executorFID) > -1)) {// 判断执行者是否是当前操作者的所有人员成员所在的组织
  54.                                         var executor = "";
  55.                                         var params = new biz.Request.ActionParam();
  56.                                         params.setString("task", taskID);
  57.                                         params.setString("executor", executorFID);
  58.                                         var options = {};
  59.                                         options.context = this.getContext();
  60.                                         options.action = "executeTaskAction";
  61.                                         options.parameters = params;
  62.                                         options.directExecute = true;
  63.                                         options.callback = function(options) {
  64.                                                 if (options.state) {
  65.                                                         executor = options.response;
  66.                                                 } else {
  67.                                                         options.ignoreError = false;
  68.                                                 }
  69.                                         };
  70.                                         biz.Request.sendBizRequest(options);
  71.                                         justep.Shell.showPage({
  72.                                                 url : url,
  73.                                                 title : title,
  74.                                                 executor : executor || ""
  75.                                         });
  76.                                 } else {
  77.                                         alert("任务应由其他人处理");
  78.                                 }
  79.                         }

  80.                 } else {
  81.                         this.startFlow();
  82.                 }
  83.         };
复制代码



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-6 11:24:05 | 显示全部楼层
你在双击事件中获取到主键值,调用action到SA_Task中去查任务,如果有任务就执行流转,没有任务就中启动啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-25 09:45 , Processed in 0.087533 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表