Записать дату в Odata Model 0CALDAY в виде строки?

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

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

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

Моя целевая структура содержит столбец 0КАЛЬДЕНЬ, в котором должны быть проанализированы значения из «вставки» модели JSON. Я не получаю ни ошибки, ни чего, просто ничего не происходит ..

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

Это один из объектов моей Insert-JSON-Model: COL04 - это дата, которую нужно вставить. Он уже имеет правильный формат для моего SAP! (dd.mm.yy) Записать дату в Odata Model 0CALDAY в виде строки?

Если он ожидает объект, пробовали ли вы преобразовать эту строку в объект Date?

barbsan 19.10.2018 16:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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.info(data);

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

sonja 22.10.2018 12:15

Хорошо, я нашел способ назначить "тип", теперь я вернулся к вашему решению, но не могу получить динамический способ.

sonja 22.10.2018 13:45

Благодарность! который выдает ошибку "Ошибка при разборе XML-потока" .. действительно не знаю почему: O

sonja 24.10.2018 09:20

Здесь нет XML, звучит как новая проблема.

James 24.10.2018 14:24

Я знаю, что XML не существует ... что мне делать?

sonja 24.10.2018 14:53

Другие вопросы по теме