二开案例.单据插件.工作流提交
【应用场景】
模拟在单据界面上,提交单据并启动工作流。
【案例演示】
币别,新增菜单【工作流提交】tbBillSubmit,点击后,根据当前单据的工作流配置,执行提交操作。
【实现步骤】
<1>编写单据插件,代码如下。
using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using Kingdee.BOS.Workflow.Models.EnumStatus; 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 WorkflowBillSubmitPlugIn : AbstractBillPlugIn { public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (e.BarItemKey.EqualsIgnoreCase("tbBillSubmit")) { BillSubmit(); } } private void BillSubmit() { var formId = this.View.BillBusinessInfo.GetForm().Id; var submitOperation = this.View.BillBusinessInfo.GetForm().FormOperations.FirstOrDefault(o => o.OperationId == 9); if (submitOperation == null) { return; } var ids = new[] { this.Model.DataObject[0] }; var billStatus = ObjectUtils.Object2String(this.View.BillBusinessInfo.GetBillStatusField().DynamicProperty.GetValue(this.Model.DataObject)); if (billStatus != "A" && billStatus != "D") { // 单据状态异常,无法提交 return; } var orgId = this.Context.CurrentOrganizationInfo.ID; // 有主业务组织,取主业务组织,没有主业务组织,取当前登录组织 // 获取流程模板类型 var wfTemplatePermissionResult = WorkflowSubmitServiceHelper.ValidatePermission(this.Context, formId, orgId, submitOperation.PermissionItemId); if (wfTemplatePermissionResult.TemplateModels.Length > 1) { // TODO:同时存在工作流模板和审批流模板,请选择模板类型 } var param = new TemplateParameter() { TemplateModel = wfTemplatePermissionResult.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 (findPrcResult.Result == TemplateResultType.Normal) { // 工作流审批 var result = BOSWorkflowServiceHelper.BillSubmit(this.Model.DataObject, this.Context, findPrcResult.ProcessIdList[0], null, this.View.BillBusinessInfo, null); if (result.IsSuccess) { this.View.ShowMessage("工作流提交成功(工作流启动成功)!"); } // TODO return; } else if (findPrcResult.Result == TemplateResultType.OnlySubmit) { // 传统审批,直接提交 var result = BusinessDataServiceHelper.Submit(this.Context, this.View.BillBusinessInfo, ids, ""); if (result.IsSuccess) { this.View.ShowMessage("普通提交成功!"); } // TODO return; } } } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展币别,注册表单插件,保存元数据,开发完毕。
【功能验证】
打开币别列表,新增币别,点击菜单【工作流提交】,工作流启动成功。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.单据插件.工作流提交
【应用场景】模拟在单据界面上,提交单据并启动工作流。【案例演示】币别,新增菜单【工作流提交】tbBillSubmit,点击后,根据当前单据的工...
点击下载文档
上一篇:二开案例.列表插件.工作流提交下一篇:金蝶云星空BOS二次开发案例演示
本文2024-09-23 03:33:31发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-159629.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章