Chat now with support
Chat with Support

Identity Manager 9.1 - Target System Synchronization Reference Guide

Target system synchronization with the Synchronization Editor Working with the Synchronization Editor Basics of target system synchronization Setting up synchronization
Starting the Synchronization Editor Creating a synchronization project Configuring synchronization
Setting up mappings Setting up synchronization workflows Connecting systems Editing the scope Using variables and variable sets Setting up start up configurations Setting up base objects
Overview of schema classes Customizing the synchronization configuration Checking the consistency of the synchronization configuration Activating the synchronization project Defining start up sequences
Running synchronization Synchronization analysis Setting up synchronization with default connectors Updating existing synchronization projects Script library for synchronization projects Additional information for experts Troubleshooting errors when connecting target systems Configuration parameters for target system synchronization Configuration file examples

Incorrect mapping of object hierarchy after synchronization

If objects, which mapClosed a hierarchy, are synchronizedClosed the following errors can occur:

  • Objects are mapped to the wrong position in the hierarchy.
  • Objects are not loaded.
Probable reason

The parent objects could not be referenced. If the parent object is a mandatory property, the child objects cannot be saved.

By default, objects are processed in blocks of 1024 each during synchronization. Objects are loaded in random order. Therefore, a child object might be processed before its parent object has been loaded. Thus the parent object cannot be assigned.

Example: Importing cost center with the CSV connector

Cost centers make up an object hierarchy. The respective parent object is assigned through the UIDClosed_ParentProfitCenter column. The complete hierarchy path is kept in the FullPath column.

During synchronization, a cost center might be loaded before its parent cost center. Therefore, the parent cost center cannot be referenced. Because the parent cost center is not a mandatory property, the object is loaded but appears at a strange place in the hierarchy. A different full name is formatted in the database as given in the CSV file. If the full name is the only matching criteria for identifying the object the objects cannot be assigned uniquely.

Solution

NOTE:

  • The solution approach only applies for resolving references of the same object type.
  • Synchronization can get slower if the amount of data is large.
  • The solution described is one way to prevent the error. There may be other solutions depending on the actual data situation.

To prevent the error

  • Label the column containing the hierarchy path as the sort criteria in the target system schema and set the partition size to "1".

    The objects are sorted by hierarchy path during synchronization and loaded one by one in the database in this order. This ensures that the parent object is already loaded and can be referenced.

  • Ensure manual dependency resolution is set in the synchronization workflowClosed.

    This can be necessary in certain situations, for example, when synchronizing cost centers. In this case, the full name is the only matching criteria. In the One Identity Manager database this is put together from the cost center name (AccountNumber column) and the full name of the parent object. In the case of automated dependency resolution, the parent objects are not assigned until the second synchronization step. Therefore, no parent objects are assigned after the first synchronization step. The full name is only formatted from the cost center name. All child objects therefore, have another full name in the database as in the target system. In the second synchronization step, there objects can no longer be identified. Thus parent objects cannot be assigned by it.

    In the case of manual dependency resolution, all property mapping rules are run in one synchronization step. The parent object assigned immediately. This way, the templateClosed finds the correct full names.

To mark a column as sort criterion

  1. Edit the target system schema in the Synchronization EditorClosed.
    1. Select the Configuration > Target systemClosed category.
    2. Click Edit connection.

      This starts the system connection wizard.

  2. Select the page where you can edit the Hierarchical sort order option.

    NOTE: The system connection wizards of the various target systems display different pages. For example, in the system connection wizard for CSV systems, select the Display information page.
  3. Select the column containing the hierarchy path.
  4. Enable the Hierarchical sort order option.
  5. Save the changes.

To adjust the partition size

  1. Enable expert mode in the Synchronization Editor.
    1. Select the Database > Settings... menu.
    2. Enable Enable expert mode.
    3. Click OK.
  2. Edit the start up configuration properties.
    1. Select the Configuration > Start up configurations category.
    2. Select the start up configuration in the document view and click Edit....
  3. Select the Advanced tab.
  4. Enter the value "1" in Partition size.

    For more information about start up configuration advanced properties, see the One Identity Manager Target System Synchronization Reference Guide.

  5. Click OK.
  6. Disable expert mode

To set manual dependency resolution

  1. Edit the workflow properties.
    1. Select the Workflows category.
    2. Select the workflow in the navigation view.
    3. Select the General view in the WorkflowClosed Editor and click Edit.
  2. Select the value "Manual" in the Dependency resolution field.
  3. Click OK.
  4. Save the changes.
  5. Activate the synchronization projectClosed.

Configuration parameters for target system synchronization

The following configuration parametersClosed are additionally available in One Identity Manager after the module has been installed.

Table 94: Configuration parameters for target system synchronization

Configuration parameters

Meaning if Set

DPR

General configuration parameter for target system synchronizationClosed.

DPR | Journal

General parameter for configuring the synchronization log.

DPR | Journal | LifeTime

This configuration parameter specifies the synchronization log's retention period (in days). Older logs are deleted from the database.

DPR | StartSequence

General parameter for configuring synchronization start up sequencesClosed.

DPR | StartSequence | LifeTime

Configuration parameter for specifying the retention period (in days) for completed synchronization start up sequences. Older entries are deleted from the database.

DPR | UI

Synchronization EditorClosed user interface configuration.

DPR | UI | EncryptedValueHandling

The configuration parameter defines the Synchronization Editor behavior when handling encrypted values.

  • ByUser: Shows encryption dialog when the synchronization projectClosed opens.

  • IgnoreAll: Does not show encryption dialog when the synchronization project opens. All encrypted values are ignored by default. (default)

Configuration file examples

The following examples demonstrate the modifications required in the configuration files in order to automatically create or update synchronization projectsClosed.

Detailed information about this topic

Configuration file for creating new synchronization projects

The following extract from a configuration file contains the changes required for the example in section Customizing the configuration file.

<?xml version="1.0" encoding="utf-8"?>

<SynchronizationEditorWorkspace Version="1.0">

<Parameters>

<Parameter Name="Database" Display="Connected database" IsQueryParameter="false" IsSecret="false"></Parameter>

<Parameter Name="DBUser" Display="Database server user" IsQueryParameter="false" IsSecret="false"></Parameter>

<Parameter Name="DBPassword" Display="Database server password" IsQueryParameter="true" IsSecret="true"></Parameter>

<Parameter Name="SystemUser" Display="One Identity Manager system user" IsQueryParameter="false" IsSecret="false"></Parameter>

<Parameter Name="SystemPassword" Display="Password of system user" IsQueryParameter="true" IsSecret="true"></Parameter>

<Parameter Name="Domain" Display="Distinguished name of the domain" IsQueryParameter="false" IsSecret="false"></Parameter>

<Parameter Name="DomainController" Display="Distinguished name of the domain controller" IsQueryParameter="false" IsSecret="false"></Parameter>

<Parameter Name="ADUser" Display="Active Directory user" IsQueryParameter="false" IsSecret="false"></Parameter>

<Parameter Name="ADUserPassword" Display="Password of Active Directory user" IsQueryParameter="true" IsSecret="true"></Parameter>

<Parameter Name="SyncProject" Display="Synchronization ProjectClosed" IsQueryParameter="false" IsSecret="false"></Parameter>

</Parameters>

<Global>

<Data Name="WorkDatabase.ConnectionString" Display="Connection string" Type="System.String, mscorlib">data source=Database server;initial catalog=$Database$;user id=$DBUser$;pooling=false;Password=$DBPassword$</Data>

<Data Name="WorkDatabase.AuthenticationString" Display="Authentication string" Type="System.String, mscorlib">ModuleClosed=Authentication method;User[VI.DB_USER]=$SystemUser$;(Password)Password[VI.DB_Password]=$SystemPassword$</Data>

<!-- … -->

</Global>

<Editors>

<Editor Name="ShellWizard" Type="VI.Projector.Editor.Wizards.ShellWizard, VI.Projector.Editor">

<!-- … -->

<Data Name="ShellDisplay" Display="Script display name" Type="System.String mscorlib">$SyncProject$</Data>

<!-- … -->

<Data Name="MainConnection.ConnectionParameter" Display="Connection parameter" Type="System.String, mscorlib">Authentication=ProjectorAuthenticator;data source=databaseserver; DBFactory="VI.DB.ViSqlFactory, VI.DB";initial catalog=$Database$;password=$DBPassword$; pooling=False;user id=$DBUser$</Data>

<!-- … -->

<Data Name="ConnectedSystemConnection.ConnectionParameter" Display="Connection parameter" Type="System.String, mscorlib">ADAuthentication=1;ADEnableras=False;ADEnablerecyclebin=False; ADEnableterminal=True;ADPort=389;ADRootdn=$Domain$;ADServer=$DomainController$; ADTypeEnableExtensions=True;ADTypeExtensions=;baseloginaccount=$ADUser$; basepassword=$ADUserPassword$</Data>

<!-- … -->

</Editor>

</Editors>

</SynchronizationEditorWorkspace>

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating