|
|
本帖最后由 spiral 于 2013-6-20 10:29 编辑
A:如何实现,记录流转过程中,不允许删除。
Q:具体实现脚本可参考下列函数实现思路
实例一:- // must include weblib,doclib,flowlib
- function isDelByState() { //草稿状态下可被删除
- var text = getParameterAsText("_selects");
- var rtn = "";
- if (text == "") {
- return "Please select document";
- }
-
- var docids = text.split(';');
- for (var i=0; i < docids.length; i++ ) {
- var doc = findDocument(docids[i]);
- var fns = null;
- if (doc != null) {
- fns = getStateMachineUtil().getFirstNodeList(doc.getId(), doc.getFlowid());
- }
- if (fns != null && fns.size() > 0) {
- var stateRT= doc.getState();
- if (stateRT!=null){
- var noderts=stateRT.getNoderts();
- if (noderts != null) {
- for(var it = noderts.iterator(); it.hasNext();) {
- var nodeRT = it.next();;
- if (isContains(fns,nodeRT)) {
- var author = doc.getAuthor();
- var authorid="";
- if (author!=null){
- authorid=author.getId();
- }
- var userid = getWebUser().getId();
- continue;
- } else {
- rtn = "无法删除审批中的文件";
- break;
- }
- }
- }
- }
- }
- }
- return rtn;
- }
- ps:调用:
- 在删除的动作前脚本中调用语法如下:
- #inclue "函数库名";
- isDelByState()
复制代码 实例二:- var params = getParameter("_selects");
- var docids = splitText(params,";");
- var rtn ="";
- for(var i=0;i<docids.length;i++)
- {
- var statelabel = findDocument(docids[i]).getStateLabel();
- if( statelabel != null && statelabel != "" )
- {
- rtn = "勾选的记录存在流程数据,不能删除";
- break;
- }
- }
- rtn;
复制代码 |
|