Модуль пакетных операций с записями
Запуск пакетной операции
POST-запрос /v2/bulk-operations/execute
Пример тела запроса запуска операции со списком активом:
{
"bulkOperationId": "com.universe.dg.bulk.modify.assets[operation]",
"content": {
"payload": {
"modify-ownership-request-fragment-v1": {
"upsertOwners": ["my_user", "new_admin"],
"deleteOwners": [],
"clearBeforeUpsert": false
},
"modify-tags-request-fragment-v1": {
"upsertTags": ["new_tag_1"],
"deleteTags": ["old_tag"],
"clearBeforeUpsert": false
},
"modify-business-roles-request-fragment-v1": {
"typeName": "test2",
"modifications": [{
"businessRole": "first",
"upsertUsernames": [],
"clearBeforeUpsert": false
}, {
"businessRole": "wwww",
"upsertUsernames": ["my_user", "new_admin"],
"deleteUsernames": ["admin"],
"clearBeforeUpsert": false
}
]
}
},
"assets": [{
"etalonId": "aab1b9ee-95e8-11ef-a033-df68c0379356",
"typeName": "test2"
}
]
}
}
Пример тела запроса запуска операции с поисковым запросом:
{
"bulkOperationId": "com.universe.dg.bulk.modify.assets[operation]",
"content": {
"assetSearch": {
"payload": {
"org.unidata.mdm.rest.v2.dq.data": {
"setNames": [],
"ruleNames": [],
"functionNames": [],
"message": null,
"severity": null,
"category": null,
"totalScore": 0,
"matchAll": false,
"negate": false
},
"com.unidata.dg.rest.v1.business.roles": {
"businessRoles": [],
"availableByRoles": false
},
"org.unidata.dg.rest.v1.data": {
"drafts": false,
"countOnly": false,
"totalCount": true,
"returnFields": ["$etalon_id", "$type_name"],
"searchFields": ["$etalon_id", "$display_name", "$external_keys", "$ownership.username", "$tags", "$data_labels", "$business_role_assignments"],
"entity": "",
"searchDataType": "ASSET",
"returnAllFields": false,
"searchAllFields": false,
"hierarchical": false,
"supplementary": [],
"fetchAll": true,
"page": 1,
"count": 28,
"sortFields": [],
"formFields": [{
"name": "$etalon_id",
"type": "STRING",
"searchType": "EXACT",
"inverted": true,
"values": []
}
]
}
}
},
"payload": {
"modify-tags-request-fragment-v1": {
"upsertTags": ["tag"],
"clearBeforeUpsert": false
}
}
}
}
Также на backend есть поддержка одновременного изменения владельцев и тегов для активов различных типов, также и бизнес-ролей для активов одного типа.