Synchronization and Templates

I'm looking for an explaination of what happens to Templates during a Synchronization.  I see lots of evidence that Templates are not getting triggered during a Sync from a target to One Identity.  In a number of threads I see the comment that the Sync Engine does not have access to the Object Layer.  I'm wondering if anyone can explain this.  What does his mean?  What are the implications?

My guess is right now, that if you are using an Active directory connector, the templates are triggered on any ADS table being written to.  In the templates, FULLSYNC can be used to determine how to react to a changed attribute.  But if you are not using the AD Connector, or you are syncing to anything except for ADS tables, the Sync Engine just writes directly to the database.  The object layer is bypassed and templates are never triggered.  Is this true?  What about events?  Are all UPDATE/INSERT/DELETE events triggered?

If I am wrong... that the object-layer is used and templates are getting fired.  What can cause templates to not fire?

One specific example I have is using the LDAP connector to update Persons.  I have a custom field CCC_FirstName.  The template for the standard FirstName says:  Value = CCC_CleanName($CCC_FirstName$).  After a SYNC, CCC_FirstName is changed, bu FirstName has not.  Is the Template not executed, or does the fact that the template references a custom-script cause the template to (silently) fail?

Parents Reply Children
  • I noticed that the "Data Import" option turns FULLSYNC on and off, but I did not expect this to have any effect, because the value templates effected don't have any conditions.  They should always trigger.  I was assuming the templates were not firing, because after the HR feed, I could go to any Person which had not been updated, and issue 'execute templates'.  The person was updated immediately.

    However... we tried turning on the "Data Import" option, and the problem does seem to dissappear.  I'm guessing this has some strange side effect other than just toggling a boolean.  I'm going to leave it on and see what happens in next few days...

  • You should verify that IsOverwritingTemplate is set for your template. (In Designer: Column properties => Value calculation "Overwrites" is checked)

  • Hi Markus 

    I have a overwrite custom template. I want to change the condition in it. Does it execute template fire for all the objects? Or I need to manually execute the template for all the objects from object browser to get the effect?

    another question I have, during the synchronisation if the target system have different value, what will happen that time from the below options 

    1. Value get updated whatever target system have and template does not execute 

    2. during the synchronisation execution template run and update the value based on template script. and it might happen that target and one identity have different value 

    3. during the synchronisation execution template run and update the value based on template script  then one identity pushed the value to target if the value is different

    Thanks in advance

  • If you change a template, the objects will not be updated automatically. But you can trigger the re-calculation of the templates in several ways. Try to search for this in the community here. One option is mentioned in this thread: https://www.oneidentity.com/community/identity-manager/f/forum/27249/how-to-apply-a-attribute-template-to-all-user

    In regards to 1. to 3., it depends a little bit on your synchronization direction and the settings of the workflow (Data Import flag) and on the mappings.