二开案例.列表插件.工作流提交
【应用场景】
模拟列表界面,提交单据并启动工作流。
【案例演示】
币别,列表菜单新增【工作流提交】tbListSubmit,点击后,根据当前单据的工作流配置,批量执行提交操作。
【实现步骤】
<1>编写列表插件,代码如下。
using Kingdee.BOS.Business.Bill.Operation.Workflow; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using Kingdee.BOS.Workflow.Models.Template; using Kingdee.BOS.Workflow.ServiceHelper; using System.ComponentModel; using System.Linq; namespace Jac.XkDemo.BOS.Business.PlugIn { /// <summary> /// 【列表插件】工作流提交 /// </summary> [Description("【列表插件】工作流提交"), HotUpdate] public class WorkflowListSubmitListPlugIn : AbstractListPlugIn { public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (e.BarItemKey.EqualsIgnoreCase("tbListSubmit")) { ListSubmit(); } } private void ListSubmit() { if (this.ListView.CurrentSelectedRowInfo == null) { this.View.ShowWarnningMessage("没有选择任何数据,请先选择数据!"); return; } var submitOperation = this.View.BillBusinessInfo.GetForm().FormOperations.FirstOrDefault(o => o.OperationId == 9); if (submitOperation == null) { return; } var ids = this.ListView.SelectedRowsInfo.Select(o => (object)o.PrimaryKeyValue).ToArray(); var formId = this.View.BillBusinessInfo.GetForm().Id; // 获取流程模板类型 var wfTemplatePermissionResults = WorkflowSubmitServiceHelper.ValidatePermission(this.Context, formId, ids, submitOperation.PermissionItemId); if (wfTemplatePermissionResults[0].TemplateModels.Length > 1) { // TODO:同时存在工作流模板和审批流模板,请选择模板类型 } var param = new TemplateParameter() { TemplateModel = wfTemplatePermissionResults[0].TemplateModels[0], BillBusinessInfo = this.View.BillBusinessInfo, OriginatorPost = null }; // 获取流程模板 var findPrcResults = WorkflowSubmitServiceHelper.GetTemplateProcessList(this.View.Context, param, ids); var findPrcResult = findPrcResults[0]; if (findPrcResult.ProcessIdList.Count > 1) { // TODO:同时存在多个满足条件的流程模板,请选择模板 } if (SubmitHelper.IsNoTemplate(wfTemplatePermissionResults)) { // 传统审批,直接提交 var result = BusinessDataServiceHelper.Submit(this.Context, this.View.BillBusinessInfo, ids, ""); if (result.IsSuccess) { this.View.ShowMessage("普通提交成功!"); } // TODO return; } else { // 工作流审批 var result = BOSWorkflowServiceHelper.ListSubmit(this.Context, this.View.BillBusinessInfo, null, ids, findPrcResults, null); if (result.IsSuccess) { this.View.ShowMessage("工作流提交成功(工作流启动成功)!"); } // TODO return; } } } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展采购订单,注册列表插件,保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开币别列表,点击菜单【工作流提交】,即可启动工作流。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.列表插件.工作流提交
【应用场景】模拟列表界面,提交单据并启动工作流。【案例演示】币别,列表菜单新增【工作流提交】tbListSubmit,点击后,根据当前单据的工...
点击下载文档
本文2024-09-23 03:33:30发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-159628.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章