How and when are property expressions evaluated

Hello Everyone,

Does anyone know how and when property expressions are evaluated?

There is a task called General – Update Computed Properties / Update Property Expressions, which executes expressions but it is unclear how it determines the scope.

Specifically:

  • Does this task re-evaluate all configured expressions for all Identities / entries every time it runs?

  • Or does it only process Identities / entries that have changed recently, to avoid redundant calculations? (I think hashes are used for this)

For example, if we have ~50,000 Identities, will the task recompute expressions for all of them on every run?

This is particularly important for us because one of our expressions uses a queryHandler. In this case, nothing changes on the Identity itself but changes may occur on the entity type used in the queryHandler.

In such a scenario, will the expression still be re-evaluated on every run of the task or will it be skipped because the Identity itself(hash) has not changed?

Hi Kamil,

In which job you have this task?

If the job is created via XML (not scaffolding) you need to check the scope

For example, the following task will include all properties each time it is executed.

<UpdateEntityPropertyExpressionsTask DisplayName_L1="Update Computed Properties" AllEntityType="true" />

If you want to include only updated values you need to add the option “Dirty”

Example:

<UpdateEntityPropertyExpressionsTask DisplayName_L1="Update Computed Properties" AllEntityType="true" />

If you want to filter on specific EntityTypes you need to add them explicitly and remove AllEntityType=“true”

Example:

    <UpdateEntityPropertyExpressionsTask Identifier="HR_ComputeAllProperties" DisplayName_L1="HR - Update Computed Properties" DisplayName_L2="RH - Mise à jour des propriétés calculées">
      <TaskEntityType EntityType="Directory_UserRecord"/>
      <TaskEntityType EntityType="Directory_User"/>
      <TaskEntityType EntityType="HR_Person"/>
    </UpdateEntityPropertyExpressionsTask>

Documentation : UpdateEntityPropertyExpressionsTask | Netwrix Product Documentation

Regards

Hazem

Hello Hazem,

Thank you for the response but that was not really the issue.
From what I know, the Dirty option is for incremental jobs.
I’m using a complete scaffolding with AllEntityType=“true”.

The Expressions has a queryHandler in it, but it seems to not recalculate it properly.
Even when I adjust the Identity, the expressions seem to stay the same.

Do you know if the queryHandler has its own specific caching?
I already used the create database view task and the expression return the same value each time.