[二开知识]V9版本如何开发后台任务
【应用场景】
二开实现后台任务接口。
【注意事项】
由于V9版本后台任务接口做了调整,需要按照新的方式来实现后台任务,如果升级后出现以前的自定义后台任务无法运行的情况,可以临时调整Common.config中的参数<add key="IsForbidComputeTaskCheck" value="true"/>,建议后续调整后台任务为新的实现方式,然后再将此参数去除。
【案例演示】
新增一个测试的后台任务实现,并演示如何执行该任务。
【实现步骤】
<1>编写后台任务实现类,代码如下。
/// <summary> /// V9测试计算任务 /// </summary> public class V9TestComputeTask : IComputeTaskExecutor { public void Execute(ComputeContext ctx) { var sv = ServiceFactory.GetService<IBackAppService>(ctx.Task.BOSContext); string customPara = ""; if (ctx.Task.PropertyId > 0) { //获取自定义参数 var computeTaskPara = sv.GetTaskPropery(ctx.Task.BOSContext, ctx.Task.PropertyId); if (computeTaskPara != null) { customPara = computeTaskPara.PropertyString;//获取自定义参数 } } //todo 执行用户自定义逻辑 } }
<2>编写表单插件执行该后台任务,代码如下:
[HotUpdate,Description("单据测试V9插件")] public class TestBillPlugIn : AbstractBillPlugIn { public override void AfterButtonClick(AfterButtonClickEventArgs e) { base.AfterButtonClick(e); if (e.Key.EqualsIgnoreCase("F_uNW_Button_qtr")) { var sv = Kingdee.BOS.Contracts.ServiceFactory.GetService<IBackAppService>(this.Context); BackAppTask t = new BackAppTask(); t.ComputeId = Guid.NewGuid().ToString(); t.BOSContext = this.Context; t.OriginatorId = this.Context.UserId; t.ExecutorType = typeof(V9TestComputeTask);//后台任务实现逻辑 t.Status = ComputeStatus.Ready; t.Priority = ComputePriority.Immediately; var backService = ServiceFactory.GetService<IBackAppService>(this.Context); string customPara = "testdata";//自定义参数 var prop = backService.CreateTaskProperty(this.Context, customPara);//存储自定义参数 t.PropertyString = prop.Id.ToString();//将自定参数Id传回BackAppTask参数 t.SerializeProperties(); sv.SubmitTask(this.Context, t);//提交后台任务 } } }
【金蝶云星空BOS二次开发案例演示】
https://vip.kingdee.com/article/94751030918525696
[二开知识]V9版本如何开发后台任务
【应用场景】二开实现后台任务接口。【注意事项】由于V9版本后台任务接口做了调整,需要按照新的方式来实现后台任务,如果升级后出现以前的...
点击下载文档
本文2024-09-23 03:57:18发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162170.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章