Hello Boda,
Please ensure if using nanoflow and calling java script action, return type is set as object and correct entity is selected.
Try below
export async function JavaScript_GetSelectedAnswers()
{
const selectedRows = document.querySelectorAll(".highlight-row"); const answers = [];
selectedRows.forEach((row) => { answers.push(row.querySelector("span").innerText); });
return new Promise((resolve, reject) => { mx.data.create({ entity: "MyFirstModule.SelectedAnswer", callback: function (obj) { obj.set("option_1", answers[0]); obj.set("option_2", answers[1]); obj.set("option_3", answers[2]); obj.set("option_4", answers[3]); obj.set("option_5", answers[4]);
mx.data.commit({
mxobj: obj,
callback: function ()
{ console.log("Answer saved!"); resolve(obj); // Return the object here
},
error: function (e) {
console.error("Commit error: ", e.message); reject(e); }, }); },
error: function (e) {
console.error("Create error: ", e.message); reject(e); }, }); });
}
Hi Boda Santhosh Kumar,
Kindly check this code :
export async function JavaScript_GetSelectedAnswers() {
// BEGIN USER CODE
const selectedRows = document.querySelectorAll(".highlight-row");
const answers = [];
selectedRows.forEach((row) => {
const answerText = row.querySelector("span")?.innerText || "";
answers.push(answerText);
});
return new Promise((resolve, reject) => {
mx.data.create({
entity: "MyFirstModule.SelectedAnswer",
callback: (obj) => {
try {
obj.set("option_1", answers[0]);
obj.set("option_2", answers[1]);
obj.set("option_3", answers[2]);
obj.set("option_4", answers[3]);
obj.set("option_5", answers[4]);
mx.data.commit({
mxobj: obj,
callback: () => {
resolve(obj);
},
error: (commitErr) => {
console.warn("Commit error:", commitErr.message);
reject(new Error("Commit failed"));
},
});
} catch (setError) {
console.warn("Error setting attributes:", setError);
reject(new Error("Failed to set attributes"));
}
},
error: (createErr) => {
console.warn("Create error:", createErr.message);
reject(new Error("Object creation failed"));
},
});
});
// END USER CODE
}