保存到引擎camunda(版本7.9)变量类型“日期”

时间:2018-08-06 09:00:35

标签: javascript camunda

我想将变量“ beauftragungsdatum”类型“日期”保存到引擎:

inject(['$http', 'Uri', function($http, Uri) {
camForm.on('store', function(evt) {
evt.retrieveVariables()

var varManager = evt.variableManager;
var vars = varManager.variables;
var dataVar = $scope.beauftragungsdatum;
varManager.variableValue('beauftragungsdatum', dataVar);
var variableData = {};
      for(var v in vars) {
        if(varManager.isDirty(v)) {
          var val = vars[v].value;
          if(varManager.isJsonVariable(v)) {
            val = JSON.stringify(val);
          }
          variableData[v] = {
            value: val,
            type: vars[v].type,
            valueInfo: vars[v].valueInfo
          };
        }
      }

      var data = { modifications: variableData };
      var config = {
        headers : {
          'Content-Type': 'application/json'
        }
      };
      $http.post(Uri.appUri('engine://engine/:engine/task/' + camForm.taskId + '/variables'), data, config);
      evt.storePrevented = true;
    });
  }]);

在保存时,我有一个问题:变量'beauftragungsdatum'不是日期类型。我发现var的格式错误。我将其修复并粘贴一些决定:

 inject(['$http', 'Uri', function($http, Uri) {
    camForm.on('store', function(evt) {
    evt.retrieveVariables()

    var varManager = evt.variableManager;
    var vars = varManager.variables;
    var now=moment(dataVar).format("YYYY-MM-DDTHH:mm:ss.sssZZ");
    console.log(now);
    console.log(typeof now);
    var d=varManager.variableValue('beauftragungsdatum');
    console.log(d);
    console.log(typeof d);

  varManager.variableValue('beauftragungsdatum')=now;
    var variableData = {};
          for(var v in vars) {
            if(varManager.isDirty(v)) {
              var val = vars[v].value;
              if(varManager.isJsonVariable(v)) {
                val = JSON.stringify(val);
              }
              variableData[v] = {
                value: val,
                type: vars[v].type,
                valueInfo: vars[v].valueInfo
              };
            }
          }

          var data = { modifications: variableData };
          var config = {
            headers : {
              'Content-Type': 'application/json'
            }
          };
          $http.post(Uri.appUri('engine://engine/:engine/task/' + camForm.taskId + '/variables'), data, config);
          evt.storePrevented = true;
        });
      }]);

结果是我的附件文件有问题。 enter image description here 我在这个问题上需要帮助,可能知道如何在Camunda 7.9中保存var'Date'。

1 个答案:

答案 0 :(得分:0)

在下面的行中,您放置在now中的值是一个字符串:

var now=moment(dataVar).format("YYYY-MM-DDTHH:mm:ss.sssZZ");

format方法以您指定的格式返回字符串。

如果要获取Date对象,请使用moment(dataVar).toDate()