使用java代码创建flowable中设置多人审批userTask时,设置MultiInstanceLoopCharacteristics的collection鬼玩意

为啥要叫鬼玩意,因为这个东西因为作者的命名不太规范,导致花了好长时间去调试这个问题。因为里面提供了一个setCollectionString的方法,所以一直在调用这个方法去调试。(因为名字太像了)后来在github上专门提出这个问题后,官方作者给出了答案,其实是使用setInputDataItem这个方法。(内心mmp哦)。

Flowable 6.4 多实例会签 审批人设置、结果判断、会签后走向:https://blog.csdn.net/weixin_40147618/article/details/83548270 这个是关于这个属性别人给出的介绍可以去了解一下为啥需要这些标签,属性还有名称之类的

新发现的好链接的地址https://blog.csdn.net/qq_34758074/article/details/103330904

错误的用法:

 MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = new MultiInstanceLoopCharacteristics();
 multiInstanceLoopCharacteristics.setCollectionString("");

乍一看是不是很像给collection设值的

正确的写法

 MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = new MultiInstanceLoopCharacteristics();
 multiInstanceLoopCharacteristics.setInputDataItem("");

这是我自己在github上提出的问题,作者给的回答,附上github的地址

后来我看了下getInputDataItem()的方法调用链,在AbstractActivityBpmnParseHandler这个类中的60行调用,我差点气晕过去

		// flowable:collection
        if (StringUtils.isNotEmpty(loopCharacteristics.getInputDataItem())) {
            miActivityBehavior.setCollectionExpression(expressionManager.createExpression(loopCharacteristics.getInputDataItem()));
        }

至于setCollectionString方法用在哪个场景下 作者也没有说清楚。所以谨慎使用

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐