嵌入式表单文本区域中的内容未设置为过程变量

时间:2019-01-02 10:50:06

标签: camunda

在用户任务中,嵌入式表单标记为

...
  <div class="form-group">
    <textarea class="form-control"
           cam-variable-name="jobDescription"
           cam-variable-type="String"
           name="jobDescription">
    </textarea>
  </div>
...

已设置了一个过程变量jobDescription-已通过Tomcat日志进行了验证。

问题在于textarea的内容未设置为过程变量的内容。

正在使用Camunda 7.10,我已经检查了Camunda manual 7.10

如果将textarea更改为input type="text",则显示正确的内容。

1 个答案:

答案 0 :(得分:0)

这适用于Camunda 7.10。

要填充textarea,该表单需要使用Camunda表单事件

<script cam-script type="text/form-script">   

  var variableManager = camForm.variableManager;

  var jobRequestInfo = $scope.jobRequestInfo = {};

  var jobDescription = $scope.jobDescription = {};


  camForm.on( 'form-loaded', function() {

    camForm.variableManager.fetchVariable( 'jobRequestInfo' );

    camForm.variableManager.fetchVariable( 'jobDescription' );

  });

  camForm.on( 'variables-fetched', function() {

    $scope.jobRequestInfo = camForm.variableManager.variable( 'jobRequestInfo' ).value;

    $scope.jobDescription = camForm.variableManager.variable( 'jobDescription' ).value;

  });

  camForm.on( 'variables-applied', function() {

    $( '[name="jobDescription"]' ).val( $scope.jobDescription );

  });

  camForm.on( 'submit', function( ev ) {

    ;

  });

</script>

...
  <div class="form-group">
    <label for="jobDescription">Job Description</label>
    <textarea class="form-control"
           ng-model="jobRequestInfo.description"
           name="jobDescription"
           rows="20">
    </textarea>
  </div>
...

有两个过程范围的变量:

  • jobDescriptionString,其中填充了初始值。
  • jobRequestInfo一个POJO,其中包含字段description,该字段填充有最终的已编辑值。

请注意,Camunda并不完全支持诸如单选按钮之类的所有HTML类型,因此,除了基本表单之外,通常还需要使用Camunda表单事件。

同样,如上所述,使用Angular积分和POJO变量可以显着减少过程变量。