天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2815|回复: 0

[函数] 记录流转过程中不允许删除实现脚本【函数-isDelByState()】

[复制链接]
purple 发表于 2012-11-19 14:32:19 | 显示全部楼层 |阅读模式
本帖最后由 spiral 于 2013-6-20 10:29 编辑

A:如何实现,记录流转过程中,不允许删除。

Q:具体实现脚本可参考下列函数实现思路
实例一:
  1. // must include weblib,doclib,flowlib
  2. function isDelByState() {  //草稿状态下可被删除
  3.         var text = getParameterAsText("_selects");
  4.         var rtn = "";
  5.         if (text == "")  {
  6.                 return "Please select document";
  7.         }
  8.        
  9.         var docids = text.split(';');
  10.         for (var i=0; i < docids.length; i++ ) {
  11.                 var doc = findDocument(docids[i]);
  12.                 var fns = null;
  13.                 if (doc != null) {
  14.                         fns = getStateMachineUtil().getFirstNodeList(doc.getId(), doc.getFlowid());
  15.                 }
  16.                 if (fns != null && fns.size() > 0) {
  17.                         var stateRT= doc.getState();
  18.             if (stateRT!=null){
  19.                 var noderts=stateRT.getNoderts();
  20.                 if (noderts != null) {
  21.                                         for(var it = noderts.iterator(); it.hasNext();) {
  22.                                                 var nodeRT = it.next();;
  23.                                                 if (isContains(fns,nodeRT)) {
  24.                                                         var author = doc.getAuthor();
  25.                                                         var authorid="";
  26.                                                         if (author!=null){
  27.                                                                 authorid=author.getId();
  28.                                                         }
  29.                                                         var userid = getWebUser().getId();
  30.                                                         continue;

  31.                                                 } else {
  32.                                                         rtn =  "无法删除审批中的文件";                                                       
  33.                                                         break;
  34.                                                 }
  35.                                         }
  36.                              }            
  37.             }
  38.                 }
  39.         }
  40.         return rtn;
  41. }
  42. ps:调用:
  43. 在删除的动作前脚本中调用语法如下:
  44. #inclue "函数库名";
  45. isDelByState()
复制代码
实例二:
  1. var params = getParameter("_selects");   
  2. var docids = splitText(params,";");
  3. var rtn ="";
  4. for(var i=0;i<docids.length;i++)   
  5. {
  6.    var statelabel = findDocument(docids[i]).getStateLabel();  
  7.    if( statelabel != null && statelabel != "" )
  8.    {
  9.      rtn = "勾选的记录存在流程数据,不能删除";      
  10.      break;
  11.    }

  12. }
  13. rtn;
复制代码

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 17:28

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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