Получение данных о процессной форме

Бин io.jmix.bpm.processform.ProcessFormDataExtractor предоставляет программный доступ к информации о форме процесса. Ниже показан пример REST‑контроллера, который использует этот бин для получения данных формы, связанной с запущенным экземпляром процесса.

@RestController
@RequestMapping("rest/bpm/process-form-data")
public class FormDataController {

    @Autowired
    private ProcessFormDataExtractor processFormDataExtractor;

    @GetMapping(produces = "application/json")
    public FormData getTaskFormData(
            @RequestParam(required = false) String taskId,
            @RequestParam(required = false) String processDefinitionId) {

        if (Strings.isEmpty(taskId) && Strings.isEmpty(processDefinitionId)) {
            throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "The taskId or processDefinitionId parameter has to be provided");
        }

        if (!Strings.isEmpty(taskId) && !Strings.isEmpty(processDefinitionId)) {
            throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "The request cannot contain both taskId and processDefinitionId.");
        }

        if (Strings.isEmpty(taskId)) {
            return processFormDataExtractor.getStartFormData(processDefinitionId); (1)
        } else {
            return processFormDataExtractor.getTaskFormData(taskId); (2)
        }
    }
}
1 При указании processDefinitionID будут возвращены данные стартовой формы процесса.
2 При указании taskID возвращаются данные формы соответствующей задачи.

Тело успешного ответа:

{
  "type": "jmix-screen",
  "screenId": "FormExample",
  "openMode": "DIALOG",
  "businessKey": null,
  "businessKeySource": null,
  "allowedProcessKeys": [],
  "fields": [],
  "outcomes": [],
  "formParams": [],
  "outputVariables": []
}
Обязательно защищайте эндпоинты приложения. Используйте примеры кода из раздела Кастомные эндпойнты в качестве руководства.