我正在使用 camunda_bpm_api
(git url和drupal8 camunda+drupal8 sample module中的模块)模块将我在drupal中的自定义应用程序连接到camunda服务器。
我正在使用以下函数检索 process definitions
:
private function fetchProcessDefinitions() {
return \Drupal::service('camunda_bpm_api.process_definition')->getList();
}
这是正常的。
如何检索分配给特定用户的任务?我尝试如下:
public function fetchTaskList() {
$payload = array('assignee' => 'nimyav');
return \Drupal::service('camunda_bpm_api.task')->getList($payload);
}
但 retriveing all the tasks
,无论 assignee
?
我如何实现这一目标?任何帮助表示赞赏。
答案 0 :(得分:2)
只是要仔细检查您是否得到了结果,如果您假设您的BPM engin是在本地安装的,请致电curl -X GET "http://localhost:8080/engine-rest/engine/default/task?assignee=nimyav" -H "accept: application/json"
会发生什么?如果您不使用curl,则只需使用网址http://localhost:8080/engine-rest/engine/default/task?assignee=nimyav打开浏览器即可。您是否只看到分配给您的任务?
通常,您的请求似乎没问题,但是没有将第二个参数传递给您在HTTP GET模式下使用它的getList()
。如果查看Camunda REST docs,您会注意到一些方法可用作GET和POST方法。特别是,我认为Valentin设计getList
方法在HTTP POST模式下工作,因为它在请求体中传递参数(请查看camunda_bpm_api/src/BPMPlatform/BaseService.php
以获取更多详细信息。)
请尝试拨打此类服务:
public function fetchTaskList() {
$payload = array('assignee' => 'nimyav');
$usePost = TRUE;
return \Drupal::service('camunda_bpm_api.task')->getList($payload, $usePost);
}