检索分配给 camunda 中特定用户的任务列表

Retrieve Task List assigned to a particular user in camunda

我正在使用 camunda_bpm_api (git url and the module in 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 ?

我如何做到这一点?感谢您的帮助。

只是为了仔细检查您是否得到了结果,假设您的 BPM engin 安装在本地,如果您调用 curl -X GET "http://localhost:8080/engine-rest/engine/default/task?assignee=nimyav" -H "accept: application/json" 会发生什么?如果您不使用 curl,您可以直接使用 URL http://localhost:8080/engine-rest/engine/default/task?assignee=nimyav 打开浏览器。您是否只看到分配给您的任务?

一般来说,您的请求似乎没问题,但没有向 getList() 传递第二个参数,您正在 HTTP GET 模式下使用它。如果您查看 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);
}