Примеры работы с записями и реестрами¶
Все URL написаны относительно URL BE MDM. Если BE находится на http://localhost:8082/universe-backend, то /api/v2/draft/upsert соответствует http://localhost:8082/universe-backend/api/v2/draft/upsert.
В каждом запросе должен присутствовать заголовок Authorization
, в котором передается токен авторизации (см. Получение токена авторизации).
Также см. Примеры работы с черновиками.
В примере имеется реестр (системное имя реестра - reg_test
) со следующими простыми атрибутами:
Системное имя |
Отображаемое имя |
Тип |
Системное имя типа |
---|---|---|---|
name |
Наименование |
Строка |
String |
quantity |
Количество |
Целочисленный |
Integer |
price |
Цена |
Численный |
Number |
date |
Дата |
Дата |
Date |
is_active |
Активный |
Логический |
Boolean |
В примере имеется справочник (системное имя справочника - lookup_test
) со следующими простыми атрибутами:
Системное имя |
Отображаемое имя |
Тип |
Системное имя типа |
---|---|---|---|
name |
Наименование |
Строка |
String |
quantity |
Количество |
Целочисленный |
Integer |
price |
Цена |
Численный |
Number |
date |
Дата |
Дата |
Date |
is_active |
Активный |
Логический |
Boolean |
Кодовый атрибут (является уникальным и неизменяемым после создания записи):
Системное имя |
Отображаемое имя |
Тип |
Системное имя типа |
---|---|---|---|
article_number |
Артикул |
Строка |
String |
Создание записи реестра с черновиком:
Создайте черновик для новой записи реестра.
Запомните draftId созданного черновика.
Запомните etalonId созданной записи.
Создание записи реестра без черновика (публикация сразу):
Сохраните новую запись реестра в черновик с draftId = 0.
Запомните etalonId созданной записи.
Изменение записи реестра с черновиком:
Используйте etalonId записи, полученный ранее.
Запомните draftID черновика.
Изменение записи реестра без черновика (публикация сразу):
Используйте etalonId записи, полученный ранее.
Сохраните измененную запись реестра в черновик с draftId = 0.
Удаление записи реестра:
Используйте etalonId записи, полученный ранее.
Создание записи справочника с черновиком:
Запомните draftId черновика.
Запомните etalonId созданной записи.
Создание записи справочника без черновика (публикация сразу):
Создайте запись справочника в черновике с draftId = 0 .
Запомните etalonId созданной записи.
Изменение записи справочника с черновиком:
Используйте etalonId записи, полученный ранее.
Запомните draftID черновика.
Получите запись справочника по etalonId с нужным draftId.
Изменение записи справочника без черновика (публикация сразу):
Используйте etalonId записи, полученный ранее.
Получите запись справочника по etalonId с draftId = 0.
Сохраните измененную запись справочника в черновике с draftId = 0.
Удаление записи справочника:
Используйте etalonId записи, полученный ранее.
Авторизация¶
Получение токена авторизации¶
POST:
/api/v2/core/authentication/login
Тело запроса:
{
"userName": "admin",
"password": "admin",
"locale": "ru"
}
Ответ:
{
"details": { //Список ошибок, если есть, присутствует во всех результатах
"info": [],
"warning": [],
"error": []
},
"token": "7dc491c5-312e-4e2f-8491-c5312e9e2fb2", //Нужный нам токен
"rights": [],
"userInfo": {
"createdAt": "2023-08-16T11:20:03.296237Z",
"updatedAt": null,
"createdBy": null,
"updatedBy": null,
"login": "admin",
"firstName": "Admin",
"middleName": null,
"lastName": "Root",
"fullName": "Admin Root",
"admin": true,
"active": true,
"email": "mail@example.com",
"locale": "ru",
"tags": [],
"roles": [
"ADMIN"
],
"delegatedRoles": [],
"rolesData": [
{
"createdAt": null,
"updatedAt": null,
"createdBy": null,
"updatedBy": null,
"name": "ADMIN",
"displayName": "Администратор",
"type": "SYSTEM",
"rights": [],
"securityLabels": [],
"properties": []
}
],
"securityLabels": [],
"properties": [],
"external": false,
"securityDataSource": "UNIDATA",
"emailNotification": false
},
"forcePasswordChange": false,
"tokenTTL": 1800,
"buildVersion": "app.version.app.svn_revision.app.build_number app.build_date",
"forceLicenseChange": null
}
Реестры и справочники¶
Создание черновика модели данных¶
POST:
/api/v2/draft/upsert
Тело запроса:
{
"type": "data-model", //"data-model" - черновик модели данных
"subjectId": "default", //Так как модель одна, то default
"description": "Черновик от 16.08.2023 14:31:52", //Опциональный комментарий/описание к черновику
"tags": [],
"parameters": {}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "data-model",
"subjectId": "default",
"description": "Черновик от 16.08.2023 14:31:52",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": null,
"draftId": 2, //ID черновика, нужно запомнить, чтобы производить изменения модели в этом черновике
"parentDraftId": null,
"editionsCount": 0,
"createDate": "2023-08-16T11:31:52.277Z",
"updateDate": null,
"tags": [],
"state": "RUNNING" //CREATED - черновик создан, но с ним еще не работали. RUNNING - ведется работа с черновиком
}
}
Создание реестра¶
POST:
/api/v2/data/model/register-entities/upsert
Тело запроса:
{
"draftId": 2, //ID черновика в рамках которого создаем реестр. Для создания сразу опубликованного реестра ставим 0
"registerEntity": {
"name": "reg_test",
"displayName": "Тестовый реестр",
"description": "Тестовый реестр для документации",
"hasData": false,
"isPublished": false,
"groupName": "",
"version": "",
"dashboardVisible": false,
"validityPeriod": null,
"externalIdGenerationStrategy": null,
"mergeSettings": null,
"simpleAttributes": [
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": true,
"nullable": false,
"searchable": true,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "String",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "name",
"displayName": "Наименование",
"description": "",
"readOnly": false,
"hidden": false,
"order": 1,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": false,
"nullable": true,
"searchable": false,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "Integer",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "quantity",
"displayName": "Количество",
"description": "",
"readOnly": false,
"hidden": false,
"order": 3,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": false,
"nullable": true,
"searchable": true,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "Boolean",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "is_active",
"displayName": "Активный",
"description": "",
"readOnly": false,
"hidden": false,
"order": 4,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": false,
"nullable": true,
"searchable": false,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "Date",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "date",
"displayName": "Дата",
"description": "",
"readOnly": false,
"hidden": false,
"order": 5,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": false,
"nullable": true,
"searchable": true,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "Number",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "rate",
"displayName": "Цена",
"description": "",
"readOnly": false,
"hidden": false,
"order": 2,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
}
],
"complexAttributes": [],
"arrayAttributes": [],
"relations": [],
"attributeGroups": [],
"customProperties": []
}
}
Ответ
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draftId": 2
}
Получение реестра¶
GET:
/api/v2/data/model/register-entities/reg_test?draftId=2
reg_test
- системное имя искомого реестра.draftId
- черновик, в котором ищем реестр, для поиска опубликованной версии реестра ставим draftId=0.
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"registerEntity": {
"simpleAttributes": [
{
"name": "name",
"displayName": "Наименование",
"description": "",
"readOnly": false,
"hidden": false,
"rights": {
"createdAt": null,
"updatedAt": null,
"createdBy": null,
"updatedBy": null,
"securedResource": {
"id": "DATA:reg_test.name",
"name": null,
"displayName": null,
"type": null,
"category": null,
"parent": null,
"children": null
},
"rights": [
"READ",
"DELETE",
"CREATE",
"UPDATE"
]
},
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
],
"nullable": false,
"unique": false,
"searchable": true,
"simpleDataType": "String",
"displayable": true,
"mainDisplayable": true,
"generationStrategy": null,
"enumDataType": "",
"lookupEntityType": "",
"lookupEntityCodeAttributeType": null,
"lookupEntityDisplayAttributes": [],
"lookupIsHierarchical": false,
"lookupMaxHierarchyLevel": 0,
"dictionaryDataType": "",
"lookupEntitySearchAttributes": [],
"useAttributeNameForDisplay": false,
"linkDataType": "",
"valueId": null,
"defaultUnitId": null,
"order": 1,
"searchMorphologically": false,
"searchCaseInsensitive": false
},
{
"name": "quantity",
"displayName": "Количество",
"description": "",
"readOnly": false,
"hidden": false,
"rights": {
"createdAt": null,
"updatedAt": null,
"createdBy": null,
"updatedBy": null,
"securedResource": {
"id": "DATA:reg_test.quantity",
"name": null,
"displayName": null,
"type": null,
"category": null,
"parent": null,
"children": null
},
"rights": [
"READ",
"DELETE",
"CREATE",
"UPDATE"
]
},
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
],
"nullable": true,
"unique": false,
"searchable": false,
"simpleDataType": "Integer",
"displayable": true,
"mainDisplayable": false,
"generationStrategy": null,
"enumDataType": "",
"lookupEntityType": "",
"lookupEntityCodeAttributeType": null,
"lookupEntityDisplayAttributes": [],
"lookupIsHierarchical": false,
"lookupMaxHierarchyLevel": 0,
"dictionaryDataType": "",
"lookupEntitySearchAttributes": [],
"useAttributeNameForDisplay": false,
"linkDataType": "",
"valueId": null,
"defaultUnitId": null,
"order": 3,
"searchMorphologically": false,
"searchCaseInsensitive": false
},
{
"name": "is_active",
"displayName": "Активный",
"description": "",
"readOnly": false,
"hidden": false,
"rights": {
"createdAt": null,
"updatedAt": null,
"createdBy": null,
"updatedBy": null,
"securedResource": {
"id": "DATA:reg_test.is_active",
"name": null,
"displayName": null,
"type": null,
"category": null,
"parent": null,
"children": null
},
"rights": [
"READ",
"DELETE",
"CREATE",
"UPDATE"
]
},
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
],
"nullable": true,
"unique": false,
"searchable": true,
"simpleDataType": "Boolean",
"displayable": true,
"mainDisplayable": false,
"generationStrategy": null,
"enumDataType": "",
"lookupEntityType": "",
"lookupEntityCodeAttributeType": null,
"lookupEntityDisplayAttributes": [],
"lookupIsHierarchical": false,
"lookupMaxHierarchyLevel": 0,
"dictionaryDataType": "",
"lookupEntitySearchAttributes": [],
"useAttributeNameForDisplay": false,
"linkDataType": "",
"valueId": null,
"defaultUnitId": null,
"order": 4,
"searchMorphologically": false,
"searchCaseInsensitive": false
},
{
"name": "date",
"displayName": "Дата",
"description": "",
"readOnly": false,
"hidden": false,
"rights": {
"createdAt": null,
"updatedAt": null,
"createdBy": null,
"updatedBy": null,
"securedResource": {
"id": "DATA:reg_test.date",
"name": null,
"displayName": null,
"type": null,
"category": null,
"parent": null,
"children": null
},
"rights": [
"READ",
"DELETE",
"CREATE",
"UPDATE"
]
},
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
],
"nullable": true,
"unique": false,
"searchable": false,
"simpleDataType": "Date",
"displayable": true,
"mainDisplayable": false,
"generationStrategy": null,
"enumDataType": "",
"lookupEntityType": "",
"lookupEntityCodeAttributeType": null,
"lookupEntityDisplayAttributes": [],
"lookupIsHierarchical": false,
"lookupMaxHierarchyLevel": 0,
"dictionaryDataType": "",
"lookupEntitySearchAttributes": [],
"useAttributeNameForDisplay": false,
"linkDataType": "",
"valueId": null,
"defaultUnitId": null,
"order": 5,
"searchMorphologically": false,
"searchCaseInsensitive": false
},
{
"name": "rate",
"displayName": "Цена",
"description": "",
"readOnly": false,
"hidden": false,
"rights": {
"createdAt": null,
"updatedAt": null,
"createdBy": null,
"updatedBy": null,
"securedResource": {
"id": "DATA:reg_test.rate",
"name": null,
"displayName": null,
"type": null,
"category": null,
"parent": null,
"children": null
},
"rights": [
"READ",
"DELETE",
"CREATE",
"UPDATE"
]
},
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
],
"nullable": true,
"unique": false,
"searchable": true,
"simpleDataType": "Number",
"displayable": true,
"mainDisplayable": false,
"generationStrategy": null,
"enumDataType": "",
"lookupEntityType": "",
"lookupEntityCodeAttributeType": null,
"lookupEntityDisplayAttributes": [],
"lookupIsHierarchical": false,
"lookupMaxHierarchyLevel": 0,
"dictionaryDataType": "",
"lookupEntitySearchAttributes": [],
"useAttributeNameForDisplay": false,
"linkDataType": "",
"valueId": null,
"defaultUnitId": null,
"order": 2,
"searchMorphologically": false,
"searchCaseInsensitive": false
}
],
"arrayAttributes": [],
"entityDependency": null,
"customProperties": [],
"name": "reg_test",
"displayName": "Тестовый реестр",
"description": "Тестовый реестр для документации",
"order": 0,
"version": "1",
"complexAttributes": [],
"hasData": false,
"modelName": null,
"relations": [],
"mergeSettings": null,
"attributeGroups": [],
"relationGroups": [],
"flyweight": false,
"validityPeriod": null,
"externalIdGenerationStrategy": null,
"hierarchical": false,
"maxHierarchyLevel": 0,
"dashboardVisible": false
}
}
Получение списка реестров/справочников¶
GET:
/api/v2/data/model/entity-groups?draftId=2
draftId - черновик, в котором ищем, для поиска опубликованных версий реестров/справочников ставим draftId=0
Ответ:
{
"name": "ROOT",
"displayName": "Корневая группа",
"parentName": null,
"type": "group",
"children": [
{
"name": "reg_test",
"displayName": "Тестовый реестр",
"parentName": "ROOT",
"type": "register",
"leaf": true
}
],
"leaf": false
}
Создание справочника¶
POST:
/api/v2/data/model/lookup-entities/upsert
Тело запроса:
{
"draftId": 2,
"lookupEntity": {
"hierarchical": false,
"name": "lookup_test",
"displayName": "Тестовый справочник",
"description": "Тестовый справочник для документации",
"hasData": false,
"isPublished": false,
"groupName": "",
"version": "",
"dashboardVisible": false,
"validityPeriod": null,
"codeAttribute": {
"displayable": true,
"mainDisplayable": false,
"nullable": false,
"searchable": true,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "String",
"unique": true,
"name": "article_number",
"displayName": "Артикул",
"description": "",
"readOnly": false,
"hidden": false,
"order": 0,
"generationStrategy": null,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
"externalIdGenerationStrategy": null,
"mergeSettings": null,
"simpleAttributes": [
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": true,
"nullable": false,
"searchable": true,
"searchCaseInsensitive": true,
"searchMorphologically": true,
"simpleDataType": "String",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "name",
"displayName": "Наименование",
"description": "",
"readOnly": false,
"hidden": false,
"order": 1,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": false,
"nullable": true,
"searchable": false,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "Date",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "date",
"displayName": "Дата",
"description": "",
"readOnly": false,
"hidden": false,
"order": 2,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": false,
"nullable": false,
"searchable": true,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "Boolean",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "is_active",
"displayName": "Активный",
"description": "",
"readOnly": false,
"hidden": false,
"order": 3,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": false,
"nullable": false,
"searchable": true,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "Integer",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "quantity",
"displayName": "Количество",
"description": "",
"readOnly": false,
"hidden": false,
"order": 4,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
},
{
"dictionaryDataType": "",
"defaultUnitId": null,
"displayable": true,
"enumDataType": "",
"linkDataType": "",
"lookupEntityCodeAttributeType": "",
"lookupEntityDisplayAttributes": [],
"lookupEntitySearchAttributes": [],
"lookupEntityType": "",
"lookupIsHierarchical": false,
"mainDisplayable": false,
"nullable": true,
"searchable": true,
"searchCaseInsensitive": false,
"searchMorphologically": false,
"simpleDataType": "Number",
"valueId": null,
"unique": false,
"useAttributeNameForDisplay": false,
"name": "rate",
"displayName": "Цена",
"description": "",
"readOnly": false,
"hidden": false,
"order": 5,
"customProperties": [
{
"name": "DATACARD_ATTRIBUTE_TYPE",
"value": "default"
},
{
"name": "DATACARD_ATTRIBUTE_PREVIEW_TYPE",
"value": "default"
}
]
}
],
"aliasCodeAttributes": [],
"arrayAttributes": [],
"attributeGroups": [],
"customProperties": []
}
}
Ответ
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draftId": 2
}
Получение черновика модели данных¶
POST:
/api/v2/draft/drafts
Тело запроса:
{
"query": {
"type": "data-model", //Черновики модели данных
"draftId": 2 //Искомый черновик
},
"offset": 0,
"limit": 100
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"drafts": [
{
"type": "data-model",
"subjectId": "default",
"description": "Черновик от 16.08.2023 14:31:52",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": "admin",
"draftId": 2,
"parentDraftId": null,
"editionsCount": 3,
"createDate": "2023-08-16T11:31:52.278647Z",
"updateDate": "2023-08-16T11:51:08.953977Z",
"tags": [],
"state": "RUNNING"
}
],
"totalCount": 1
}
Публикация черновика¶
POST:
/api/v2/draft/publish
Тело запроса:
{
"draftId": 2, //ID публикуемого черновика
"force": false, //Принудительная публикация
"delete": true //Удаление черновика после публикации
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "data-model",
"subjectId": "default",
"description": "Черновик от 16.08.2023 14:31:52",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": "admin",
"draftId": 2,
"parentDraftId": null,
"editionsCount": 3,
"createDate": "2023-08-16T11:31:52.278647Z",
"updateDate": "2023-08-16T11:51:08.953977Z",
"tags": [],
"state": "PUBLISHED"
}
}
Записи реестра¶
POST:
/api/v2/draft/upsert
Тело запроса:
{
"type": "record", //Провайдер для записей - тип черновика
"subjectId": "", //Еще нет объекта, поэтому нет ID записи
"description": "example draft to add record to entity", //Опциональное описание черновика
"parameters": { //Параметры для привязки черновика к нужному реестру
"namespace" : "register", //Пространство имен реестров
"entity-name" : "reg_test" //Название реестра
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "record",
"subjectId": "",
"description": "example draft to add record to entity",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": null,
"draftId": 3, //ID черновика, который нужно запомнить для работы с ним
"parentDraftId": null,
"editionsCount": 0,
"createDate": "2023-07-17T11:05:20.678+03:00",
"updateDate": null,
"tags": [
"namespace:register",
"entity-name:reg_test"
],
"state": "CREATED" //Создан
}
}
Сохранение новой записи реестра в черновик¶
POST:
/api/v2/data/atomic
Тело запроса:
{
"payload": {
"org.unidata.mdm.rest.v2.data": {
"draftId": 3, //ID черновика, который мы создали для этой записи, если значение 0, то запись будет сразу опубликована
"dataRecord": { //Данные записи
"etalonId": "", //Запись новая, поэтому у нее еще нет ID эталонной записи
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc", //Уникальный внешний ID, по нему можно будет обновлять запись. Создается пользователем API. Строковок значение, например, "reg_test_123"
"sourceSystem": "universe" //Система источник, от имени которой вносится запись, вместе с внешним ID образует ключ. Обязательное поле
},
"displayName": "",
"entityName": "reg_test", //Системное имя реестра
"version": "",
"modified": false,
"validFrom": "1900-01-01T00:00:00.000Z", //Начало периода актуальности. Опционально, можно оставить пустым для использования периода по умолчанию
"validTo": "2500-12-31T23:59:59.999Z", //Конец периода актуальности. Опционально, можно оставить пустым для использования периода по умолчанию
"createDate": "",
"updateDate": "",
"simpleAttributes": [ //Список простых атрибутов
{ //Строковый атрибут "name"
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "Какое-то наименование", //Значение атрибута
"type": "String", //Тип атрибута, здесь "Строковый"
"name": "name", //Системное имя атрибута, здесь "name"
"hidden": false //Для скрытых атрибутов
},
{ //Численный атрибут "rate"
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 1234.56,
"type": "Number", //Тип атрибута, здесь "Численный"
"name": "rate",
"hidden": false
},
{ //Целочисленный атрибут "quantity"
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 987,
"type": "Integer", //Тип атрибута, здесь "Целочисленный"
"name": "quantity",
"hidden": false
},
{ //Логический атрибут "is_active"
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": true,
"type": "Boolean", //Тип атрибута, здесь "Логический"
"name": "is_active",
"hidden": false
},
{ //Атрибут "date" типа Дата
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "2023-08-16",
"type": "Date", //Тип атрибута, здесь "Дата"
"name": "date",
"hidden": false
}
],
"complexAttributes": [],
"arrayAttributes": [],
"codeAttributes": []
}
}
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"payload": {
"org.unidata.mdm.rest.v2.matching.data": null,
"org.unidata.mdm.rest.v2.data": {
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 0,
"status": "ACTIVE",
"createDate": null,
"updateDate": null,
"createdBy": null,
"updatedBy": null
}
],
"entityName": "reg_test",
"lsn": {
"lsn": null,
"shard": 9
},
"node": 0,
"createDate": "2023-08-16T12:13:25.54Z",
"updateDate": "2023-08-16T12:13:25.54Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": false,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-16"
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 987
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": true
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 1234.56
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [],
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "reg_test",
"namespace": "register",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "ACTIVE",
"lsn": null,
"createDate": "2023-08-16T12:13:25.540Z",
"createdBy": "admin",
"updateDate": "2023-08-16T12:13:25.540Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": false
},
"relationsResult": {
"details": {
"info": [],
"warning": [],
"error": []
},
"etalonId": null,
"etalonRelations": null
}
},
"org.unidata.mdm.rest.v2.dq.data": null
}
}
Получение черновика записи реестра¶
POST:
/api/v2/draft/drafts
Тело запроса:
{
"query": {
"type": "record",
"draftId": 3
},
"offset": 0,
"limit": 100
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"drafts": [
{
"type": "record",
"subjectId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"description": "Черновик от 16.08.2023 15:11:21",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": "admin",
"draftId": 3,
"parentDraftId": null,
"editionsCount": 1,
"createDate": "2023-08-16T12:11:21.849982Z",
"updateDate": "2023-08-16T12:13:25.540263Z",
"tags": [
"entity-name:reg_test",
"namespace:register",
"record-external-id:0379a510-3c2e-11ee-bb05-b3c44289bffc\u001freg_test\u001funiverse",
"operation-code:UPSERT_DATA"
],
"state": "RUNNING"
}
],
"totalCount": 1
}
Публикация черновика записи реестра¶
POST:
/api/v2/draft/publish
Тело запроса:
{
"draftId": 3, //ID публикуемого черновика
"force": false, //Принудительная публикация
"delete": true //Удаление черновика после публикации
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "record",
"subjectId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"description": "Черновик от 16.08.2023 15:11:21",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": "admin",
"draftId": 3,
"parentDraftId": null,
"editionsCount": 1,
"createDate": "2023-08-16T12:11:21.849982Z",
"updateDate": "2023-08-16T12:13:25.540263Z",
"tags": [
"entity-name:reg_test",
"namespace:register",
"record-external-id:0379a510-3c2e-11ee-bb05-b3c44289bffc\u001freg_test\u001funiverse",
"operation-code:UPSERT_DATA"
],
"state": "PUBLISHED" //Опубликован
}
}
Получение опубликованной записи реестра по etalonId¶
POST:
http://localhost:8082/universe-backend/api/v2/data/atomic/get
Тело запроса:
{
"payload": {
"org.unidata.mdm.rest.v2.data": {
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"entityName": "reg_test",
"draftId": 0, //Опубликованная версия
"timelineDate": "1900-01-01T00:00:00.000Z"
}
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"payload": {
"org.unidata.mdm.rest.v2.matching.data": {
"results": []
},
"org.unidata.mdm.rest.v2.data": {
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 1,
"status": "ACTIVE",
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": null,
"createdBy": "admin",
"updatedBy": null
}
],
"entityName": "reg_test",
"lsn": {
"lsn": 1,
"shard": 9
},
"node": 0,
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": "2023-08-16T12:13:25.543Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": true,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-16"
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 987
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": true
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 1234.56
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [],
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "reg_test",
"namespace": "register",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "ACTIVE",
"lsn": {
"lsn": 1,
"shard": 9
},
"createDate": "2023-08-16T12:13:25.542Z",
"createdBy": "admin",
"updateDate": "2023-08-16T12:13:25.543Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": true
},
"origins": null,
"vistory": null
},
"org.unidata.mdm.rest.v2.dq.data": {
"results": []
}
}
}
Создание черновика для изменения записи реестра¶
POST:
/api/v2/draft/upsert
Тело запроса:
{
"type": "record",
"subjectId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76", //etalonId записи, которую хотим изменить
"description": "Черновик от 16.08.2023 15:27:02",
"tags": [
"entity-name:reg_test",
"namespace:register"
],
"parameters": {
"entity-name": "reg_test"
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "record",
"subjectId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"description": "Черновик от 16.08.2023 15:27:02",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": null,
"draftId": 4,
"parentDraftId": null,
"editionsCount": 0,
"createDate": "2023-08-16T12:27:02.764Z",
"updateDate": null,
"tags": [
"entity-name:reg_test",
"namespace:register"
],
"state": "CREATED"
}
}
Получение версии записи реестра из черновика¶
Для получения опубликованной версии ставим draftId=0.
Запись - это объект org.unidata.mdm.rest.v2.data
в ответе.
POST:
/api/v2/data/atomic/get
Тело запроса:
{
"payload": {
"org.unidata.mdm.rest.v2.data": {
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"entityName": "reg_test",
"draftId": 4,
"timelineDate": "1900-01-01T00:00:00.000Z"
}
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"payload": {
"org.unidata.mdm.rest.v2.matching.data": {
"results": []
},
"org.unidata.mdm.rest.v2.data": {
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 1,
"status": "ACTIVE",
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": null,
"createdBy": "admin",
"updatedBy": null
}
],
"entityName": "reg_test",
"lsn": {
"lsn": 1,
"shard": 9
},
"node": 0,
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": "2023-08-16T12:13:25.543Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": true,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-16"
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 987
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": true
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 1234.56
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [],
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "reg_test",
"namespace": "register",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "ACTIVE",
"lsn": {
"lsn": 1,
"shard": 9
},
"createDate": "2023-08-16T12:13:25.542Z",
"createdBy": "admin",
"updateDate": "2023-08-16T12:13:25.543Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": true
},
"origins": null,
"vistory": null
},
"org.unidata.mdm.rest.v2.dq.data": {
"results": []
}
}
}
Сохранение измененной записи реестра в черновик¶
Если поставить draftId=0, то запись будет сразу опубликована без черновика.
Чтобы не менять значение атрибута и не очищать его, требуется вставить их значения из существующей версии.
Изменение записи - это полная перезапись записи по etalonId или комбинации externalId и sourceSystem из сохранения новой записи в черновик.
Для комментариев к полям также см.:ref:Сохранение новой записи в черновик <#сохранение-новой-записи-в-черновик>.
POST:
/api/v2/data/atomic
Тело запроса:
{
"payload": {
"org.unidata.mdm.rest.v2.data": {
"draftId": 4,
"dataRecord": {
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"displayName": "",
"entityName": "reg_test",
"namespace": "register",
"version": "0",
"modified": false,
"validFrom": "1900-01-01T00:00:00.000Z",
"validTo": "2500-12-31T23:59:59.999Z",
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": "2023-08-16T12:13:25.543Z",
"status": "ACTIVE",
"simpleAttributes": [
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "Какое-то измененное наименование",
"type": "String",
"name": "name",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "2023-08-17",
"type": "Date",
"name": "date",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 123,
"type": "Integer",
"name": "quantity",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": false,
"type": "Boolean",
"name": "is_active",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 9876.43,
"type": "Number",
"name": "rate",
"hidden": false
}
],
"complexAttributes": [],
"arrayAttributes": [],
"codeAttributes": []
}
}
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"payload": {
"org.unidata.mdm.rest.v2.matching.data": null,
"org.unidata.mdm.rest.v2.data": {
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 1,
"status": "ACTIVE",
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": null,
"createdBy": "admin",
"updatedBy": null
}
],
"entityName": "reg_test",
"lsn": {
"lsn": 1,
"shard": 9
},
"node": 0,
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": "2023-08-16T12:31:10.835Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": true,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то измененное наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-17"
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 123
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": false
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 9876.43
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [],
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "reg_test",
"namespace": "register",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "ACTIVE",
"lsn": {
"lsn": 1,
"shard": 9
},
"createDate": "2023-08-16T12:13:25.542Z",
"createdBy": "admin",
"updateDate": "2023-08-16T12:31:10.835Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": true
},
"relationsResult": {
"details": {
"info": [],
"warning": [],
"error": []
},
"etalonId": null,
"etalonRelations": null
}
},
"org.unidata.mdm.rest.v2.dq.data": null
}
}
Публикация черновика с измененной записью реестра¶
POST:
/api/v2/draft/publish
Тело запроса:
{
"draftId": 4,
"force": false,
"delete": true
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "record",
"subjectId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"description": "Черновик от 16.08.2023 15:27:02",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": "admin",
"draftId": 4,
"parentDraftId": null,
"editionsCount": 1,
"createDate": "2023-08-16T12:27:02.765353Z",
"updateDate": "2023-08-16T12:31:10.835374Z",
"tags": [
"entity-name:reg_test",
"namespace:register",
"record-external-id:0379a510-3c2e-11ee-bb05-b3c44289bffc\u001freg_test\u001funiverse",
"operation-code:UPSERT_DATA"
],
"state": "PUBLISHED"
}
}
Удаление записи реестра¶
DELETE:
/api/v2/data/records/delete/reg_test/4d25f80f-3c2e-11ee-bc14-393b8ca6fb76?wipe=false&inactivateEtalon=true
Запрос выше для логического удаления записи с деактивацией эталона - дефолтное поведение.
reg_test
- системное имя реестра, из которого удаляем.4d25f80f-3c2e-11ee-bc14-393b8ca6fb76
- etalonId удаляемой записи.wipe
-false
- логическое удаление, можно восстановить.true
- физическое удаление.inactivateEtalon
- деактивация эталона записи. Возвращает версию записи перед удалением.
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 2,
"status": "ACTIVE",
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": null,
"createdBy": "admin",
"updatedBy": null
}
],
"entityName": "reg_test",
"lsn": {
"lsn": 1,
"shard": 9
},
"node": 0,
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": "2023-08-16T12:31:10.838Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": true,
"parent": null,
"children": []
},
"key": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76"
}
Получение логически удаленной записи¶
POST:
/api/v2/data/atomic/get
Тело запроса:
{
"payload": {
"org.unidata.mdm.rest.v2.data": {
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"entityName": "reg_test",
"draftId": 0,
"timelineDate": "1900-01-01T00:00:00.000Z"
}
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"payload": {
"org.unidata.mdm.rest.v2.matching.data": {
"results": []
},
"org.unidata.mdm.rest.v2.data": {
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"status": "INACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 2,
"status": "ACTIVE",
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": null,
"createdBy": "admin",
"updatedBy": null
}
],
"entityName": "reg_test",
"lsn": {
"lsn": 1,
"shard": 9
},
"node": 0,
"createDate": "2023-08-16T12:13:25.542Z",
"updateDate": "2023-08-16T12:35:47.033Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": false,
"published": true,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то измененное наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-17"
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 123
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": false
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 9876.43
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [],
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "reg_test",
"namespace": "register",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "INACTIVE",
"lsn": {
"lsn": 1,
"shard": 9
},
"createDate": "2023-08-16T12:13:25.542Z",
"createdBy": "admin",
"updateDate": "2023-08-16T12:35:47.033Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": true
},
"origins": null,
"vistory": null
},
"org.unidata.mdm.rest.v2.dq.data": {
"results": []
}
}
}
Вставка записей в справочник¶
Создание черновика для новой записи справочника¶
POST:
/api/v2/draft/upsert
Тело запроса:
{
"type": "record", //Провайдер для записей
"subjectId": "", //Еще нет объекта
"description": "example draft to add record to reference set",
"parameters": {
"namespace" : "lookup", //Пространство имен реестров
"entity-name" : "lookup_test" //Название реестра
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "record",
"subjectId": "",
"description": "example draft to add record to reference set",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": null,
"draftId": 5,
"parentDraftId": null,
"editionsCount": 0,
"createDate": "2023-07-17T11:05:20.678+03:00",
"updateDate": null,
"tags": [
"namespace:lookup",
"entity-name:lookup_test"
],
"state": "CREATED"
}
}
Создание записи справочника в черновике¶
Если draftId = 0, то запись сразу публикуется.
См. Сохранение новой записи реестра в черновик для комментариев к полям.
Кодовый атрибут уникален и не изменяется после сохранения.
POST:
/api/v2/data/atomic
Тело запроса:
{
"payload": {
"org.unidata.mdm.rest.v2.data": {
"draftId": 5,
"dataRecord": {
"etalonId": "",
"externalId": {
"externalId": "0e460f30-3c40-11ee-9ad3-6df0a9cf14b3",
"sourceSystem": "universe"
},
"displayName": "",
"entityName": "lookup_test",
"version": "",
"modified": false,
"validFrom": "1900-01-01T00:00:00.000Z",
"validTo": "2500-12-31T23:59:59.999Z",
"createDate": "",
"updateDate": "",
"simpleAttributes": [
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "Какое-то наименование",
"type": "String",
"name": "name",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "2023-08-16",
"type": "Date",
"name": "date",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": true,
"type": "Boolean",
"name": "is_active",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 123,
"type": "Integer",
"name": "quantity",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 456.78,
"type": "Number",
"name": "rate",
"hidden": false
}
],
"complexAttributes": [],
"arrayAttributes": [],
"codeAttributes": [ //Кодовые атрибуты
{ //Кодовый атрибут "article_number" типа Строка
"value": "art123", //Значение атрибута
"type": "String", //Тип "Строка"
"name": "article_number", //Системное имя атрибута
"hidden": false
}
]
}
}
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"payload": {
"org.unidata.mdm.rest.v2.matching.data": null,
"org.unidata.mdm.rest.v2.data": {
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0e460f30-3c40-11ee-9ad3-6df0a9cf14b3",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 0,
"status": "ACTIVE",
"createDate": null,
"updateDate": null,
"createdBy": null,
"updatedBy": null
}
],
"entityName": "lookup_test",
"lsn": {
"lsn": null,
"shard": 0
},
"node": 0,
"createDate": "2023-08-16T14:21:32.459Z",
"updateDate": "2023-08-16T14:21:32.459Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": false,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-16"
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": true
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 123
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 456.78
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [
{
"name": "article_number",
"type": "String",
"value": "art123",
"supplementary": []
}
],
"etalonId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "lookup_test",
"namespace": "lookup",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "ACTIVE",
"lsn": null,
"createDate": "2023-08-16T14:21:32.459Z",
"createdBy": "admin",
"updateDate": "2023-08-16T14:21:32.459Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": false
},
"relationsResult": {
"details": {
"info": [],
"warning": [],
"error": []
},
"etalonId": null,
"etalonRelations": null
}
},
"org.unidata.mdm.rest.v2.dq.data": null
}
}
Публикация черновика новой записи справочника¶
POST:
/api/v2/draft/publish
Тело запроса:
{
"draftId": 5,
"force": false,
"delete": true
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "record",
"subjectId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"description": "Черновик от 16.08.2023 17:20:30",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": "admin",
"draftId": 5,
"parentDraftId": null,
"editionsCount": 1,
"createDate": "2023-08-16T14:20:30.862543Z",
"updateDate": "2023-08-16T14:21:32.45892Z",
"tags": [
"entity-name:lookup_test",
"record-external-id:0e460f30-3c40-11ee-9ad3-6df0a9cf14b3\u001flookup_test\u001funiverse",
"operation-code:UPSERT_DATA",
"namespace:lookup"
],
"state": "PUBLISHED"
}
}
Изменение записи справочника¶
Получение записи справочника по etalonId¶
POST:
/api/v2/data/atomic/get
Тело запроса:
{
"payload": {
"org.unidata.mdm.rest.v2.data": {
"etalonId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"entityName": "lookup_test",
"draftId": 0, //0 - опубликованная запись или ID черновика записи
"timelineDate": "1900-01-01T00:00:00.000Z"
}
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"payload": {
"org.unidata.mdm.rest.v2.matching.data": {
"results": []
},
"org.unidata.mdm.rest.v2.data": {
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0e460f30-3c40-11ee-9ad3-6df0a9cf14b3",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 1,
"status": "ACTIVE",
"createDate": "2023-08-16T14:21:32.461Z",
"updateDate": null,
"createdBy": "admin",
"updatedBy": null
}
],
"entityName": "lookup_test",
"lsn": {
"lsn": 1,
"shard": 0
},
"node": 0,
"createDate": "2023-08-16T14:21:32.461Z",
"updateDate": "2023-08-16T14:21:32.462Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": true,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-16"
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": true
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 123
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 456.78
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [
{
"name": "article_number",
"type": "String",
"value": "art123",
"supplementary": []
}
],
"etalonId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "lookup_test",
"namespace": "lookup",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "ACTIVE",
"lsn": {
"lsn": 1,
"shard": 0
},
"createDate": "2023-08-16T14:21:32.461Z",
"createdBy": "admin",
"updateDate": "2023-08-16T14:21:32.462Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": true
},
"origins": null,
"vistory": null
},
"org.unidata.mdm.rest.v2.dq.data": {
"results": []
}
}
}
Создание черновика записи справочника для изменения¶
POST:
/api/v2/draft/upsert
Тело запроса:
{
"type": "record",
"subjectId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"description": "Черновик от 16.08.2023 17:29:00",
"tags": [
"entity-name:lookup_test",
"namespace:lookup"
],
"parameters": {
"entity-name": "lookup_test"
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "record",
"subjectId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"description": "Черновик от 16.08.2023 17:29:00",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": null,
"draftId": 6,
"parentDraftId": null,
"editionsCount": 0,
"createDate": "2023-08-16T14:29:00.012Z",
"updateDate": null,
"tags": [
"entity-name:lookup_test",
"namespace:lookup"
],
"state": "CREATED"
}
}
Сохранение измененной записи справочника в черновике¶
Кодовый атрибут изменить нельзя.
Если поставить draftId=0, то запись будет сразу опубликована без черновика.
Чтобы не менять значение атрибута и не очищать его, требуется вставить их значения из существующей версии.
Изменение записи - это полная перезапись записи по etalonId или комбинации externalId и sourceSystem из запроса сохранения новой записи в черновик.
Для комментариев к полям см. Сохранение новой записи в черновик.
POST:
/api/v2/data/atomic
Тело запроса:
{
"payload": {
"org.unidata.mdm.rest.v2.data": {
"draftId": 6,
"dataRecord": {
"etalonId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"displayName": "",
"entityName": "lookup_test",
"namespace": "lookup",
"version": "0",
"modified": false,
"validFrom": "1900-01-01T00:00:00.000Z",
"validTo": "2500-12-31T23:59:59.999Z",
"createDate": "2023-08-16T14:21:32.461Z",
"updateDate": "2023-08-16T14:21:32.462Z",
"status": "ACTIVE",
"simpleAttributes": [
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "Какое-то новое наименование",
"type": "String",
"name": "name",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "2023-08-17",
"type": "Date",
"name": "date",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": false,
"type": "Boolean",
"name": "is_active",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 987,
"type": "Integer",
"name": "quantity",
"hidden": false
},
{
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 123.45,
"type": "Number",
"name": "rate",
"hidden": false
}
],
"complexAttributes": [],
"arrayAttributes": [],
"codeAttributes": [
{
"value": "art123",
"supplementary": [],
"type": "String",
"name": "article_number",
"hidden": false
}
]
}
}
}
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"payload": {
"org.unidata.mdm.rest.v2.matching.data": null,
"org.unidata.mdm.rest.v2.data": {
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0e460f30-3c40-11ee-9ad3-6df0a9cf14b3",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 1,
"status": "ACTIVE",
"createDate": "2023-08-16T14:21:32.461Z",
"updateDate": null,
"createdBy": "admin",
"updatedBy": null
}
],
"entityName": "lookup_test",
"lsn": {
"lsn": 1,
"shard": 0
},
"node": 0,
"createDate": "2023-08-16T14:21:32.461Z",
"updateDate": "2023-08-16T14:31:27.344Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": true,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то новое наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-17"
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": false
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 987
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 123.45
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [
{
"name": "article_number",
"type": "String",
"value": "art123",
"supplementary": []
}
],
"etalonId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "lookup_test",
"namespace": "lookup",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "ACTIVE",
"lsn": {
"lsn": 1,
"shard": 0
},
"createDate": "2023-08-16T14:21:32.461Z",
"createdBy": "admin",
"updateDate": "2023-08-16T14:31:27.344Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": true
},
"relationsResult": {
"details": {
"info": [],
"warning": [],
"error": []
},
"etalonId": null,
"etalonRelations": null
}
},
"org.unidata.mdm.rest.v2.dq.data": null
}
}
Публикация черновика измененной записи справочника¶
POST:
/api/v2/draft/publish
Тело запроса:
{
"draftId": 6,
"force": false,
"delete": true
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"draft": {
"type": "record",
"subjectId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"description": "Черновик от 16.08.2023 17:29:00",
"owner": "admin",
"ownerFullName": "Admin Root",
"createdBy": "admin",
"updatedBy": "admin",
"draftId": 6,
"parentDraftId": null,
"editionsCount": 1,
"createDate": "2023-08-16T14:29:00.01399Z",
"updateDate": "2023-08-16T14:31:27.344691Z",
"tags": [
"entity-name:lookup_test",
"record-external-id:0e460f30-3c40-11ee-9ad3-6df0a9cf14b3\u001flookup_test\u001funiverse",
"operation-code:UPSERT_DATA",
"namespace:lookup"
],
"state": "PUBLISHED"
}
}
Удаление записи справочника¶
DELETE:
/api/v2/data/records/delete/lookup_test/32e70bd8-3c40-11ee-bc14-393b8ca6fb76?wipe=false&inactivateEtalon=true
Запрос выше для логического удаления записи с деактивацией эталона - дефолтное поведение.
lookup_test
- системное имя реестра, из которого удаляем.32e70bd8-3c40-11ee-bc14-393b8ca6fb76
- etalonId удаляемой записи.wipe
-false
- логическое удаление, можно восстановить.true
- физическое удаление.inactivateEtalon
- деактивация эталона записи. Возвращает версию записи перед удалением.
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0e460f30-3c40-11ee-9ad3-6df0a9cf14b3",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 2,
"status": "ACTIVE",
"createDate": "2023-08-16T14:21:32.461Z",
"updateDate": null,
"createdBy": "admin",
"updatedBy": null
}
],
"entityName": "lookup_test",
"lsn": {
"lsn": 1,
"shard": 0
},
"node": 0,
"createDate": "2023-08-16T14:21:32.461Z",
"updateDate": "2023-08-16T14:31:27.347Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": true,
"parent": null,
"children": []
},
"key": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76"
}
В теле запроса указывается draftId = 0.
Удаление черновика¶
POST:
/api/v2/draft/remove
Тело запроса:
{
"type": "record",
"entityId": "",
"draftId": 8
}
Ответ:
{
"details": {
"info": [],
"warning": [],
"error": []
},
"success": true
}
Получение периодов записей¶
GET:
/api/v2/data/records/lookup_test/timeline/32e70bd8-3c40-11ee-bc14-393b8ca6fb76?draftId=6
lookup_test
- системное имя реестра/справочника.32e70bd8-3c40-11ee-bc14-393b8ca6fb76
- etalonId записи.draftId
- ID черновика записи или 0 для получения опубликованной версии.
Ответ:
{
"timeline": {
"etalonId": "32e70bd8-3c40-11ee-bc14-393b8ca6fb76",
"timeline": [
{
"dateFrom": "1900-01-01T00:00:00Z",
"dateTo": "2500-12-31T23:59:59.999Z",
"active": true,
"contributors": [
{
"originId": "7c1d91cb-3c40-11ee-bc14-393b8ca6fb76",
"version": 0,
"sourceSystem": "universe",
"status": "ACTIVE",
"owner": "lookup_test"
}
]
}
]
}
}
Пакетная вставка записей¶
POST:
v2/data/records/upsert/bulk
Тело запроса:
{
"upserts": [ // Список вставляемых записей
{
"draftId": 0, //ID черновика, который мы создали для этой записи, если значение 0, то запись будет сразу опубликована
"dataRecord": { //Данные записи
"simpleAttributes": [ //Список простых атрибутов
{ //Строковый атрибут "name"
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "Какое-то наименование", //Значение атрибута
"type": "String", //Тип атрибута, здесь "Строковый"
"name": "name", //Системное имя атрибута, здесь "name"
"hidden": false //Для скрытых атрибутов
},
{ //Численный атрибут "rate"
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 1234.56,
"type": "Number", //Тип атрибута, здесь "Численный"
"name": "rate",
"hidden": false
},
{ //Целочисленный атрибут "quantity"
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": 987,
"type": "Integer", //Тип атрибута, здесь "Целочисленный"
"name": "quantity",
"hidden": false
},
{ //Логический атрибут "is_active"
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": true,
"type": "Boolean", //Тип атрибута, здесь "Логический"
"name": "is_active",
"hidden": false
},
{ //Атрибут "date" типа Дата
"targetEtalonId": null,
"valueId": "",
"unitId": "",
"displayValue": null,
"value": "2023-08-16",
"type": "Date", //Тип атрибута, здесь "Дата"
"name": "date",
"hidden": false
}
],
"complexAttributes": [],
"arrayAttributes": [],
"etalonId": "", //Запись новая, поэтому у нее еще нет ID эталонной записи
"entityName": "reg_test", //Системное имя реестра
"codeAttributes": [],
"validFrom": "1900-01-01T00:00:00.000Z",//Начало периода актуальности. Опционально, можно оставить пустым для использования периода по умолчанию
"validTo": "2500-12-31T23:59:59.999Z",//Конец периода актуальности. Опционально, можно оставить пустым для использования периода по умолчанию
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc", //Уникальный внешний ID, по нему можно будет обновлять запись. Создается пользователем API. Строковок значение, например, "reg_test_123"
"sourceSystem": "universe" //Система источник, от имени которой вносится запись, вместе с внешним ID образует ключ. Обязательное поле
},
"lsn":{
"lsn": 1,
"shard": 9
}
}
}
],
"abortOnFailure": true // Прерывать всю пакетную вставку при возникновении ошибки
}
Ответ:
{
"results": [
{
"details": {
"info": [],
"warning": [],
"error": []
},
"recordKeys": {
"etalonKey": {
"id": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"status": "ACTIVE"
},
"originKeys": [
{
"externalId": {
"externalId": "0379a510-3c2e-11ee-bb05-b3c44289bffc",
"sourceSystem": "universe"
},
"enrichment": false,
"revision": 0,
"status": "ACTIVE",
"createDate": "2024-08-01T12:13:20.622Z",
"updateDate": null,
"createdBy": null,
"updatedBy": null
}
],
"entityName": "reg_test",
"lsn": {
"lsn": 1,
"shard": 9
},
"node": 0,
"createDate": "2024-08-01T12:13:20.622Z",
"updateDate": "2024-08-01T12:58:45.401Z",
"createdBy": "admin",
"updatedBy": "admin",
"active": true,
"published": false,
"parent": null,
"children": []
},
"etalon": {
"simpleAttributes": [
{
"name": "name",
"type": "String",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "Какое-то наименование"
},
{
"name": "date",
"type": "Date",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": "2023-08-16"
},
{
"name": "quantity",
"type": "Integer",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 987
},
{
"name": "is_active",
"type": "Boolean",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": true
},
{
"name": "rate",
"type": "Number",
"displayValue": null,
"targetEtalonId": null,
"valueId": null,
"unitId": null,
"value": 1234.56
}
],
"arrayAttributes": [],
"complexAttributes": [],
"codeAttributes": [],
"etalonId": "4d25f80f-3c2e-11ee-bc14-393b8ca6fb76",
"modified": false,
"version": 0,
"entityName": "reg_test",
"namespace": "register",
"validFrom": "1900-01-01T00:00:00Z",
"validTo": "2500-12-31T23:59:59.999Z",
"status": "ACTIVE",
"lsn": {
"lsn": 1,
"shard": 9
},
"createDate": "2024-08-01T12:13:20.622Z",
"createdBy": "admin",
"updateDate": "2024-08-01T12:58:45.401Z",
"updatedBy": "admin",
"rights": null,
"operationType": "DIRECT",
"diffToDraft": null,
"published": true
},
"relationsResult": {
"details": {
"info": [],
"warning": [],
"error": []
},
"etalonId": null,
"etalonRelations": null
}
}
]
}