PLM.对象启动流程增加自定义校验条件
【应用场景】
对象在提交状态的变更中,控制不允许启动流程
【案例演示】
文档库列表提交状态的变更对象不允许启动流程
【实现步骤】
1>编写表单插件(如何编写二开插件配置等请参考:二次开发扩展程序开发之插件模式https://vip.kingdee.com/article/83591896433330944?productLineId=1其他星空PLM开发指南也可以参考 【汇总】星空PLM二开指南(持续更新)https://vip.kingdee.com/article/329914697153905408?productLineId=1&isKnowledge=2更多详细的金蝶云星空BOS二次开发指南:https://vip.kingdee.com/article/94751030918525696?productLineId=1&isKnowledge=2)
添加引用:
代码如下:
namespace ISV.StartFlow.Common.BusinessEntity { [Description("启动流程校验")] public class StartFlowList : AbstractPLMListPlugIn { public override void BeforeDoOperation(BeforeDoOperationEventArgs e) { if (e.Operation.FormOperation.Operation == "DoStartFlow") { var lst = this.ListView.SelectedRowsInfo; var selectDatas = lst.Select(x => x.DataRow).ToList().ToDictionary(w => w["FID"], w => long.Parse(w["FCategoryID_Id"].ToString())); var pdmObjList = new List<DynamicObject>(); foreach (var objs in selectDatas.GroupBy(w => w.Value)) { var pdmobj = DomainObjectManager.Instance(PLMContext, objs.Key).Load(PLMContext, objs.Select(w => w.Key).ToArray()); pdmObjList = pdmObjList.Concat(pdmobj).ToList(); } foreach (var pdmobj in pdmObjList) { if (pdmobj != null) { bool isChange = pdmobj.GetDynamicObjectItemValue<bool>("IsChange"); bool isChangeObject = pdmobj.GetDynamicObjectItemValue<bool>("IsChangeObject"); string lifeCircleStage = pdmobj.GetDynamicObjectItemValue<string>("LifeCircleStage"); string code = pdmobj.GetDynamicObjectItemValue<string>("Code"); LocaleValue name = pdmobj.GetDynamicObjectItemValue<LocaleValue>("Name"); if (isChange && lifeCircleStage == "AJ") { this.View.ShowWarnningMessage(string.Format("名称:{0} 编码:{1},对象在提交状态的变更中,不允许提交;", name, code)); e.Cancel = true; return; } } } base.BeforeDoOperation(e); } } } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展研发文档,注册列表插件,保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开文档库列表,可以看到提交状态的变更对象不允许启动流程。
【参考资料】
【汇总】星空PLM二开指南(持续更新)https://vip.kingdee.com/article/329914697153905408?productLineId=1&isKnowledge=2
【合辑】金蝶云.星空 PLM知识合辑(持续更新) https://vip.kingdee.com/article/329662872047302912?productLineId=1&isKnowledge=2
二次开发扩展程序开发之插件模式 https://vip.kingdee.com/article/83591896433330944?productLineId=1
PLM云 -- 基于BOS平台的二次开发扩展 https://vip.kingdee.com/article/10875?productLineId=1
PLM云 -- 基于配置系统的二次开发扩展(对象属性扩展)https://vip.kingdee.com/article/10887?productLineId=1
PLM云 -- 基于标准业务系统的二次开发扩展 https://vip.kingdee.com/article/10901?productLineId=1
金蝶云星空BOS二次开发指南 https://vip.kingdee.com/article/94751030918525696?productLineId=1&isKnowledge=2
金蝶云星空数据字典V7.6 https://open.kingdee.com/K3Cloud/WenKu/DocumentView.aspx?docId=102613
PLM.对象启动流程增加自定义校验条件
本文2024-09-23 03:02:23发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-156250.html