【问题标题】:File variable are set to null when go back to previous task返回上一个任务时文件变量设置为空
【发布时间】:2020-10-27 21:10:30
【问题描述】:

模拟问题的流程

  1. Task1 带有下载元素¹,如果有文件则显示;
  2. Task2 带有一个上传输入文件元素² 和一个批准与否(批准)变量; 请注意,我可以在下一个任务(例如 task03)下载文件,但不能在上一个任务中下载
  3. 批准 = 假;
  4. Task1 使用 file_task2 变量显示下载元素¹; 问题在这里

¹<a id="showDownloadFileTask2" cam-file-download="file_task2"></a>

²嵌入 formTask2 的输入元素:

    <input type="file"
            cam-variable-name="file_task2"
            cam-variable-type="File"/>

更深入地解释问题

我在嵌入式表单中使用了来自 cam-script 的 console.log

  <script cam-script type="text/form-script">
        $scope.userName = '';
        var variableManager = camForm.variableManager;

        camForm.on('form-loaded', function() {
              try {
                variableManager.fetchVariable('file_task2');
              } 
              catch (err) {
                console.log(err);
              }
        });

       camForm.on('variables-fetched', function() {
          console.log("file = "+variableManager.variableValue('file_task2')); //file = null
          if(processAndGetVariable('file_etp_conformidadeETP') == null) {
              document.getElementById('showDownloadFileTask2').style = "display: none;";
          }
        });
  </script>

如何从 task1 表单访问该变量?

输入/输出? 在启动过程中创建变量? 我还可以做些什么? 也许使用 camunda modeler 在 task2 中创建文件变量?

【问题讨论】:

  • 如何回到上一个任务?
  • 我设置了一个名为“approved”的变量;在 modeler/xml 中,有条件前进或转到上一个任务,其条件取决于“已批准”变量(如果为 false,则转到上一个,否则按照快乐的路径转到下一个);

标签: camunda camunda-modeler


【解决方案1】:

我使用 camunda 的 rest api 服务实现了我想要做的事情。我在变量获取的生命周期中做一个请求:

/engine-rest/task/"+camForm.taskId+"/variables/file_task2/data

这样我可以得到所有已经在执行过程中声明的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多