Hi,
I have some hard times trying to iterate an array of object and insert/display the values one by one on this object detail named Product in Receive
and here is a chunk of the code:
var splitResult = decodedText
.split("*")
.filter((item) => item.trim() !== "");
var doNumber = splitResult[0];
var prodDataObj = [];
var slocCode = doNumber.split("/")[1];
for (let i = 1; i < splitResult.length; i++) {
var prodDataSplit = splitResult[i].split("/");
var productName = "";
var materialcode = prodDataSplit[1] || "";
if (materialcode) {
productName = await new Promise((resolve) => {
Terrasoft.productByMaterialCode(materialcode, (productData) => {
if (productData && productData.Name) {
resolve(productData?.Name || "");
}
});
});
}
prodDataObj.push({
Line: prodDataSplit[0] || 0, //line number
MaterialCode: prodDataSplit[1] || "", //mat code
ProductName: productName,
Quantity: prodDataSplit[2] || 0, //quantity
UoM: prodDataSplit[3] || "", //uom
});
}
prodDataObj.forEach((data) => {
const newRecord = Ext.create("Terrasoft.BaseModel", {
modelName: "UsrEntity_93626c0",
});
newRecord.set("UsrSKUName", data.ProductName, true);
newRecord.set("UsrQty", data.Quantity, true);
Terrasoft.getUom(data.UoM, (record) => {
newRecord.set("UsrUoM", record, true);
});
newRecord.save({
isCancelable: false,
success: function (savedRecord) {
const pageController = Terrasoft.PageNavigator.getLastPageController();
pageController.refreshDirtyData();
},
failure: function (error) {
console.error("Failed to create record:", error);
},
});
});
i tried to iterate using forEach but when i use newRecord.save, some weird error appears, this is one of them:
Error in Success callbackId: TSQueryExecutorPlugin1965367711 : TypeError: Cannot read properties of undefined (reading 'rule')
I would greatly appreciate any assistance or guidance in resolving this issue.
Thank you.