Community Tip - You can Bookmark boards, posts or articles that you'd like to access again easily! X
let entry = Things["Allied_Entries_SCW1.DT"].GetDataTableEntryByKey({key:"1713786015000SCW1E-AS-02"});
logger.info(entry.rows);
entry.rows[0].versionData.RemoveRow(0);
versionData is an infotable but i am still not able to remove the row with its index. As you can see this is an infotable why i am unable to remove it. any idea please?
<========================================================================================================>
FURTHER TESTING
I am removing row and updating that entry with removing that row but it is removing row at run time means i get what i want as an output but it not updating it in datatable. Anyone has an idea?
You need to update again into the data table.
Allied_Entries_SCW1.DT
Use following services.
AddOrUpdateDataTableEntry()
or
AddOrUpdateDataTableEntries()
I am already doing this but it is not working as it returns the result on runtime correct but not updating the entry into datatable.
@PaiChung any idea?
let entry = Things["TestBench_Entries_SCW1.DT"].GetDataTableEntryByKey({key:"1709109105000SCW1E-SCW-EMT-06"});
let values;
if ( entry.rows[0].versionData && entry.rows[0].versionData.rows && entry.rows[0].versionData.rows.length > 1 ) {
let newVersionData = entry.rows[0].versionData;
values = Things["TestBench_Entries_SCW1.DT"].CreateValues();
values.entryTimeStamp = entry.rows[0].entryTimeStamp; // STRING [Primary Key]
values.Location = entry.rows[0].Location; // INFOTABLE
values.Position = entry.rows[0].Position; // DATETIME
values.entryDate = entry.rows[0].entryDate; // STRING
values.status = entry.rows[0].status ; //"SCW1Phase4";// STRING // To change the status of the main entry
values.tinNumber = entry.rows[0].tinNumber;// STRING
values.versionData = newVersionData.RemoveRow(9); //entry.rows[0].versionData;// STRING
}
Things["TestBench_Entries_SCW1.DT"].AddOrUpdateDataTableEntry({values:values});
result = entry;
I got a solution for this issue which is very weird and i could not understand that why it is behaving like that but at least i have a solution now.
let entry = Things["TestBench_Entries_SCW1.DT"].GetDataTableEntryByKey({key:"1709109105000SCW1E-SCW-EMT-06"});
let values;
let newVersionData = entry.rows[0].versionData.RemoveRow(9); // this wil remove the row and then idk how we are updating the entry in the datatable but it is working actually
values = Things["TestBench_Entries_SCW1.DT"].CreateValues();
values.entryTimeStamp = entry.rows[0].entryTimeStamp; // STRING [Primary Key]
values.Location = entry.rows[0].Location; // INFOTABLE
values.Position = entry.rows[0].Position; // DATETIME
values.entryDate = entry.rows[0].entryDate; // STRING
values.status = entry.rows[0].status ; //"SCW1Phase4";// STRING // To change the status of the main entry
values.tinNumber = entry.rows[0].tinNumber;// STRING
values.versionData = entry.rows[0].tinNumber; //entry.rows[0].versionData;// STRING
Things["TestBench_Entries_SCW1.DT"].AddOrUpdateDataTableEntry({values:values});
result = entry;