Модуль com.universe.mdm.notifications

Модуль отвечает за отправку уведомлений о различных событиях системы.

JSON схемы объектов модуль

NotificationExternalKey

NotificationExternalKey - внешний ключ записи. Содержит External ID и систему-источник.

Поле

Описание

externalId

External id записи

sourceSystem

Система-источник этого external id

Примеры:

  • Внешняя система источник:

    {
      "externalId": "test-code-3",
      "sourceSystem": "test"
    }
    
  • Система-источник universe:

    {
      "externalId": "4e8aa15e-6d85-11ee-9ece-c5dc042fcb12",
      "sourceSystem": "universe"
    }
    

NotificationRecordKeys

NotificationRecordKeys - ключи записи. Содержат имя реестра/справочника записи, Etalon ID и список NotificationExternalKey с внешними ключами записи.

Поле

Описание

Значения

entityName

Имя реестра/справочника записи

etalonId

Etalon id записи

externalKeys

Список NotificationExternalKey записи

Список Notification

Пример:

  • Запись справочника:

    {
      "entityName": "lookup24173",
      "etalonId": "4e8aa15c-6d85-11ee-9ece-c5dc042fcb12",
      "externalKeys": [
        {
          "externalId": "4e8aa15e-6d85-11ee-9ece-c5dc042fcb12",
          "sourceSystem": "universe"
        },
        {
          "externalId": "test-code-3",
          "sourceSystem": "test"
        }
      ]
    }
    

LookupLinkAttribute

LookupLinkAttribute - значение атрибута типа "Ссылка на справочник".

Поле

Описание

Значения

codeType

Тип кодового атрибута справочника, на который ссылается вставляемая запись

"String"/"Integer" - строковый/целочисленный кодовый атрибут

etalonId

Etalon id записи справочника, на которую ссылается вставляемая запись

value

Значение кодового атрибута записи справочника, на которое ссылается вставляемая запись

recordKeys

Ключи NotificationRecordKeys записи справочника, на которые ссылается вставляемая запись

NotificationRecordKeys object

Примечания:

  • r``ecordKeys = null``, если параметр com.universe.mdm.notifications.notifications.fetchRecordKeys = false

Примеры:

  • Строковый кодовый атрибут с ключами записи справочника:

    {
     "codeType": "String",
     "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
     "value": "code-5",
     "recordKeys": {
       "entityName": "lookup24173",
       "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
       "externalKeys": [
         {
           "externalId": "4e9835f8-6d85-11ee-9ece-c5dc042fcb12",
           "sourceSystem": "universe"
         },
         {
           "externalId": "test-code-5",
           "sourceSystem": "test"
         }
       ]
      }
    }
    
  • Целочисленный кодовый атрибут с ключами записи справочника:

    {
      "codeType": "Integer",
      "etalonId": "9f72f852-6f2c-11ee-acd5-c5dc042fcb12",
      "value": 22,
      "recordKeys": {
        "entityName": "lookup24173int",
        "etalonId": "9f72f852-6f2c-11ee-acd5-c5dc042fcb12",
       "externalKeys": [
         {
            "externalId": "9d811270-6f2c-11ee-b55a-a176c542254c",
            "sourceSystem": "universe"
          }
       ]
      }
    }
    
  • Строковый кодовый атрибут без ключей записи справочника:

    {
      "codeType": "String",
      "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
      "value": "code-5",
      "recordKeys": null
    }
    
  • Целочисленный кодовый атрибут без ключей записи справочника:

    {
      "codeType": "Integer",
      "etalonId": "9f72f852-6f2c-11ee-acd5-c5dc042fcb12",
      "value": 22,
      "recordKeys": null
    }
    

LookupLinkValueChanges

LookupLinkValueChanges - изменение значения атрибута типа "Ссылка на справочник".

Поле

Описание

Значения

type

Тип события атрибута

"ADDED"/"UPDATED"/"DELETED" - атрибут добавлен/изменен/удален

previous

Предыдущее значение атрибута

LookupLinkAttribute object для простого атрибута

value

Значение кодового атрибута записи справочника, на которое ссылается вставляемая запись

recordKeys

Ключи NotificationRecordKeys записи справочника, на которые ссылается вставляемая запись

NotificationRecordKeys object

Примечания:

previous = null при добавлении атрибута. Список LookupLinkAttribute object для массив-атрибута. [] (пустой список) при добавлении значений в очищенный через UI массив-атрибут (в таком случае тип события - "UPDATED").

  • recordKeys = null, если параметр com.universe.mdm.notifications.notifications.fetchRecordKeys = false.

Примеры:

  • Изменение значения простого атрибута без указания ключей:

    {
      "type": "UPDATED",
      "previous": {
        "codeType": "Integer",
        "etalonId": "9ae9edbc-6f2c-11ee-acd5-c5dc042fcb12",
        "value": 11,
        "recordKeys": null
      },
      "actual": {
        "codeType": "Integer",
        "etalonId": "9f72f852-6f2c-11ee-acd5-c5dc042fcb12",
        "value": 22,
        "recordKeys": null
      }
    }
    
  • Изменение значения массива-атрибута без указания ключей:

    {
      "type": "UPDATED",
      "previous": [
        {
          "codeType": "String",
          "etalonId": "4e83c387-6d85-11ee-9ece-c5dc042fcb12",
          "value": "code-2",
          "recordKeys": null
        },
        {
          "codeType": "String",
          "etalonId": "4e73e502-6d85-11ee-9ece-c5dc042fcb12",
          "value": "code-1",
          "recordKeys": null
        }
      ],
      "actual": [
        {
          "codeType": "String",
          "etalonId": "4e8aa15c-6d85-11ee-9ece-c5dc042fcb12",
          "value": "code-3",
          "recordKeys": null
        },
        {
         "codeType": "String",
          "etalonId": "4e73e502-6d85-11ee-9ece-c5dc042fcb12",
          "value": "code-1",
          "recordKeys": null
        }
      ]
    }
    
  • Добавление значения простого атрибута без указания ключей:

    {
      "type": "ADDED",
      "previous": null,
      "actual": {
        "codeType": "String",
        "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
        "value": "code-5",
        "recordKeys": null
      }
    }
    

ValueChanges

ValueChanges - содержит изменение значения атрибута.

Поле

Описание

Значения

type

Тип изменения значения атрибута

"ADDED"/"UPDATED"/"DELETED" - значение добавлено/изменено/удалено

previous

Предыдущее значение атрибута в виде строки

actual

Новое значение атрибута в виде строки

Примечания:

  • Для previous и actual - отсутствие значения показывается как пустая строка ""

Примеры:

  • Добавление простого атрибута:

    {
      "type": "ADDED",
      "previous": "",
      "actual": "code-5"
    }
    
  • Изменение простого атрибута:

    {
      "type": "UPDATED",
      "previous": "code-5",
      "actual": "code-4"
    }
    
  • Добавление массив-атрибута:

    {
     "type": "ADDED",
      "previous": "",
      "actual": "[code-3, code-5]"
    }
    
  • Изменение массив-атрибута с очищением значений через UI, который возвращает пустой список:

    {
     "type": "UPDATED",
     "previous": "[code-3, code-5]",
     "actual": "[]"
    }
    

RecordChanges

RecordChanges - содержит информацию об изменении значений атрибутов записи / комплексного атрибута.

Поле

Описание

Значения

key

Ключ атрибута

attributes

Измененные атрибуты

Карта имя атрибута - ValueChanges object

changeType

Тип изменения

"ADDED"/"UPDATED"/"DELETED" - значение добавлено/изменено/удалено

lookupLinkAttributes

Новое значение атрибута в виде строки

Карта имя атрибута - LookupLinkValueChanges object

Примечания:

  • key = null у всех, кроме экземпляров комплексного атрибута; "0", "1" и т.д. у экземпляров комплексного атрибута, число - это порядковый номер экземпляра в списке значений комплексного атрибута, поэтому при удалении комплексного атрибута и добавлении нового событие будет "UPDATED", а не "ADDED".

  • В changeType для комплексного атрибута событие "DELETED" будет показываться только в случае, когда уменьшилось количество экземпляров комплексного атрибута в записи

  • lookupLinkAttributes = null в случае com.universe.mdm.notifications.notifications.fetchLookupLinkAttributesLookupKeys=false; {} в случае com.universe.mdm.notifications.notifications.fetchLookupLinkAttributesLookupKeys=true и отсутствии изменений в атрибутах типа "Ссылка на справочник"

Пример:

  • Добавление атрибутов без комплексных:

    {
      "key": null,
      "attributes": {
        "str": {
          "type": "ADDED",
          "previous": "",
          "actual": "test12"
        },
        "link": {
          "type": "ADDED",
          "previous": "",
          "actual": "code-5"
        }
      },
      "changeType": "UPDATED",
      "lookupLinkAttributes": {
        "link": {
          "type": "ADDED",
          "previous": null,
          "actual": {
            "codeType": "String",
            "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
            "value": "code-5",
           "recordKeys": null
          }
        }
      }
    }
    

RecordDiffResult

RecordDiffResult - содержит изменения значений атрибутов записи / комплексных атрибутов.

Поле

Описание

Значения

key

Ключ атрибута

null

attributes

Измененные атрибуты

Карта имя атрибута - ValueChanges object

changeType

Тип изменения

"ADDED"/"UPDATED"/"DELETED" - значение добавлено/изменено/удалено

lookupLinkAttributes

Новое значение атрибута в виде строки

Карта имя атрибута - LookupLinkValueChanges object

entityName

Имя реестра/справочника записи

nested

Изменения комплексных атрибутов

Карта имя комплексного атрибута - список RecordChanges object по одному RecordChanges object на один экземпляр измененного комплексного атрибута

Примечания:

  • В changeType для комплексного атрибута событие "DELETED" будет показываться только в случае, когда уменьшилось количество экземпляров комплексного атрибута в записи.

  • lookupLinkAttributes = null в случае com.universe.mdm.notifications.notifications.fetchLookupLinkAttributesLookupKeys=false; {} в случае com.universe.mdm.notifications.notifications.fetchLookupLinkAttributesLookupKeys=true и отсутствии изменений в атрибутах типа "Ссылка на справочник".

Примеры:

  • Изменение записи без изменения комплексных атрибутов:

    {
     "key": null,
      "attributes": {
        "str": {
          "type": "ADDED",
          "previous": "",
          "actual": "test12"
        },
        "link": {
         "type": "ADDED",
          "previous": "",
          "actual": "code-5"
        }
      },
      "changeType": "UPDATED",
      "lookupLinkAttributes": {
        "link": {
          "type": "ADDED",
          "previous": null,
         "actual": {
            "codeType": "String",
            "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
           "value": "code-5",
            "recordKeys": null
          }
       }
      },
      "entityName": "reg24173",
      "nested": {}
    }
    
  • Изменение записи с изменением комплексных атрибутов:

    {
      "key": null,
      "attributes": {
        "link": {
          "type": "ADDED",
          "previous": "",
          "actual": "code-5"
        },
        "linkArr": {
          "type": "ADDED",
          "previous": "",
          "actual": "[code-3, code-5]"
        }
      },
     "changeType": "UPDATED",
     "lookupLinkAttributes": {
        "link": {
          "type": "ADDED",
          "previous": null,
          "actual": {
            "codeType": "String",
            "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
            "value": "code-5",
            "recordKeys": null
          }
        },
        "linkArr": {
          "type": "ADDED",
          "previous": null,
          "actual": [
            {
              "codeType": "String",
              "etalonId": "4e8aa15c-6d85-11ee-9ece-c5dc042fcb12",
              "value": "code-3",
              "recordKeys": null
            },
            {
              "codeType": "String",
              "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
              "value": "code-5",
              "recordKeys": null
            }
          ]
        }
      },
      "entityName": "reg24173",
      "nested": {
        "nested": [
         {//первый комплексный атрибут
            "key": "0",
            "attributes": {
              "link": {
                "type": "ADDED",
                "previous": "",
                "actual": "code-4"
              },
              "linkArr": {
                "type": "ADDED",
                "previous": "",
                "actual": "[code-3, code-5]"
              }
            },
            "changeType": "UPDATED",
            "lookupLinkAttributes": {
              "link": {
                "type": "ADDED",
                "previous": null,
                "actual": {
                  "codeType": "String",
                  "etalonId": "4e917f31-6d85-11ee-9ece-c5dc042fcb12",
                  "value": "code-4",
                  "recordKeys": null
                }
              },
              "linkArr": {
                "type": "ADDED",
                "previous": null,
                "actual": [
                  {
                    "codeType": "String",
                    "etalonId": "4e8aa15c-6d85-11ee-9ece-c5dc042fcb12",
                    "value": "code-3",
                    "recordKeys": null
                  },
                  {
                    "codeType": "String",
                    "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
                    "value": "code-5",
                    "recordKeys": null
                  }
                ]
              }
            }
          },
          {//второй комплексный атрибут
            "key": "1",
            "attributes": {
              "link": {
                "type": "ADDED",
                "previous": "",
                "actual": "code-3"
              },
              "linkArr": {
                "type": "ADDED",
               "previous": "",
                "actual": "[code-1, code-2]"
              }
            },
            "changeType": "UPDATED",
            "lookupLinkAttributes": {
              "link": {
                "type": "ADDED",
                "previous": null,
                "actual": {
                  "codeType": "String",
                  "etalonId": "4e8aa15c-6d85-11ee-9ece-c5dc042fcb12",
                  "value": "code-3",
                  "recordKeys": null
                }
              },
              "linkArr": {
                "type": "ADDED",
                "previous": null,
                "actual": [
                 {
                    "codeType": "String",
                    "etalonId": "4e73e502-6d85-11ee-9ece-c5dc042fcb12",
                    "value": "code-1",
                    "recordKeys": null
                  },
                  {
                    "codeType": "String",
                    "etalonId": "4e83c387-6d85-11ee-9ece-c5dc042fcb12",
                   "value": "code-2",
                    "recordKeys": null
                  }
                ]
              }
            }
          }
        ]
      }
    }
    

UpsertRecordEvent

UpsertRecordEvent - событие вставки записи, которое приходит в уведомлении в теле запроса пользователю.

Поле

Описание

Значения

id

id уведомления

entityName

Имя реестра/справочника записи

etalonId

Etalon id записи

originId

Origin id записи

timestamp

Дата и время создания уведомления

type

Тип события вставки записи

"CREATE"/"UPDATE" - создание/изменение записи

attributes

Новые значения атрибутов записи

Карта имя атрибута - значение

lookupLinkAttributes

Новые значения атрибутов типа "Ссылка на справочник"

Карта имя атрибута - значение Значение: LookupLinkAttribute object - простой атрибут список LookupLinkAttribute object - массив-атрибут

relations

Связи

recordChanges

Изменения значений атрибутов

RecordDiffResult object

Примечания:

  • attributes = null в случае com.universe.mdm.notifications.notifications.fetchResult=false. Незаполненные атрибуты не отображаются. В значении комплексного атрибута будет лежать список карт аналогичных attributes со значениями атрибутов вложенного объекта. Одна карта отвечает одному экземпляру комплексного атрибута. Отображаются только комплексные первого уровня вложенности

  • lookupLinkAttributes = null в случаях com.universe.mdm.notifications.notifications.fetchResult=false или com.universe.mdm.notifications.notifications.fetchLookupLinkAttributesLookupKeys=false. Незаполненные атрибуты не будут отображаться при com.universe.mdm.notifications.notifications.showAbsentLookupLinkAttributes=false и будут иметь значение null при com.universe.mdm.notifications.notifications.showAbsentLookupLinkAttributes=true. Для комплексных аналогично полю attributes кроме того, что комплексный не отображается, если в его модели вложенного объекта нет атрибутов типа "Ссылка на справочник" или если ни один из них не заполнен и com.universe.mdm.notifications.notifications.showAbsentLookupLinkAttributes=false.

  • relations = null в случае com.universe.mdm.notifications.notifications.fetchResult=false.

  • recordChanges = null при com.universe.mdm.notifications.notifications.changes=false. Примеры см. в RecordDiffResult.

Примеры:

  • Создание записи без указания атрибутов и изменений:

    {
      "id": "a4cf28c2-3728-4376-9ee2-5d092ae10395",
      "entityName": "reg24173",
      "etalonId": "89c94b9a-71af-11ee-bb66-c5dc042fcb12",
      "originId": "8d6efb0d-71af-11ee-bb66-c5dc042fcb12",
      "timestamp": "2023-10-23T17:22:10.260",
      "type": "CREATE",
      "attributes": null,
      "lookupLinkAttributes": null,
      "relations": null,
      "recordChanges": null
    }
    
  • Создание записи с указанием атрибутов; атрибутов типа "Ссылка на справочник" без указания ключей и незаполненных атрибутов типа "Ссылка на справочник":

    {
      "id": "0ea08cc6-b417-46bb-b781-236f1293c1db",
      "entityName": "reg24173",
      "etalonId": "ec13b710-71b8-11ee-bb66-c5dc042fcb12",
      "originId": "ecdb25c3-71b8-11ee-bb66-c5dc042fcb12",
      "timestamp": "2023-10-23T18:29:15.799",
      "type": "CREATE",
      "attributes": {
        "str": "test7",
        "link": "code-1",
        "linkArr": [
          "code-2",
          "code-1"
        ],
        "nested": [ //Комплексный атрибут с именем "nested", создано два атрибута
          {
            "str": "nested-1-test7",
            "link": "code-1"
          },
          {
            "str": "nested-2-test7",
            "linkArr": [
              "code-2",
             "code-1"
            ]
          }
        ]
      },
      "lookupLinkAttributes": { //только атрибуты типа "ссылка на справочник"
        "link": { //простой атрибут link
          "codeType": "String",
          "etalonId": "4e73e502-6d85-11ee-9ece-c5dc042fcb12",
         "value": "code-1",
          "recordKeys": null
        },
        "nested": [ //Комплексный атрибут с именем "nested", создано два атрибута
          { //первый комплексный атрибут
            "link": { //простой атрибут nested.link
              "codeType": "String",
              "etalonId": "4e73e502-6d85-11ee-9ece-c5dc042fcb12",
              "value": "code-1",
              "recordKeys": null
           }
          },
          { //второй комплексный атрибут
            "linkArr": [ //массив-атрибут nested.linkArr
              {
                "codeType": "String",
                "etalonId": "4e83c387-6d85-11ee-9ece-c5dc042fcb12",
                "value": "code-2",
                "recordKeys": null
              },
              {
                "codeType": "String",
                "etalonId": "4e73e502-6d85-11ee-9ece-c5dc042fcb12",
                "value": "code-1",
                "recordKeys": null
              }
            ]
          }
        ],
        "linkArr": [//массив-атрибут linkArr
          {
            "codeType": "String",
            "etalonId": "4e83c387-6d85-11ee-9ece-c5dc042fcb12",
            "value": "code-2",
            "recordKeys": null
          },
          {
            "codeType": "String",
            "etalonId": "4e73e502-6d85-11ee-9ece-c5dc042fcb12",
            "value": "code-1",
            "recordKeys": null
          }
        ]
      },
      "relations": {},
      "recordChanges": null
    }
    
  • Создание записи с двумя комплексными атрибутами, у которых не заполнены атрибуты типа "Ссылка на справочник" (с указанием атрибутов), и атрибутов типа "Ссылка на справочник" (без указания ключей и незаполненных атрибутов):

    {
      "id": "0734bdd8-4b70-4233-90df-40b809dea344",
     "entityName": "reg24173",
     "etalonId": "4cc0298e-723c-11ee-bb66-c5dc042fcb12",
     "originId": "4d776aa1-723c-11ee-bb66-c5dc042fcb12",
      "timestamp": "2023-10-24T10:09:41.997",
      "type": "CREATE",
      "attributes": {
        "str": "test10",
        "link": "code-5",
        "nested": [//Комплексные атрибуты с незаполненными атрибутами типа "ссылка на справочник"
          {
            "str": "nested-1-test10"
          },
          {
            "str": "nested-2-test10"
          }
        ]
      },
      "lookupLinkAttributes": {//Комплексные атрибуты отсутствуют, потому что в них не заполнены атрибуты типа "ссылка на справочник" и com.universe.mdm.notifications.notifications.showAbsentLookupLinkAttributes=false
        "link": {
          "codeType": "String",
          "etalonId": "4e9835f6-6d85-11ee-9ece-c5dc042fcb12",
          "value": "code-5",
          "recordKeys": null
        }
      },
      "relations": {},
      "recordChanges": null
    }
    
  • Создание записи с незаполненными атрибутами типа "Ссылка на справочник" без указания незаполненных атрибутов:

    {
      "id": "2b110929-dc1c-4146-a468-f8d9b0e06a70",
      "entityName": "reg24173",
      "etalonId": "e2e114b4-723c-11ee-bb66-c5dc042fcb12",
      "originId": "e37da2d7-723c-11ee-bb66-c5dc042fcb12",
      "timestamp": "2023-10-24T10:13:53.631",
      "type": "CREATE",
      "attributes": {
        "str": "test11",
        "nested": [
          {
            "str": "nested-1-test11"
          },
          {
            "str": "nested-2-test11"
          }
        ]
      },
      "lookupLinkAttributes": {}, //пусто
      "relations": {},
      "recordChanges": null
    }
    
  • Изменение записи с незаполненными атрибутами типа "Ссылка на справочник" с указанием незаполненных атрибутов:

    {
      "id": "9af7f608-f6cf-48c7-9672-05e01b321065",
      "entityName": "reg24173",
      "etalonId": "e2e114b4-723c-11ee-bb66-c5dc042fcb12",
      "originId": "e37da2d7-723c-11ee-bb66-c5dc042fcb12",
      "timestamp": "2023-10-24T10:17:14.334",
      "type": "UPDATE",
      "attributes": {
        "str": "test11-edit",
        "nested": [
          {
            "str": "nested-1-test11"
          },
          {
            "str": "nested-2-test11"
          }
        ]
      },
      "lookupLinkAttributes": {
        "link": null,
        "linkArr": null,
        "intLinkArr": null,
        "nested": [
          {
            "link": null,
            "linkArr": null,
            "intLink": null,
            "intLinkArr": null
          },
          {
            "link": null,
            "linkArr": null,
            "intLink": null,
            "intLinkArr": null
          }
        ],
        "int-link": null
      },
      "relations": {},
      "recordChanges": null
    }