Persist Properties

This command is used to persist the calculated values for the specified list of calculated properties, to improve performance while accessing the values for those properties. This command effectively shifts the effort and time of calculating specific properties, to be accomplished as an explicit bulk action, instead of calculating values on-demand when the values for those properties are requested. Thus, improves performance of the functionalities in which the properties are used such as Solve, Plansheets, Queries, Export.

If a part of a calculated property has been updated, this command does not validate the persisted values for the calculated property. In this case, the requested values for the calculated property fall-back to on-demand calculation, until the Persist Properties workflow command is used again to persist the updated calculated values. For example:

  • The property definition for class X is A = B + C;
  • Execute workflow command Persist Properties: X.A. The request for the values of property A is optimized.
  • The persisted calculated values for property A are not used if the value of property B or C is updated. As a result, the requests or values of property A cannot be optimized and is calculated on-demand.
Syntax
Persist Properties: <class name.property name>[, <class name.property name> ...];
This table lists the exception conditions and the related error message (if applicable) during the execution of the command:
Condition Message
If the property is not calculated, and the property is an atomic property. A warning is logged and the atomic property is skipped.
APACS342=Skipped atomic property "{0}".
{0} = Class and property name for the non-calculated property
If class name is not a known class within the model, an error is logged. An error is logged.
APACS110=There is no class with name "{0}" defined in the model.
• {0} = class name parameter value
class name is valid; however,property name is not defined for that class. An error is logged.
APACS109=There is no property with name "{0}" defined for class "{1}".
  • {0} = property name parameter value
  • {1} = class name parameter value