我找不到任何东西,所以我在这里要求一点帮助!我确信它非常容易,但无论如何我都被卡住了。
我创建了一个MVC应用程序,以便通过他们的REST api从Camunda收集数据(在AJAX中)。我需要获得的东西的一个属性(更确切地说是任务)是受让人"。这个值通常用一个用户名填充,但它可以是空的(在这种情况下,它填充了" null")。
但问题在于:我无法使用此值收集任务(事实上,我希望显示给定用户的每项任务,包括未分配的任务对任何人,如果他们愿意,他们可以声称他们自己)。我在AJAX中使用的URL是这样的:
http://localhost:8080/engine-rest/task?assignee=peter
我已经尝试过这些参数但没有成功(根本没有任何显示任务;甚至彼得也是如此):
task?assignee=peter%2Cundefined
task?assignee=peter%00
task?assignee=peter%2Cnull
有什么想法吗?
答案 0 :(得分:1)
我不认为通过Camunda REST API可以做到这一点。如果我没有弄错,则无法指定条件assignee = peter OR assignee is null
。
我可以想到两个选择:
一个人使用task?assignee=peter
,另一个人使用task?unassigned=true
并加入列表(他们应该是分离的)。有关参数的说明,请参阅http://docs.camunda.org/latest/api-references/rest/#task-get-tasks。
本机查询允许您表达任意条件,但只能使用Java API执行。有关本机查询的详细信息,请参阅http://docs.camunda.org/latest/guides/user-guide/#process-engine-process-engine-api-native-queries。
在此示例中,代码为
List<Task> tasks = taskService.createNativeTaskQuery()
.sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T WHERE T.ASSIGNEE_ = #{assignee} OR T.ASSIGNEE_ IS NULL")
.parameter("assignee", "peter")
.list();
如果要在REST API中公开它,在自定义JAX-RS应用程序中嵌入和扩展其资源可能是一种方法,请参阅http://docs.camunda.org/latest/api-references/rest/#overview-embedding-the-api