电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-235

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

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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信