The following diagram illustrates the Change Notification architecture:
The Change Notification Registry identifies which repositories and attributes are to be monitored and what actions are to be taken when changes are detected. The Change Notification Processing is invoked any time a repository record is created, modified or deleted. It uses the details in the Change Notification Registry to determine if any action needs to be taken.
- Email - Notifications are placed into the Email Queue (table). The Email Queue Process (EPX workflow) retrieves the queued messages and packages them into emails based on common To address and Subject text.
- Log - The Change Notification Queue is used to log the details of the changes in order to minimize the performance impact of the original operation that invoked the Change Notification Processing. Since a single update to a repository record could result in multiple updates to the change log (one for each changed attribute), inserts into a SQL table are significantly faster than inserts into an EnterWorks repository. A background (EPX) process monitors the Change Notification Queue for new records and moves them to the Change Notification Log repositories. In high-volume change scenarios (such as large file imports or mass edits), there may be a backlog of pending changes in the Change Notification Queue that takes a while to move to the Change Notification Log repositoryies.
- Update – The specified updates are made to the record that triggered the change notification.
- Work Item – Work item requests are placed in the Work Item Queue (table). The Change Notification Process (EPX Workflow) retrieves the queued requests and launches work items for each on based on the details specified in the queued request
- Language Translation – Identifies an entry in the language translation registry (CN_Translation_Registry) that defines the language translation configuration for a repository.
- Transform – Identifies transformations that are to be conditionally made to attributes in the record that triggered the change notification or to attributes in a record that is linked to the record that triggered the change notification. The conditions would be based off values in the changed record or the record linked to the changed record. Transformations can also be configured to create or delete records in a repository.