Publishers
A publisher is a component of the Async Event Handler that defines how events are distributed to external systems. Publishers determine the communication channel, message format, and delivery mechanism for captured events. Each publisher has to be configured to connect to external systems.
The Async Event Handler supports multiple publisher types, and you can configure multiple publishers within a single event handler. For an overview of publisher types and how they work with processors, see Types of publishers and How Async Event Handler works.
For details about how to combine processors and publishers, see Processor and publisher combinations.
This article describes how to configure each publisher type.
| Sample publisher configurations can be found in MDM Example Project project in your build. |
Before you start
-
Create a new processor as described in Processors.
-
(Optional) Add a new publisher as described in the processor configuration.
You can also add new publishers as needed. In Output Interfaces > Event Handlers, right-click your processor and select New Publisher. Choose the publisher type and proceed with the configuration depending on your publisher type.
Event JMS publisher
To run this publisher, the JMS server connection must first be configured in the MDM runtime configuration.
To configure the event JMS publisher:
-
Go to Output Interfaces > Event Handlers > [your processor] > [your publisher] (right-click) > Edit.
Skip this step if you’re adding a new publisher using the [your processor] (right-click) > New Publisher option.
-
On the publisher General tab, configure the following:
You can access these settings directly from the processor definition. On the Publishers tab, double-click the row number of the publisher you want to edit. Alternatively, right-click the publisher and select Edit. -
Enable (Boolean) - Must be selected to use the publisher.
-
Description (optional) - Description of the publisher.
-
Connection Name - Name of the JMS connection configured in the server configuration.
-
Destination - Target JMS queue or topic destination. A destination is the object a client uses to specify the target of messages it produces and the source of messages it consumes.
In the PTP messaging domain, destinations are called queues. In the pub/sub messaging domain, destinations are called topics.
A JMS application can use multiple queues or topics (or both).
-
Content Type - Sets the info header of the media type; the default value is
text/plain. -
Transformers - Specifies transformers, that is, elements that transform the event into text. See Transformers.
-
-
Optionally, configure the advanced settings on the Advanced Settings tab:
-
Filter Incoming Events Setting (Boolean) - If selected, filters the flow of incoming events according to the configuration defined. See Filters.
-
Retry Publishing Settings (Boolean) - If selected, after a failed attempt, publishing is retried according to the configuration defined. See Retry publishing.
-
-
Select OK to save your changes.
If you want to save your changes without exiting the configuration, select Apply instead. -
To update the configuration, go to Output Interfaces > Event Handlers (right-click) > Generate.
Event plan publisher
To configure the event plan publisher:
-
Go to Output Interfaces > Event Handlers > [your processor] > [your publisher] (right-click) > Edit.
Skip this step if you’re adding a new publisher using the [your processor] (right-click) > New Publisher option.
-
On the publisher General tab, configure the following:
You can access these settings directly from the processor definition. On the Publishers tab, double-click the row number of the publisher you want to edit. Alternatively, right-click the publisher and select Edit. -
Enable (Boolean) - Must be selected to use the publisher.
-
Description (optional) - Description of the publisher.
-
Suffix (optional) - Attribute that is used to differentiate between several plan publishers with the same layer name and entity.
For better plan name readability, use an underscore (
_) at the beginning of the suffix. -
Layer Name - Select the desired layer.
-
Entity Name - Select the desired entity.
-
All Columns (Boolean) - If selected:
-
Events for all columns in the selected entity are published.
-
Including meta columns and columns in this section returns an error.
-
-
Meta Columns - Define the metadata columns that are processed for the defined entity.
-
Columns - Define the columns that are processed for the defined entity.
-
Old Value (Boolean) - If selected, the original values for those columns are sent to the plan.
-
New Value (Boolean) - If selected, the new values for those columns are sent to the plan.
-
-
-
Optionally, configure the advanced settings on the Advanced Settings tab:
-
Filter Incoming Events Setting (Boolean) - If selected, filters the flow of incoming events according to the configuration defined. See Filters.
-
-
Select OK to save your changes.
If you want to save your changes without exiting the configuration, select Apply instead. -
To update the configuration, go to Output Interfaces > Event Handlers (right-click) > Generate.
Event SQL publisher
To configure the event SQL publisher:
-
Go to Output Interfaces > Event Handlers > [your processor] > [your publisher] (right-click) > Edit.
Skip this step if you’re adding a new publisher using the [your processor] (right-click) > New Publisher option.
-
On the publisher General tab, configure the following:
You can access these settings directly from the processor definition. On the Publishers tab, double-click the row number of the publisher you want to edit. Alternatively, right-click the publisher and select Edit. -
Enable (Boolean) - Must be selected to use the publisher.
-
Description (optional) - Description of the publisher.
-
Data Source - MDM data source, that is, a named database connection defined in the MDM runtime configuration.
-
Entity Name - Defines the entity to be used in the template.
-
Template - SQL template used for publishing events into a database.
Example templateinsert into PARTY_MAS (N_CMO_COMP_NAME, O_CMO_COMP_NAME) values (${new.cmo_company_name}, ${old.cmo_company_name})
-
-
Optionally, configure the advanced settings on the Advanced Settings tab:
-
Filter Incoming Events Setting (Boolean) - If selected, filters the flow of incoming events according to the configuration defined. See Filters.
-
Retry Publishing Settings (Boolean) - If selected, after a failed attempt, publishing is retried according to the configuration defined. See Retry publishing.
-
-
Select OK to save your changes.
If you want to save your changes without exiting the configuration, select Apply instead. -
To update the configuration, go to Output Interfaces > Event Handlers (right-click) > Generate.
HTTP SOAP publisher
To configure the HTTP SOAP publisher:
-
Go to Output Interfaces > Event Handlers > [your processor] > [your publisher] (right-click) > Edit.
Skip this step if you’re adding a new publisher using the [your processor] (right-click) > New Publisher option.
-
On the publisher General tab, configure the following:
You can access these settings directly from the processor definition. On the Publishers tab, double-click the row number of the publisher you want to edit. Alternatively, right-click the publisher and select Edit. -
Enable (Boolean) - Must be selected to use the publisher.
-
Description (optional) - Description of the publisher.
-
URL Resource Name - Name of the URL resource defined in the MDM runtime configuration.
-
SOAP Action - Defines an appropriate name for the SOAP Action filter.
-
SOAP Version - Select between SOAP 1.1 and 1.2.
-
Timeout (optional) - Timeout limit in milliseconds (default:
5000). -
Encoding (optional) - Encoding type (default:
UTF-8). -
Delay between requests (optional) - Delay in milliseconds (default:
0). -
Transformers - Specifies transformers, that is, elements that transform the event into text. See Transformers.
-
-
Optionally, configure the advanced settings on the Advanced Settings tab:
-
Filter Incoming Events Setting (Boolean) - If selected, filters the flow of incoming events according to the configuration defined. See Filters.
-
Retry Publishing Settings (Boolean) - If selected, after a failed attempt, publishing is retried according to the configuration defined. See Retry publishing.
-
-
Select OK to save your changes.
If you want to save your changes without exiting the configuration, select Apply instead. -
To update the configuration, go to Output Interfaces > Event Handlers (right-click) > Generate.
Standard output publisher
To configure the standard output publisher:
-
Go to Output Interfaces > Event Handlers > [your processor] > [your publisher] (right-click) > Edit.
Skip this step if you’re adding a new publisher using the [your processor] (right-click) > New Publisher option.
-
On the publisher General tab, configure the following:
You can access these settings directly from the processor definition. On the Publishers tab, double-click the row number of the publisher you want to edit. Alternatively, right-click the publisher and select Edit. -
Enable (Boolean) - Must be selected to use the publisher.
-
Description (optional) - Description of the publisher.
-
Transformers - Specifies transformers, that is, elements that transform the event into text. See Transformers.
-
-
Configure the advanced settings on the Advanced Settings tab (optional):
-
Filter Incoming Events Setting (Boolean) - If selected, filters the flow of incoming events according to the configuration defined. See Filters.
-
Retry Publishing Settings (Boolean) - If selected, after a failed attempt, publishing is retried according to the configuration defined. See Retry publishing.
-
-
Select OK to save your changes.
If you want to save your changes without exiting the configuration, select Apply instead. -
To update the configuration, go to Output Interfaces > Event Handlers (right-click) > Generate.
Traversing plan publisher
To configure the traversing publisher:
-
Go to Output Interfaces > Event Handlers > [your processor] > [your publisher] (right-click) > Edit.
Skip this step if you’re adding a new publisher using the [your processor] (right-click) > New Publisher option.
-
On the publisher General tab, configure the following:
You can access these settings directly from the processor definition. On the Publishers tab, double-click the row number of the publisher you want to edit. Alternatively, right-click the publisher and select Edit. -
Enable (Boolean) - Must be selected to use the publisher.
-
Description (optional) - Description of the publisher.
-
Name (optional) - Attribute that is used to differentiate between several plan publishers with the same layer name and entity.
For better plan name readability, use an underscore (
_) at the beginning of the suffix. -
Root Entity - Press Ctrl+Space to see a list of the root entities.
The root entity should be the top-level parent in the data tree that is sent to the plan. It is the entity for which the related entities are configured and the data retrieved.
-
All Columns (Boolean) - If selected:
-
Events for all columns in the selected entity are published.
-
Including meta columns and columns in this section returns an error.
-
-
Meta Columns - Define the metadata columns that are provided in the publishing plan.
-
Entity Columns - Define the entity columns that are provided in the publishing plan.
-
Old Value (Boolean) - If selected, the original values for those columns are sent to the plan.
-
Actual Value (Boolean) - If selected, the current values for those columns are sent to the plan.
-
-
Related Entities - Choose the related entities you want to include in the publisher (only child entities of the defined root entity can be chosen). The depth of relations is dependent on your model.
-
-
Select OK to save your changes.
If you want to save your changes without exiting the configuration, select Apply instead. -
To update the configuration, go to Output Interfaces > Event Handlers (right-click) > Generate.
Traversing plan publisher - example configuration
<publisher class="com.ataccama.nme.dqc.event.EventPlanPublisher">
<planFileName>../engine/events/tp_party_master.comp</planFileName>
<entities>
<entity layer="master" masterView="masters" name="party"/>
<entity layer="master" masterView="masters" name="address"/>
<entity layer="master" masterView="masters" name="contact"/>
<entity layer="master" masterView="masters" name="id_document"/>
<entity layer="master" masterView="masters" name="consent"/>
<entity layer="instance" name="party"/>
</entities>
<adapter class="com.ataccama.nme.engine.event.handler.publishers.TraversingEventAdapter">
<root>
<master name="party" view="masters">
<childEntities>
<entity name="address" relationshipName="party" view="masters"/>
<entity name="contact" relationshipName="party_has_contact" view="masters"/>
<entity name="id_document" relationshipName="party" view="masters"/>
<entity name="consent" relationshipName="party" view="masters"/>
</childEntities>
<instance name="party"/>
</master>
</root>
</adapter>
</publisher>
iSM publisher
To configure the iSM publisher:
-
Go to Output Interfaces > Event Handlers > [your processor] > [your publisher] (right-click) > Edit.
Skip this step if you’re adding a new publisher using the [your processor] (right-click) > New Publisher option.
-
On the publisher General tab, configure the following:
You can access these settings directly from the processor definition. On the Publishers tab, double-click the row number of the publisher you want to edit. Alternatively, right-click the publisher and select Edit. -
Enable (Boolean) - Must be selected to use the publisher.
-
Description (optional) - Description of the publisher.
-
Host - Target host (for example,
localhost). -
Port - Target port (for example,
8888). -
Target System - The
targetSystemproperty in the message. For more information, see Event Handler > iSM publisher.
-
-
Optionally, configure the advanced settings on the Advanced Settings tab:
-
Filter Incoming Events Setting (Boolean) - If selected, filters the flow of incoming events according to the configuration defined. See Filters.
-
Retry Publishing Settings (Boolean) - If selected, after a failed attempt, publishing is retried according to the configuration defined. See Retry publishing.
-
-
Select OK to save your changes.
If you want to save your changes without exiting the configuration, select Apply instead. -
To update the configuration, go to Output Interfaces > Event Handlers (right-click) > Generate.
Filters
When defining a filter for events, specify the following:
-
General Filter Expression - A common filter based on metadata attributes: only the
metadot-source can be used here.A Boolean ONE expression can be specified. In that case, only the events for which the expression evaluates to
trueare accepted. See Event Handler > Evaluation of ONE expressions. -
Filtered Entities - Define which entities should be monitored for data changes (events from all other entities are filtered out). Optionally, use a filter expression on the entity level:
meta,new, andolddot-sources are supported.Each entity can have its own
filterExpressionthat works exactly like thefilterExpressionexcept all the data columns are available (old and new values of the changed records as well as metadata columns).
Retry publishing
When defining retry publishing settings, specify the following:
-
Global Retries - Initial number of retries.
-
Retry Delay - Delay before retrying, after a failed attempt to publish an event (in seconds).
-
Consecutive Success Granting Retry - Number of consecutive successes that will generate another retry (
0means no retries are generated). -
Maximum Retries - Limit of retries allowed.
Transformers
To define transformers, specify the following:
-
Simple XML Transformer: Transforms events to simple predefined XML. Does not require any template configuration.
-
Description Indent (Boolean) - If selected (default), the XML is pretty-printed.
-
Include Old Values (Boolean) - If selected, the XML contains the old values of attributes.
-
-
Expressions Template Transformer:
-
Entity Name - Optional entry that declares the entity that flows into this transformer (and if there’s an incoming event from a different entity, an exception is thrown). If omitted, all entities are accepted, but no data columns are available.
-
Template - Message text with nested ONE expressions.
Example template definition<transformer class="com.ataccama.nme.engine.event.handler.publishers.transformers.ExpressionTemplateTransformer"> <entity name="party" layer="master" masterView="MasterView" /> <template>Some text with ${'ONE expressions'} inside it.</template> </transformer>
-
-
Was this page useful?