Trigger Configuration

The trigger configuration is a central aspect for integration of Product 360 with 3rd party systems. Multiple events are available which can be used to configure a specific trigger. When the trigger fires, the payload is sent either to an Informatica BPM (aka ActiveVOS) rest endpoint, or to an arbitrary message queue. For more details on the message queue api, please see it's documentation.

Besides the integration use case triggers are also used to execute data quality rules. Details for this use case can be found in the data quality knowledge base. It's important to note that the documentation about the events and conditions applies to both use cases!

General

A trigger configuration has three aspects. The event, a list of conditions and the communication target. The event defines the general event like "an object has been created", or an "export has been finished". Conditions provide event specific rules that need to be met in order for the trigger to fire. The communication target defines the endpoint of the trigger, the target.

Create configuration

Click on "Management >> Business process Management " menu tab , and it will open a new window to define the configuration of a trigger execution as shown in below screenshot.

images/download/attachments/506623562/image2020-11-22_18-33-16.png

You need to right click on any of the events in the tree and the popup window will provide you the "Add configuration" menu entry

images/download/attachments/506623562/image2020-11-22_19-32-0.png

Once you click "Add configuration" it will open below configuration page. You need to provide the name for the trigger configuration that you are going to create.

images/download/attachments/506623562/image2020-11-22_19-37-10.png

The above trigger configuration window is showing three sections (from left to right)

  1. Event selection

  2. Condition configuration

  3. Target configuration
    Defines the communication target as well as the payload type

Conditions

This section provides conditions which must be met in order for the trigger to fire. All condition which is selected (checkbox) must evaluate to true. Single options might have an OR logic within the option. This is typically true for multi-select options where either one of the selected options must be true. Different conditions must all be true thou

The available conditions are dependent on the event which has been chosen. Many of the conditions are available for multiple events if not for all of them.

All Events

These conditions are available for all events

Inactive

If this condition is checked , the trigger configuration will be deactivated and will not fire.

images/download/attachments/506623562/image2020-11-22_20-4-51.png

Trigger configuration can be activated after removing this check

images/download/attachments/506623562/image2020-11-22_20-6-51.png

Users

This condition gives option to filter out the users for which trigger will be executed. The below screenshot is showing that trigger configuration has chosen for two users - admin and Administrator, but not testUser. So trigger will be executed for admin and Administrator users only. Trigger will not be fired for any changes for user, testUser.

images/download/attachments/506623562/image2020-11-22_20-7-57.png

User groups

This condition gives option to filter out trigger execution for user groups. Trigger will be executed only for selected user groups.

images/download/attachments/506623562/image2020-11-22_20-13-17.png

Catalog

This condition gives option to filter out the trigger execution for catalogs containing the created entity.

images/download/attachments/506623562/image2020-11-22_20-43-27.png

Suppliers

This condition will give option to filter out the trigger execution for suppliers of the supplier catalog.

(Not available for Export Started)

images/download/attachments/506623562/image2020-11-22_20-46-35.png

Entity Created, Entity Changed, Entity Deleted

Additional conditions for create, change and delete of entity items

Root Entities must have Audit Trail Settings

Ensure that Audit Trail Settings is present for a root entity in the repository. If this parameter is not present then triggers will not fire for this entity or any of its corresponding field changes. Audit Trail is a mandatory feature in order to guarantee the execution of triggers even in high load or critical situations.

Data Types

This condition gives option to filter out trigger execution for different data types. Multiple data types can be selected , and trigger will be executed for those selected data types.

images/download/attachments/506623562/image2020-11-22_20-15-55.png

Initiators

This condition gives an option to filter the trigger execution by an initiator of the entity creation/modification. Example - if user chooses "Service API" then the trigger will be executed only for entity creation/modification through Service API. The initiators are not only used for setting up trigger rules, but also persisted within the Audit Trail change document and visible in the Audit Trail user interface. So a user can always see which particular initiator triggered the modification to understand the changes better.

images/download/attachments/506623562/image2020-11-22_20-58-39.png

Module Identifier

Module Label

Description

CUSTOMIZING

Customizing

Can be used from within customized code contributions to differentiate from other initiators. The customization should in general use the correct initiator depending on where it is located. So, in case the import logic is customized, "Import" should be provided as initiator from within the customization. However, there might be implementations which are rather independent. A custom job should use the "Customizing" initiator.

ENVIRONMENT_TRANSFER

Environment transfer

Is used if the environment transfer framework creates or modifies an entity record. The environment transfer framework is executed with the "Extract/Integrate Environment" capability of Product 360.

IMPORT

Import

Is used if the import initiated the creation/modification of an entity record.

MERGE

Merge

Is used if the merge operation initiated the creation/modification of an entity record.

MIGRATION

Migration

Is used for an Audit Trail data migration tasks. This is solely to capture the migration of audit trail data from the previous SQL storage to the document-based storage in Elasticsearch (since 10.1).

REVISION

Revision

Is used if an entity record is added/updated to/in a specific version (revision).

SERVICEAPI

Service API

Is used if an entity record is created/modified via direct Service API operation (typically List API). It's not used when an import is scheduled via the service api. In this case "Import" is used.

UI

User

Is used if a user directly triggered the event from within the user interface of Product 360.

OTHER

Other

Is used if none of the other initiator modules matches the action (e.g. some select system jobs). In case there would be no initiator module provided when the object is persisted, "Other" is used as fallback as well (e.g. customized code contributions which have not been updated to the new API will use "Other" as fall back by default until adjusted again).

Other vs. User vs. UI

In versions prior the release of 10.1 there was no "Other" initiator visible in the trigger configuration. That means previously "User" has been persisted as "OTHER" as there was no explicit "User" element prior Product 360 10.1. As the initiator module is now also visualized within the Audit Trail history views, we wanted to clean this up and clarify which action has been triggered from within the applications GUI. For this we introduced the new initiator "UI" which is labeled as "User".

If upgrading from a release prior 10.1, all trigger configurations which have been configured for the "User" initiator will still appear as "Other", given the above. We strongly recommend checking all trigger configurations accordingly to adjust them if needed.

Entity Created, Entity Changed

Modification Fields

Field must supports Audit Trail

If a field is not recorded for audit trail (because it's supportAuditTrail setting is set to false in the repository) it will not be part of the change summary structure which is used for the Modified Fields condition. This condition will therefore never be true for these fields. Please note that the field selection dialog of the modified fields condition will not provide these fields so this limitation might only be relevant for pre-exiting configurations.

Modification fields provides option to filter out trigger execution. At least one of the fields need to be modified for the trigger rule to succeed.

Modifications fields can be chosen in two different ways -

  1. Channel - Channel is combination of multiple fields. Please refer channel section for more details.

  2. Fields :- Individual fields can be selected.

Channel

One or multiple channels can be selected.

images/download/attachments/506623562/image2020-11-22_20-25-43.png

Fields

First data type needs to selected and then field Selection . Below sample picture is showing item data has been chosen.

images/download/attachments/506623562/image2020-11-22_20-31-55.png

Once you select the data type as shown in above picture then click "Field Selection" , and it will popup new field rule conditions. ( As shown in below picture)

images/download/attachments/506623562/image2020-11-22_20-33-26.png

Click ok after selecting fields that you want to chose for executing trigger. After clicking ok Modified fields will look like as below picture.

images/download/attachments/506623562/image2020-11-22_20-40-58.png

Import Completed

Import mapping

The trigger will fire if the given import mapping is used (works only with server side persisted import mappings)

images/download/attachments/506623562/image2022-7-27_11-26-53.png

Purpose of import mapping

Trigger will fire if the import mapping has the given purpose

images/download/attachments/506623562/image2022-7-27_11-27-54.png

Export Started

Export profile

The trigger will started if the defined profile is used

images/download/attachments/506623562/image2022-7-27_11-24-38.png

Export format template

The trigger will be started when the given format template is used

images/download/attachments/506623562/image2022-7-27_11-25-21.png

Export variable

The trigger will only fire when the export has the defined parameter with the given value

images/download/attachments/506623562/image2022-7-27_11-25-52.png

Trigger Target

The target section provides specific settings based on the communication protocol to be used.

Communication

Communication section, defines the protocol and details on endpoints.

images/download/attachments/506623562/image2020-11-22_21-0-42.png

Either Message Queue or Rest based. Please have a closer look at the Message Queue API documentation in which we described how the Product 360 server needs to be configured so this communication option is available.

Queue

The message queue as configured in the server properties (also here see the Message Queue API documentation). There can be multiple queues configured.

images/download/attachments/506623562/image2020-11-23_8-21-40.png

Service endpoint

The name of the service endpoint. The Informatica BPM MQ Integration uses this parameter to route the message payload to the correct workflow. 3rd party applications can use this parameter for similar reasons.

images/download/attachments/506623562/image2020-11-23_8-24-41.png

Payloads

Payloads are also event specific. Some events provide multiple payload types to chose from

Item Created, Item Changed

For Item Created and Item Changed there are three different payload types to choose from. The payload for an entity change event will contain details about only the changed field, while entity created payload will have all the sub-entities and fields with which item is created.

images/download/attachments/506623562/image2022-7-27_11-28-59.png

Object and Change Meta

This payload contains information about meta attributes as defined in the Entity item change document (and below) but does not contain any information about _current and _old values.

Meta Attribute

Description

_module

defines which area of the application has triggered the modification. Possible values are IMPORT, MERGE, CLONE, SERVICEAPI, REVISION, ENVIRONMENT_TRANSFER, UI, OTHER

_entity

root entity which is changed

_identifier

external identifier of the entity item

_user

entity item of the user which executed the CRUD operation.

  • internalId = Service API syntax with internal numeric IDs - includes the container in case the entity item has one

  • externalId = Service API syntax with the alphanumeric identifier of the entity item. Includes the container as well in case the entity item has one

_revision

the revision in which the operation has been performed

_container

the container of the root entity record

_entityItem

the root entity record's proxy information

  • externalId = External identifier of the entity, same as _identifier attribute.

  • internalId = Internal identifier of the entity.

_eventTimestamp

timestamp at which this document is created

_changeType

the change type of the entity record. Every entity record has a change type.

  • CREATED = the entity record has been created (this implies that all children of this also have been created)

  • CHANGED = the entity record has been changed. Also it's children MIGHT have been changed, but at least the entity itself has changed

  • CHANGED_CHILD = only one or multiple children of this entity record has changed, not the record itself

  • DELETED_SOFT = the entity record has been marked as deleted. This implies that all children of this entity also have been deleted

  • DELETED_HARD = the entity item has been hard (=physically) deleted from the database

_changedFields

an array of fields which got changed (fields are without qualifications)

_changedEntities

an array of entity identifiers which are part of the change summary (but only in case the entity is created, changed or deleted - not for changed_child!)

Entity Change - Object and Change Meta
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<infaBPMRequest>
<entityId>11@1</entityId>
<entity>Article</entity>
<data>
<entry>
<key>catalog.label</key>
<value>MASTER</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>MyChangeTrigger</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.persistence.trigger.entityChanged</value>
</entry>
<entry>
<key>user.label</key>
<value>'testUser'</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>Allmighty</value>
</entry>
</data>
<entityItemChange>
<_module>UI</_module>
<_entity>Article</_entity>
<_identifier>Article_1603223965867005</_identifier>
<_user>
<entityId>2600</entityId>
<externalId>'testUser'</externalId>
<internalId>100</internalId>
</_user>
<_revision>
<entityId>5600</entityId>
<externalId>'root'</externalId>
<internalId>1</internalId>
</_revision>
<_container>
<entityId>2900</entityId>
<externalId>'MASTER'</externalId>
<internalId>1</internalId>
</_container>
<_entityItem>
<entityId>1000</entityId>
<externalId>'Article_1603223965867005'@'MASTER'</externalId>
<internalId>11@1</internalId>
</_entityItem>
<_eventTimestamp>2020-10-28T14:36:16.750Z</_eventTimestamp>
<_changeType>CHANGED</_changeType>
<_changedFields>
<_changedField>Article.EAN</_changedField>
</_changedFields>
<_changedEntities>
<_changedEntity>Article</_changedEntity>
</_changedEntities>
</entityItemChange>
</infaBPMRequest>
Entity Created - Object and Change Meta
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<infaBPMRequest>
<entityId>23@1</entityId>
<entity>Article</entity>
<data>
<entry>
<key>catalog.label</key>
<value>MASTER</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>MyCreatedTrigger</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.persistence.trigger.entityCreated</value>
</entry>
<entry>
<key>user.label</key>
<value>'testUser'</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>Allmighty</value>
</entry>
</data>
<entityItemChange>
<_module>UI</_module>
<_entity>Article</_entity>
<_identifier>Article_1603223965881011</_identifier>
<_user>
<entityId>2600</entityId>
<externalId>'testUser'</externalId>
<internalId>100</internalId>
</_user>
<_revision>
<entityId>5600</entityId>
<externalId>'root'</externalId>
<internalId>1</internalId>
</_revision>
<_container>
<entityId>2900</entityId>
<externalId>'MASTER'</externalId>
<internalId>1</internalId>
</_container>
<_entityItem>
<entityId>1000</entityId>
<externalId>'Article_1603223965881011'@'MASTER'</externalId>
<internalId>23@1</internalId>
</_entityItem>
<_eventTimestamp>2020-10-28T14:55:08.160Z</_eventTimestamp>
<_changeType>CREATED</_changeType>
<_changedFields>
<_changedField>Article.SupplierAID</_changedField>
<_changedField>Article.MainSupplier</_changedField>
<_changedField>Article.NoCUperOU</_changedField>
<_changedField>Article.PriceQuantity</_changedField>
<_changedField>Article.QuantityMin</_changedField>
<_changedField>Article.QuantityInterval</_changedField>
<_changedField>Article.CurrentStatus</_changedField>
<_changedField>Article.SoldOnlyInKits</_changedField>
<_changedField>Article.KitParent</_changedField>
</_changedFields>
<_changedEntities>
<_changedEntity>Article</_changedEntity>
</_changedEntities>
</entityItemChange>
</infaBPMRequest>

Object and Change Summary

This payload contains information about meta attributes as well as the full changeSummary as defined in the Entity item change document

Data Attribute

Description

_changeSummary

The actual change summary starting from the root entity. It contain an entry from all fields which are changed( present in _changeFields).

_old : this is the old value of field before this change. This will not be available for entity created event as it is just created and doesn't have a old value for any field.

_current : this is the current value of field after the change.

Entity Change - Object and Change Summary
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<infaBPMRequest>
<entityId>11@1</entityId>
<entity>Article</entity>
<data>
<entry>
<key>catalog.label</key>
<value>MASTER</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>MyChangeTrigger</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.persistence.trigger.entityChanged</value>
</entry>
<entry>
<key>user.label</key>
<value>'testUser'</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>Allmighty</value>
</entry>
</data>
<entityItemChange>
<_module>UI</_module>
<_entity>Article</_entity>
<_identifier>Article_1603223965867005</_identifier>
<_user>
<entityId>2600</entityId>
<externalId>'testUser'</externalId>
<internalId>100</internalId>
</_user>
<_revision>
<entityId>5600</entityId>
<externalId>'root'</externalId>
<internalId>1</internalId>
</_revision>
<_container>
<entityId>2900</entityId>
<externalId>'MASTER'</externalId>
<internalId>1</internalId>
</_container>
<_entityItem>
<entityId>1000</entityId>
<externalId>'Article_1603223965867005'@'MASTER'</externalId>
<internalId>11@1</internalId>
</_entityItem>
<_eventTimestamp>2020-10-28T14:45:24.750Z</_eventTimestamp>
<_changeType>CHANGED</_changeType>
<_changedFields>
<_changedField>Article.EAN</_changedField>
</_changedFields>
<_changedEntities>
<_changedEntity>Article</_changedEntity>
</_changedEntities>
<_changeSummary>
<ObjectNode>
<article>
<_changeType>CHANGED</_changeType>
<_mainSupplierProxy>
<_entityId>2800</_entityId>
<_internalId>3</_internalId>
<_externalId>'Heiler Product Manager'</_externalId>
</_mainSupplierProxy>
<gtin>
<_old>1234</_old>
<_current>123</_current>
</gtin>
</article>
</ObjectNode>
</_changeSummary>
</entityItemChange>
</infaBPMRequest>
Entity Created - Object and Change Summary
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<infaBPMRequest>
<entityId>24@1</entityId>
<entity>Article</entity>
<data>
<entry>
<key>catalog.label</key>
<value>MASTER</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>MyCreatedTrigger</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.persistence.trigger.entityCreated</value>
</entry>
<entry>
<key>user.label</key>
<value>'testUser'</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>Allmighty</value>
</entry>
</data>
<entityItemChange>
<_module>UI</_module>
<_entity>Article</_entity>
<_identifier>Article_1603223965881012</_identifier>
<_user>
<entityId>2600</entityId>
<externalId>'testUser'</externalId>
<internalId>100</internalId>
</_user>
<_revision>
<entityId>5600</entityId>
<externalId>'root'</externalId>
<internalId>1</internalId>
</_revision>
<_container>
<entityId>2900</entityId>
<externalId>'MASTER'</externalId>
<internalId>1</internalId>
</_container>
<_entityItem>
<entityId>1000</entityId>
<externalId>'Article_1603223965881012'@'MASTER'</externalId>
<internalId>24@1</internalId>
</_entityItem>
<_eventTimestamp>2020-10-28T15:00:43.870Z</_eventTimestamp>
<_changeType>CREATED</_changeType>
<_changedFields>
<_changedField>Article.SupplierAID</_changedField>
<_changedField>Article.MainSupplier</_changedField>
<_changedField>Article.NoCUperOU</_changedField>
<_changedField>Article.PriceQuantity</_changedField>
<_changedField>Article.QuantityMin</_changedField>
<_changedField>Article.QuantityInterval</_changedField>
<_changedField>Article.CurrentStatus</_changedField>
<_changedField>Article.SoldOnlyInKits</_changedField>
<_changedField>Article.KitParent</_changedField>
</_changedFields>
<_changedEntities>
<_changedEntity>Article</_changedEntity>
</_changedEntities>
<_changeSummary>
<ObjectNode>
<article>
<_changeType>CREATED</_changeType>
<_mainSupplierProxy>
<_entityId>2800</_entityId>
<_internalId>3</_internalId>
<_externalId>'Heiler Product Manager'</_externalId>
</_mainSupplierProxy>
<identifier>
<_current>Article_1603223965881012</_current>
</identifier>
<noCUperOU>
<_current>1</_current>
</noCUperOU>
<priceQuantity>
<_current>1</_current>
</priceQuantity>
<quantityMin>
<_current>1</_current>
</quantityMin>
<quantityInterval>
<_current>1</_current>
</quantityInterval>
<mainSupplier>
<_current>
<_key>
<_entityId>2800</_entityId>
<_internalId>3</_internalId>
<_externalId>'Heiler Product Manager'</_externalId>
</_key>
<_code>Heiler Product Manager</_code>
</_current>
</mainSupplier>
<currentStatus>
<_current>
<_key>100</_key>
</_current>
</currentStatus>
<kitParent>
<_current>false</_current>
</kitParent>
<soldOnlyInKits>
<_current>false</_current>
</soldOnlyInKits>
</article>
</ObjectNode>
</_changeSummary>
</entityItemChange>
</infaBPMRequest>

Legacy payload ( <10.1, deprecated)

This payload is similar to trigger payload prior to 10.1 releases (there was just this payload for triggers). Although this payload is slightly different from the older one (< 10.1). From 10.1, legacy payload will contain fieldChangeInfos object which will depict information about old and new value of all the modified fields in case on entity changed trigger. For entity created trigger, old values will be empty in fieldChangeInfo object.

This payload is provided just to support workflows which are created before 10.1 release. We strongly discourage to use this payload, as new payloads (Object and Change Summary, Object and Change Meta) are much compact, easier to use and provide performance improvement.

Entity Changed - Legacy payload (< 10.1, deprecated)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<infaBPMRequest>
<entityId>1@1</entityId>
<entity>Article</entity>
<data>
<entry>
<key>catalog.label</key>
<value>MASTER</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>TriggerShortDescription</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.persistence.trigger.entityChanged</value>
</entry>
<entry>
<key>user.label</key>
<value>'testUser'</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>UserGroup_1624477576996002</value>
</entry>
</data>
<fieldChangeInfos>
<fieldChangeInfo>
<fieldIdentifier>Article.LastModified</fieldIdentifier>
<valueNew>1633025089610</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>ArticleLang.DescriptionShort</fieldIdentifier>
<valueNew>12345969966</valueNew>
<valueOld>1234596996</valueOld>
<logicalKeys>
<identifier>ArticleLangType.LK.Res_Text100_01</identifier>
<value>DEFAULT</value>
</logicalKeys>
<logicalKeys>
<identifier>ArticleLangType.LK.Res_Int_01</identifier>
<value>0</value>
</logicalKeys>
<logicalKeys>
<identifier>ArticleLangType.LK.EntityId</identifier>
<value xsi:type="xs:short"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1005
</value>
</logicalKeys>
<logicalKeys>
<identifier>ArticleLangType.LK.Channel</identifier>
<value>
<id>1</id>
<label>Default Channel</label>
</value>
</logicalKeys>
<logicalKeys>
<identifier>ArticleLangType.LK.Language</identifier>
<value>9</value>
</logicalKeys>
</fieldChangeInfo>
</fieldChangeInfos>
</infaBPMRequest>
Entity Created - Legacy payload (< 10.1, deprecated)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<infaBPMRequest>
<entityId>23@1</entityId>
<entity>Article</entity>
<data>
<entry>
<key>catalog.label</key>
<value>MASTER</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>New</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.persistence.trigger.entityCreated</value>
</entry>
<entry>
<key>user.label</key>
<value>'testUser'</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>UserGroup_1624477576996002</value>
</entry>
</data>
<fieldChangeInfos>
<fieldChangeInfo>
<fieldIdentifier>Article.LastModified</fieldIdentifier>
<valueNew>1633025250040</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.SupplierAID</fieldIdentifier>
<valueNew>Article_1624477577009002</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.NoCUperOU</fieldIdentifier>
<valueNew xsi:type="xs:decimal"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1
</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.PriceQuantity</fieldIdentifier>
<valueNew xsi:type="xs:decimal"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1
</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.QuantityMin</fieldIdentifier>
<valueNew xsi:type="xs:decimal"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1
</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.QuantityInterval</fieldIdentifier>
<valueNew xsi:type="xs:decimal"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1
</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.MainSupplier</fieldIdentifier>
<valueNew>
<id>3</id>
<label>Heiler Product Manager</label>
</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.CurrentStatus</fieldIdentifier>
<valueNew>100</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.KitParent</fieldIdentifier>
<valueNew xsi:type="xs:boolean"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false
</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
<fieldChangeInfo>
<fieldIdentifier>Article.SoldOnlyInKits</fieldIdentifier>
<valueNew xsi:type="xs:boolean"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false
</valueNew>
<valueOld></valueOld>
</fieldChangeInfo>
</fieldChangeInfos>
</infaBPMRequest>

Entity Deleted

This trigger event only has a single payload, so it does not matter which payload type is chosen while configuring this trigger.

EntityItemDeletedDocument Attribute

Description

_module

defines which area of the application has triggered the modification. Possible values are IMPORT, MERGE, CLONE, SERVICEAPI, REVISION, ENVIRONMENT_TRANSFER, UI, OTHER

_entity

root entity which is changed

_user

entity item of the user which executed the CRUD operation.

  • internalId = Service API syntax with internal numeric IDs - includes the container in case the entity item has one

  • externalId = Service API syntax with the alphanumeric identifier of the entity item. Includes the container as well in case the entity item has one

_revision

the revision in which the operation has been performed

_container

the container of the root entity record

_eventTimestamp

timestamp at which this document is deleted

_changeType

indicates that change type is Deleted

_identifiers

a list of external identifiers which are deleted.

_entityItems

list of entities that are deleted

Entity deleted
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<infaBPMRequest>
<entity>Article</entity>
<reportId>231</reportId>
<dataSource>PCM_MASTER</dataSource>
<data>
<entry>
<key>catalog.label</key>
<value>MASTER</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>New</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.persistence.trigger.entityDeleted</value>
</entry>
<entry>
<key>user.label</key>
<value>'testUser'</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>Allmighty</value>
</entry>
</data>
<entityItemsDeleted>
<_module>OTHER</_module>
<_entity>Article</_entity>
<_user>
<entityId>2600</entityId>
<externalId>'testUser'</externalId>
<internalId>100</internalId>
</_user>
<_revision>
<entityId>5600</entityId>
<externalId>'root'</externalId>
<internalId>1</internalId>
</_revision>
<_container>
<entityId>2900</entityId>
<externalId>'MASTER'</externalId>
<internalId>1</internalId>
</_container>
<_eventTimestamp>2020-10-28T15:07:35.230Z</_eventTimestamp>
<_changeType>DELETED</_changeType>
<_identifiers>
<_identifier>Article_1603223965881011</_identifier>
</_identifiers>
<_entityItems>
<_entityItem>
<entityId>1000</entityId>
<externalId>'Article_1603223965881011'@'MASTER'</externalId>
<internalId>23@1</internalId>
</_entityItem>
</_entityItems>
</entityItemsDeleted>
</infaBPMRequest>

Import completed

This trigger event only has a single payload, so it does not matter which payload type is chosen while configuring this trigger.

<rest:payload contentType="text/xml">
<infaBPMRequest>
<entity>Article</entity>
<reportId>10302</reportId>
<dataSource>PCM_SUPPLIER</dataSource>
<data>
<entry>
<key>catalog</key>
<value>1000[|]BARDUSCH_12345</value>
</entry>
<entry>
<key>importProfile</key>
<value>1[|]</value>
</entry>
<entry>
<key>importProfilePurpose</key>
<value>ManualImport</value>
</entry>
<entry>
<key>supplier</key>
<value>100[|]</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.import.trigger.importFinished</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>NewImportCompletedTrigger</value>
</entry>
<entry>
<key>user</key>
<value>103[|]</value>
</entry>
<entry>
<key>user.label</key>
<value>mpaix</value>
</entry>
<entry>
<key>userGroup</key>
<value>[1[|], 3[|]]</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>AllRights,Einkauf Textil Mona</value>
</entry>
<entry>
<key>workflowExpectsReport</key>
<value>true</value>
</entry>
</data>
</infaBPMRequest>
</rest:payload>

Merge started

This trigger event only has a single payload, so it does not matter which payload type is chosen while configuring this trigger.

<rest:payload contentType="text/xml">
<infaBPMRequest>
<entity>Article</entity>
<reportId>10311</reportId>
<dataSource>PCM_SUPPLIER</dataSource>
<data>
<entry>
<key>catalog</key>
<value>1001[|]</value>
</entry>
<entry>
<key>catalog.label</key>
<value>BARDUSCH</value>
</entry>
<entry>
<key>supplier</key>
<value>100[|]</value>
</entry>
<entry>
<key>supplier.label</key>
<value>Bardusch</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.merge.trigger.mergeStarted</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>NewMergeStartedTrigger</value>
</entry>
<entry>
<key>user</key>
<value>103[|]</value>
</entry>
<entry>
<key>user.label</key>
<value>mpaix</value>
</entry>
<entry>
<key>userGroup</key>
<value>[1[|], 3[|]]</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>AllRights,Einkauf Textil Mona</value>
</entry>
<entry>
<key>workflowExpectsReport</key>
<value>true</value>
</entry>
</data>
</infaBPMRequest>
</rest:payload>

Merge completed

This trigger event only has a single payload, so it does not matter which payload type is chosen while configuring this trigger.

<rest:payload contentType="text/xml">
<infaBPMRequest>
<entity>Article</entity>
<reportId>502</reportId>
<dataSource>PCM_MASTER</dataSource>
<data>
<entry>
<key>catalog</key>
<value>1001[|]</value>
</entry>
<entry>
<key>catalog.label</key>
<value>BARDUSCH</value>
</entry>
<entry>
<key>supplier</key>
<value>3[|]</value>
</entry>
<entry>
<key>supplier.label</key>
<value>Heiler Product Manager</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.merge.trigger.mergeFinished</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>NewMergeCompletedTrigger</value>
</entry>
<entry>
<key>user</key>
<value>103[|]</value>
</entry>
<entry>
<key>user.label</key>
<value>mpaix</value>
</entry>
<entry>
<key>userGroup</key>
<value>[1[|], 3[|]]</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>AllRights,Einkauf Textil Mona</value>
</entry>
<entry>
<key>workflowExpectsReport</key>
<value>true</value>
</entry>
</data>
</infaBPMRequest>
</rest:payload>

Export started

This trigger event only has a single payload, so it does not matter which payload type is chosen while configuring this trigger.

<rest:payload contentType="text/xml">
<infaBPMRequest>
<entity>Article</entity>
<reportId>10314</reportId>
<dataSource>PCM_SUPPLIER</dataSource>
<data>
<entry>
<key>catalog</key>
<value>1001[|]</value>
</entry>
<entry>
<key>catalog.label</key>
<value>BARDUSCH</value>
</entry>
<entry>
<key>exportParameters</key>
<value>{catalog=1001[|], ArticleListDataProvider.revision=RevisionToken[ID=1]}</value>
</entry>
<entry>
<key>exportTemplateProxy</key>
<value>3[|]ExportTemplate_7917664786495</value>
</entry>
<entry>
<key>triggerIdentifier</key>
<value>hlr.trigger.preExport</value>
</entry>
<entry>
<key>triggerConfiguration</key>
<value>NewExportStartedTrigger</value>
</entry>
<entry>
<key>user</key>
<value>103[|]</value>
</entry>
<entry>
<key>user.label</key>
<value>mpaix</value>
</entry>
<entry>
<key>userGroup</key>
<value>[1[|], 3[|]]</value>
</entry>
<entry>
<key>userGroup.label</key>
<value>AllRights,Einkauf Textil Mona</value>
</entry>
<entry>
<key>workflowExpectsReport</key>
<value>true</value>
</entry>
</data>
</infaBPMRequest>
</rest:payload>