#camunda
#camunda
Вопрос:
Я хотел бы получить доступ к переменной процесса во встроенной форме, но я не могу этого сделать. Я просмотрел документацию по адресу https://docs.camunda.org/manual/7.8/reference/embedded-forms/javascript/examples / а также с помощью примеров на https://github.com/camunda/camunda-bpm-examples/tree/master/usertask/task-form-embedded-serialized-java-object и я думаю, что я освоился с этим, но следующий код просто не работает, хотя кажется, что он равен 1: 1 с документацией.
Возможно, проблема в том, что переменная, к которой я пытаюсь получить доступ, — это LinkedHashMap (созданная как mVariables = ['something': 'foo']
в Groovy)
Следующий фрагмент ничего не показывает в списке задач Camunda.
<form role="form" name="form" xmlns="http://www.w3.org/1999/html">
<script cam-script type="text/form-script">
camForm.on('form-loaded', function() {
camForm.variableManager.fetchVariable('mVariables');
});
camForm.on('variables-fetched', function() {
$scope.mVariables= camForm.variableManager.variable('mVariables').value;
});
</script>
<h1>{{mVariables.something}}</h1>
<p ng-bind="mVariables.something"></p>
<form>
Не мог бы кто-нибудь, пожалуйста, предоставить рабочий минимальный пример чтения переменной процесса, которая является LinkedHashMap?
Ответ №1:
На самом деле, LinkedHashMap не может быть передан, как я предложил. Это написано в сером поле в верхней части этого сайта документации: https://docs.camunda.org/manual/7.8/reference/embedded-forms/java-objects /
Я решил свою проблему, разделив карту на отдельные переменные, которые затем можно прочитать во встроенной форме следующим образом:
<form role="form" name="form" xmlns="http://www.w3.org/1999/html">
<script cam-script type="text/form-script">
camForm.on('form-loaded', function() {
camForm.variableManager.fetchVariable('mVariableFoo');
camForm.variableManager.fetchVariable('mVariableBar');
});
camForm.on('variables-fetched', function() {
$scope.mVariableFoo = camForm.variableManager.variable('mVariableFoo').value;
$scope.mVariableBar = camForm.variableManager.variable('mVariableBar').value;
});
</script>
<h1>{{mVariableFoo}}</h1>
<p>{{mVariableBar}}</p>
<form>