Напишите дату для модели данных 0CALDAY в виде строки? - PullRequest
0 голосов
/ 19 октября 2018

Я добавляю новые данные в мою модель oData, создавая новую запись, подобную этой:

_.forEach(insert, data => {
var entry = (modelprefix + "('" + data.COL01 + "')");
oModel.create(modelprefix, data, mParameters);
});

Этот код работает для строк и чисел, но когда дело доходит до даты, он не работаетwork.

Моя целевая структура содержит столбец 0CALDAY , в котором должны анализироваться значения из модели JSON "insert".Я не получаю сообщение об ошибке или ничего, просто ничего не происходит ..

Я подозреваю, что это потому, что 0CALDAY ожидает вставки объекта, но он получает только строку.Но что я могу сделать?

Это один из объектов моей модели Insert-JSON: COL04 - это дата для вставки.Он уже имеет правильный формат для моего SAP!(dd.mm.yy) enter image description here

1 Ответ

0 голосов
/ 19 октября 2018

Я думаю, что я понимаю, что вы делаете, это должно взять ваши исходные данные, прогнать их через «типы» и создать дату, если она напечатана.Для демонстрационных целей он также преобразует числа в массиве типов.

var data = [
  {"AGIMENDO Info Objekt 1": "00000000", "Beschreibung Kurz": "Test0", "Währung": "200.00", "__rowNum__": 1},
  {"AGIMENDO Info Objekt 1": "00000001", "Beschreibung Kurz": "Update1", "Währung": "456.00", "__rowNum__": 2},
  {"AGIMENDO Info Objekt 1": "00000002", "Beschreibung Kurz": "Test2", "Währung": "12.00", "__rowNum__": 3},
  {"AGIMENDO Info Objekt 1": "00000003", "Beschreibung Kurz": "Test3", "Währung": "549153.00", "__rowNum__": 4},
  {"AGIMENDO Info Objekt 1": "00000004", "Beschreibung Kurz": "Text", "Währung": "1.05", "__rowNum__": 5},
  {"AGIMENDO Info Objekt 1": "00000005", "Beschreibung Kurz": "13.08.11", "Währung": "465.00", "__rowNum__": 6},
  {"AGIMENDO Info Objekt 1": "00000006", "Beschreibung Kurz": "Test21", "Währung": "4594.00", "__rowNum__": 7}
];

var types = [
  {type: "number", value: "200.00"},
  {type: "number", value: "456.00"},
  {type: "number", value: "12.00"},
  {type: "number", value: "549153.00"},
  {type: "number", value: "1.05"},
  {type: "date", value: "13.08.11"},
  {type: "number", value: "465.00"}
];

var typeVals = types.map(el => el.value);

function toDate(str) {
  var dateParts = str.split(".");
  var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
  return date;
}
function toNum(str) {
  return parseFloat(str);
}


data.forEach(row => {
  var keys = Object.keys(row);
  keys.forEach(k => {
    var t = typeVals.indexOf(row[k]);
    if (t != -1) {
      switch (types[t].type) {
        case "date":
          row[k] = toDate(row[k]);
          break;
        case "number":
          row[k] = toNum(row[k]);
          break;
      }
    }
  });
});

console.log(data);
...