如何对执行的长任务进行页面关闭前干预
【应用场景】
在关闭当前业务对象时,检测是否有由此业务对象产生的后台任务正在运行中,如有,则给出相应提示。
【注意事项】
支持版本:PT-151005 [8.2.0.20231109]。
【案例演示】
二开表单,执行长任务时,在页面关闭的时候自动检测是否可以关闭。
【实现步骤】
<1>编写表单插件,代码如下:
namespace BOSTest.Zy.PlugIn { [HotUpdate] /// <summary> /// 长任务页面关闭测试 /// </summary> [Description("长任务页面关闭测试")] public class LongWorkerPlugIn : AbstractDynamicFormPlugIn { public override void ButtonClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ButtonClickEventArgs e) { base.ButtonClick(e); if (e.Key.EqualsIgnoreCase("FButton_qtr")) { StartTask(); } } private void StartTask() { LongTaskWatcher longTask = new LongTaskWatcher(); longTask.IsForbidCancel = false;//是否禁止强制关闭(默认false可以强制关闭,如果有超时,则超时后可以强制关闭) longTask.TimeOut = 20;//超时时间(单位:秒,超时后将强制退出) longTask.IsTimeOutIgnoreConfirm = false;//超时忽略消息提醒 this.View.AddLongTaskWatcher(longTask); Task.Factory.StartNew(() => { //执行长任务... //模拟进度 try { Thread.Sleep(1000); RefeshTask(longTask.WatcherId, 10); Thread.Sleep(2000); RefeshTask(longTask.WatcherId, 30); Thread.Sleep(5000); RefeshTask(longTask.WatcherId, 100); } finally { //释放长任务 this.View.ReleaseLongTaskWatcher(longTask.WatcherId); } }); } /// <summary> /// 刷新进度 /// </summary> /// <param name="watcherId">监控Id</param> /// <param name="progress">进度</param> private void RefeshTask(string watcherId, int progress) { JSONObject jo = new JSONObject(); jo["LastUpdateTime"] = DateTime.Now; jo["BeforeCloseMessage"] = string.Format("正在进行XXX任务(进度{0})", progress); this.View.UpdateLongTaskWatcher(watcherId, jo); } } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE打开二开单据,注册表单插件,保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开二开单据,执行自定义长任务。
<2>关闭时会有相应提示。
【金蝶云星空BOS二次开发案例演示】
https://vip.kingdee.com/article/94751030918525696
如何对执行的长任务进行页面关闭前干预
【应用场景】在关闭当前业务对象时,检测是否有由此业务对象产生的后台任务正在运行中,如有,则给出相应提示。【注意事项】支持版本:PT-1...
点击下载文档
本文2024-09-23 04:17:02发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164308.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf
热门文章