Entity Components

Source Entities

The synchronizations source entities can be accessed with the following:

$sourceEntities

This variable is a collection of Entity.

Changes made to the entities within this collection will not be maintained between tasks or reflected into Identity Broker.

Target Entities

The synchronizations target entities can be accessed with the following:

$targetEntities

This variable is a collection of Entity.

If the provisioning task is a type synchronously executed Pre-Provisioning task, changes made to the entities within this collection will be maintained between tasks and reflected into Identity Broker when the modified entity is committed to the target entity space.

Asynchronously executed tasks, or tasks of other types will not have changes maintained.

Joined Entities

The synchronizations source and target entities can be accessed together with the following:

$joinedEntities

This variable is a collection of pairs of Entity, with the source entity being the SourceEntity property and the target entity being the TargetEntity property.

If the provisioning task is a type synchronously executed Pre-Provisioning task, changes made to the target entities within this collection will be maintained between tasks and reflected into Identity Broker when the modified entity is committed to the target entity space.

Examples

foreach ($sourceEntity in $sourceEntities) { ... }
foreach ($targetEntity in $targetEntities) { ... }
foreach ($joinedEntity in $joinedEntities)
{
    # $joinedEntity.SourceEntity contains the source entity
    # $joinedEntity.TargetEntity contains the target entity
}

Is this article helpful for you?

I just found out $targetEntities is only a set of synchronised entities, not all entities in the connected adapter. Hence, check uniqueness using $targetEntites will not work. Just wonder which component to give access to all entities in the target adapter?

Are you referring to CheckFieldUniqueness? That function checks against the target context. If there's an issue with that please raise a new issue.