flowable跳过,或签

如果发起人在审批节点中要自动跳过这个人,
或签的时候,存在的问题是只有一个人可以看见,需要的是,指定的人的集合都可以看到此审批并审批
方便的话远程操作一下
流程是用ui设计器来做的
跳过表达式未生效

该回答引用ChatGPT

如果您想在审批节点中自动跳过某个人,可以使用一个"Skip"节点。当流程执行到"Skip"节点时,会自动跳过该节点指定的人员并直接到达下一个节点。在"Skip"节点的表达式中,您可以使用Java代码编写逻辑,以确定哪些人员需要被跳过。

如果您正在使用一个或签("Parallel Approval")节点,并且希望所有指定的人都能看到此审批并进行审批,而不仅仅是其中一个人,那么可以将该节点配置为"按最小投票数"("Minimum Votes")模式。在这种模式下,只有在指定的所有人都已经审批之后,流程才会继续执行。在这种方式下,每个人都可以看到此审批,并进行相应的审批操作。

关于表达式未生效的问题,可能是因为表达式的语法有误,或者表达式中使用的变量未被正确赋值。您可以通过查看系统日志或调试器来查找原因,并进行相应的修复。

示例如下:


// 设置审批节点的类型为或签
node.setType(NodeType.PARALLEL_APPROVAL);

// 设置最小投票数为2(假设有3个审批人员)
node.setMinVotes(2);

// 设置审批人员列表
List<String> approvers = new ArrayList<>();
approvers.add("123456");
approvers.add("234567");
approvers.add("345678");
node.setApproverIds(approvers);

在上面的代码中,首先将审批节点的类型设置为或签。然后,将最小投票数设置为2,这意味着所有3个审批人员都需要进行审批才能继续执行。最后,设置审批人员列表,使所有人员都可以看到此审批,并进行相应的审批操作。

参考GPT和自己的思路,在Java中,如果您需要在审批节点中跳过某个人,则可以使用Activiti提供的"skip"功能。这个功能允许您在运行时跳过流程中的某些任务或用户,而不是等待他们完成任务或提交表单。

要在Activiti中使用跳过功能,您需要设置"skipExpression"属性。这个属性是一个Boolean表达式,可以用于判断是否跳过某个任务。例如,您可以使用以下表达式来跳过特定用户:

${approvedBy == 'John Doe'}

其中,"approvedBy"是您在流程中设置的变量,它包含正在审批的用户的姓名。如果这个变量的值为"John Doe",则这个表达式的结果为true,任务将被跳过。

如果您需要跳过一组用户,而不是单个用户,您可以使用Activiti提供的组任务功能。在组任务中,一个任务被分配给一个组,而不是一个特定的用户。当组中的任何一个用户完成任务时,任务就被认为是已完成的。

要使用组任务,您可以将任务分配给一个组,如下所示:

taskService.addCandidateGroup(taskId, "managers");

在这个例子中,任务被分配给名为"managers"的组。所有属于这个组的用户都可以看到任务并进行审批。

请注意,这些代码片段只是用于演示如何使用Activiti中的跳过和组任务功能。您需要根据您的具体需求对它们进行修改和适当的扩展。

在UI设计器中实现或签中多人可见和审批的方式,可以通过以下步骤:

在流程图中选择或签节点,然后在右侧的属性窗口中,找到“参与者”选项。
在“参与者”选项中,选择“指定参与者”,然后点击“编辑”按钮。
在“指定参与者”弹窗中,可以添加多个参与者,并且选择他们的审批顺序和审批方式(顺序审批或并行审批)。
保存修改后的流程图。
这样,多个参与者就可以同时看到该审批并进行审批了。

这个前端处理啊 我正在做的项目就是 后端用flowable, 前端是vue, 再beforeMount中初始化node节点 在对应节点自定义处理事件 然后你的流程上有表达式,你只需要在自定义处理事件里面把这个表达式所需要的条件给赋值就好了

https://www.baidu.com/link?url=1qI-Z2wV2JMeo71jf1GOmhRnUDzzOvrkVrog4i9mJiep2wYEwEbITeJka_2fLavnfID-uWFi70FGyMhdVBRgLVtBZJmBBLnIKDkkFLSTpd4wUml34gfC4Mi1jQwE4Xa-&wd=&eqid=b177bbbf000fc0ed0000000263fdda56