我通过创建一个新条目将新数据添加到我的 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
)
最佳答案
我想我明白你在做什么,这应该让你的原始数据通过“类型”运行它,并创建一个日期(如果输入的是日期)。出于演示目的,它还会转换类型数组中的数字。
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/