电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何获取【驳回再次提交回到本节点】参数,并根据该参数控制提交节点单据字段的锁定性

来源:金蝶云社区作者:金蝶2024-09-232

如何获取【驳回再次提交回到本节点】参数,并根据该参数控制提交节点单据字段的锁定性

1 业务背景

打回单据,希望能将“驳回后再次提交时直接回到本节点”反写在单据的固定字段值上,再根据单据上的该字段判断是否锁定对应的字段值,如打回再次提交直接回到本节点时,不允许修改单据字段值例如金额、部门等信息。

2 思路与方案

方式一:写节点离开时的插件,可以通过流程实例获取变量的方式,获取到这个值,键值为:rejectBackToNode

方式二:在单据界面插件直接获取rejectBackToNode参数值

获取流程实例id:

a)WorkflowServiceHelper#getProcessInstanceIdByBusinessKey

b)实体【流程变量实例(wf_variableinstance】 用流程实例id和rejectBackToNode变量作为条件,查这个实体

Long processInstanceIdByBusinessKey = WorkflowServiceHelper.getProcessInstanceIdByBusinessKey("单据id");
//构造查询条件
QFilter filter = new QFilter("processinstanceid",QFilter.equals,processInstanceIdByBusinessKey);
filter.and(new QFilter("name",QFilter.equals,"rejectBackToNode"));
DynamicObject[] wfVariableinstances = BusinessDataServiceHelper.load("wf_variableinstance", "typename,name,textvalue", new QFilter[]{filter});
for (DynamicObject wfVariableinstance : wfVariableinstances) {
    Object textvalue = wfVariableinstance.get("textvalue");
    if(textvalue instanceof Boolean){
    }
}

3 实现步骤

以下以方式一为例子

步骤1:

创建单据kdec_bill0520,并维护相关字段

2、配置工作流,开启相关节点参数允许选择驳回后是否重走

4、编写工作流插件并注册

public class DemoPlugin02 implements Plugin, IWorkflowPlugin {
    @Override
    public void notify(AgentExecution execution) {
        //获取驳回后再次提交时直接回到本节点参数
        String rejectBackToNode = (String) execution.getVariable("rejectBackToNode");
        if(StringUtils.isNotEmpty(rejectBackToNode)){
            //反写参数到单据的固定字段值上
            String businessKey = execution.getBusinessKey();
            DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(businessKey,"kdec_bill0520");
            dynamicObject.set("kdec_checkboxfield",Bool

如何获取【驳回再次提交回到本节点】参数,并根据该参数控制提交节点单据字段的锁定性

1 业务背景打回单据,希望能将“驳回后再次提交时直接回到本节点”反写在单据的固定字段值上,再根据单据上的该字段判断是否锁定对应的字...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信