cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community email notifications are disrupted. While we are working to resolve, please check on your favorite boards regularly to keep up with your conversations and new topics.

Unable to delete Row from infotable with function myInfoTable.RemoveRow(rowIndex);

Jamal8548
11-Garnet

Unable to delete Row from infotable with function myInfoTable.RemoveRow(rowIndex);

 

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?

 

Jamal8548_0-1714397471888.png

<========================================================================================================>

 

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?

3 REPLIES 3

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;

 

 

Top Tags