问题
我有几种Activiti任务类型,基类型为ServiceTask
和UserTask
。
一些ServiceTask
类型是Java实现,每个类型都不同。还有其他人。
我想在我的代码中区分它们。
问题
是否可以在任务中存储一些自定义属性/属性,如果可以,如何存储?
实施例:
实现简单日志记录功能的ServiceTask
应具有属性" TYPE"价值"记录"然后我可以稍后查询。
我尝试使用FieldExtension
,但是当我运行工作流程时,Activiti会抛出错误:
org.activiti.engine.ActivitiIllegalArgumentException: Field definition uses unexisting field 'TYPE'
CustomProperty
也是如此。
当然,我可以通过声明Java类中的字段来解决这个问题,但我需要一个适用于非Java服务任务和用户任务的解决方案。或者更好的是,如果可能的话,所有流量元素。
非常感谢!
答案 0 :(得分:4)
您可以在XML / Designer中定义字段:
def add_50_credits(self, request, queryset):
queryset.values('id').update(account_balance=F('account_balance') + 50)
self.message_user(request, "50 credits added.")
如果要访问Java代码中的字段,可以这样做:
<serviceTask id="javaService"
name="Java service invocation"
activiti:class="org.activiti.examples.bpmn.servicetask.ToUppercase">
<extensionElements>
<activiti:field name="text" stringValue="Hello World" />
</extensionElements>
</serviceTask>
如果要在UserTask中访问变量,则必须实现TaskListener而不是JavaDelegate。