工作流流程管理中心和流程报表按组织隔离方案

1、流程管理按组织隔离
首先编写流程管理列表插件,参考如下:
using Kingdee.BOS.Core;
using Kingdee.BOS.ServiceHelper;
using System.Text;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.Bill;
namespace DSF.Workflow.PlugIns
{
/// <summary>
/// 流程管理_流程实例插件
/// </summary>
public class ProcManageProcInstExt : AbstractListPlugIn
{
public override void PrepareFilterParameter(Core.List.PlugIn.Args.FilterArgs e)
{
List<long> lstOrgs = PermissionServiceHelper.GetPermissionOrg(this.Context, new Kingdee.BOS.Core.Permission.BusinessObject() { Id = "WF_ProcManager" },
Kingdee.BOS.Core.Permission.PermissionConst.View);
if (lstOrgs.Count > 0)
{
string sql = string.Format(" FTmpId.FOrgId.Id in ({0})", string.Join(",", lstOrgs));
e.AppendQueryFilter(sql);
}
else
{
e.AppendQueryFilter("1<>1");
}
}
}
}上述插件代码主要是获取当前用户流程管理中心有权限的组织,然后将组织拼接到当前的查询条件中,用来控制流程实例列表仅显示自己有权的组织的流程。
然后打开设计器,打开流程管理实例表单,点查找按钮输入“WF_ProcInstBill”查找,双击打开流程实例表单,右键扩展修改表单属性,打开列表,注册上面编写的列表插件,然后保存元数据。

再打开流程管理界面看效果,应该就已经按组织进行隔离了。是不是很简单?【emoji】
2、流程报表按组织隔离
以流程时间耗费分析报表为例,思路如下,控制了过滤界面的组织字段,仅能查询有权限的组织,这样就能控制整个报表的组织权限了。
设计器打开报表过滤界面,先把组织字段设置为必录,然后编写过滤界面表单插件,针对组织字段添加组织过滤条件。报表过滤界面如下,扩展后先修改组织字段必录属性:

编写插件,代码参考如下:
using Kingdee.BOS.Core.Bill; using Kingdee.BOS.Core.CommonFilter.PlugIn; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.Report.PlugIn; using Ki
工作流流程管理中心和流程报表按组织隔离方案
1、流程管理按组织隔离 首先编写流程管理列表插件,参考如下:using Kingdee.BOS.Core;using Kingdee.BOS.ServiceHelper;using System.T...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



