Skip to Main Content
AVEVA Product Feedback


Status Declined
Categories PI Builder
Created by Guest
Created on Aug 20, 2022

Minimize the recalculation of volatile cells

Currently, PI Builder data is imported row by row. Each imported row causes all volatile cells in all open workbooks and any cells downstream of them in the dependency tree to recalculate. PI Builder will not import a new row until this calculation is complete. If there are too many slow-calculating downstream cells, the entire import can be slowed to a crawl. Please consider importing data in a way that does not trigger the recalculation of volatile cells as often. One option is to switch to manual calculation before the import and restore the previous calculation mode after the import. Another option is to store the retrieved rows in memory and then write all of the rows at once to the sheet after the import is complete.
  • ADMIN RESPONSE
    Aug 20, 2022
    Thank you very much for sharing your feedback on the PI Server. After further evaluation, we have decided to decline this item, as we are not planning on implementing it in the near future due to other high priority items across the PI System. Thank you for your feedback, and know that we are listening and reviewing every item that gets submitted!
  • Attach files
  • Guest
    Reply
    |
    Aug 20, 2022
    Volatile cells recalculate essentially whenever any change to any cell is made. Any cell that uses a volatile function (e.g. NOW, TODAY, RAND, RANDBETWEEN) is volatile. By "write all of the rows at once", I mean that you can do something like "Sheet1.Cells(1,1).Resize(3, 5).Value = v" in VBA, if v is a Variant variable or Variant array with 3 rows and 5 columns. You do not need to loop cell by cell or row by row to assign values to a multi-row, multi-column range. I'm open to any questions.