javascript - 将日期作为字符串写入 Odata 模型 0CALDAY?

标签 javascript string type-conversion odata sapui5

我通过创建一个新条目将新数据添加到我的 oData 模型中,如下所示:

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

该代码可以用于查找字符串和数字,但是当涉及到日期时,它不起作用。

我的目标结构包含一个 0CALDAY 列,其中应解析“插入”JSON 模型中的值。我没有收到错误或任何错误,只是什么也没发生..

我怀疑这是因为0CALDAY期望插入一个对象,但它只得到一个字符串。但我能做什么呢?

这是我的 Insert-JSON-Model 的一个对象:COL04 是要插入的日期。它已经具有适合我的 SAP 的正确格式! (dd.mm.yy) enter image description here

最佳答案

我想我明白你在做什么,这应该让你的原始数据通过“类型”运行它,并创建一个日期(如果输入的是日期)。出于演示目的,它还会转换类型数组中的数字。

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);

关于javascript - 将日期作为字符串写入 Odata 模型 0CALDAY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52893602/

相关文章:

python - 如何在给定不需要的字符列表的情况下去除字符串? Python

javascript - 无法在 Chart.js 上显示数据

javascript - 在 JavaScript 中每隔一个空格插入随机数

Python:在两个字符之间拆分

string - 有没有办法在lua(原始)中定义自动转义字符串?

c# - 如何从 C# 调用 SLGetWindowsInformation

c++ - 串行通信 - 我无法将传入的 char 数组转换为 int

javascript - typescript 键盘事件 : argument of type 'Event' is not assignable to parameter of type 'KeyboardEvent'

javascript - 如何在新页面或标签页中打开此 javascript?

javascript - bootstrap.min.css 和 bootstrap.min.js 的 404 错误