如何处理“待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批”场景
1 场景描述
待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批。
2 思路分析
针对以上场景,思路为:暂时将任务挂起,挂起的任务不可以处理,需要等到手动激活之后才能处理。
涉及到的方法:
kd.bos.servicehelper.workflow.WorkflowServiceHelper#suspendTaskById 用于挂起任务;
kd.bos.servicehelper.workflow.WorkflowServiceHelper#activateTaskById 用于激活任务。
为了完成场景,可以在wf_task元数据的列表界面添加两个工具栏按钮,一个用作“挂起”,另一个用作“激活”;同时编写列表插件。
3 思路实现
第一步:如图所示,在wf_task元数据的列表界面,添加两个工具栏按钮。
第二步:分析两个方法。都需要用到taskid和userid,并且“挂起”方法额外需要“挂起原因”。
第三步:需要获取userid和taskid;挂起原因可以自行拼接、指定。
userid的获取方法为:
long currUserId = RequestContext.get().getCurrUserId();
taskid在本方案中的获取方法为:
String pkvalue = selectedRow.getPrimaryKeyValue().toString();
因为需要注册插件的表单为wf_task,则pkvalue即为taskid;如业务单据中需要获取taskid,需要使用getTaskIdByBusinessKeyAndUserId方法。
第四步:将以上步骤在列表插件中实现。
package nm21.plugin.listPlugin; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.ILocaleString; import kd.bos.dataentity.entity.LocaleString; import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.form.control.Toolbar; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.workflow.WorkflowServiceHelper; import kd.sdk.plugin.Plugin; import java.util.EventObject; import static java.lang.Long.parseLong; /** * 标准单据列表插件 */ public class SuspendAndActivateListPlugin extends AbstractListPlugin implements Plugin { @Override public void registerListener(EventObject e) { super.registerListener(e); //监听按钮点击 this.addItemClickListeners("toolbarap"); } @Override public void itemClick(ItemClickEvent evt) { super.itemClick(evt); //待办任务列表中,挂起选中任务。nm21_baritemap为wf_task元数据的列表界面添加的工具栏按钮,功能为“挂起” if ("nm21_baritemap".equals(evt.getItemKey())) { //获取用户id long currUserId = RequestContext.get().getCurrUserId(); //列表多选场景 ListSelectedRowCollection selectedRows = this.getSelectedRows(); for (ListSelectedRow selectedRow : selectedRows) { //获取任务id,因为加按钮和插件就是在wf_task这个元数据内,所以pk值即为taskid String pkvalue = selectedRow.getPrimaryKeyValue().toString(); if (null != pkvalue && parseLong(pkvalue) != 0) { //挂起原因,可以根据场景自行设计、拼接 ILocaleString reason = new LocaleString("待核实"); //根据用户id、任务id以及挂起原因,来挂起指定任务 WorkflowServiceHelper.suspendTaskById(parseLong(pkvalue), currUserId, reason); } } //挂起之后,需要刷新列表前端展示,将状态字段显示为“已挂起“ this.getView().invokeOperation("refresh"); } //待办任务列表中,激活选中的已挂起的任务。nm21_baritemap1为wf_task列表添加的另一个工具栏按钮,功能为“激活” if ("nm21_baritemap1".equals(evt.getItemKey())) { //获取用户id long currUserId = RequestContext.get().getCurrUserId(); //列表多选场景 ListSelectedRowCollection selectedRows = this.getSelectedRows(); for (ListSelectedRow selectedRow : selectedRows) { //获取任务id,因为加按钮和插件就是在wf_task这个元数据内,所以pk值即为taskid String pkvalue = selectedRow.getPrimaryKeyValue().toString(); if (null != pkvalue && parseLong(pkvalue) != 0) { //根据用户id、任务id,激活已挂起的任务 WorkflowServiceHelper.activateTaskById(parseLong(pkvalue), currUserId); } } //激活之后,需要刷新列表前端展示,将状态字段显示为”待审批“ this.getView().invokeOperation("refresh"); } } }
第五步:测试功能。进入消息中心待办列表界面,选中几条任务,点击按钮“挂起”,观察状态是否为“已挂起”;同时尝试处理这些任务,观察是否无法处理。然后再选中“挂起”的任务,点击“激活”按钮,观察是否状态更新为“待处理”。
如何处理“待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批”场景
1 场景描述待办任务列表中,对一些任务暂时不需要或不想审批,需核实确认之后再处理;担心误点审批。2 思路分析针对以上场景,思路为:暂...
点击下载文档
本文2024-09-23 00:58:39发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142968.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
热门文章