СТРУКТУРА ПРОЕКТОВ ПРЕДПРИЯТИЯ (СПП), АТРИБУТЫ И ЗНАЧЕНИЯ
Структура проектов предприятия
Таблица 1. Модель данных СПП
Поле | Тип | Описание |
---|---|---|
id | UUID v4 | Уникальный идентификатор узла |
parentId | UUID v4 | Идентификатор родительского узла СПП |
name | string | Заголовок узла |
key | string | Уникальный в пределах пространства строковый код узла структуры СПП |
type | string | Тип узла СПП |
sortOrder | integer | Порядок сортировки в пределах уровня |
createBy | UUID v4 | Идентификатор пользователя, создавшего узел СПП |
createAt | Date | Время создания узла СПП |
Таблица 2. Типы узлов СПП
Тип | Описание |
---|---|
space | Пространство |
facility | Группа проектов |
project | Проект |
schedule | График |
version | Версия графика |
Пример: Получить список узлов, доступных для пользователя.
shell;
curl -X 'GET' \
'https://your-org.domain/public-api/eps' \
-H 'accept: application/json' \
-H 'x-version: 409' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'
javascript;
const epsPath = 'https://your-org.domain/public-api/eps';
const baseHeaders = {
Authorization: 'your-api-key',
'x-tenant-id': '5db13376-ba5c-4fd5-ba7f-dc56347956ad',
'x-version': '409',
accept: 'application/json',
};
fetch(epsPath, { headers: baseHeaders })
.then((response) => {
if (response.ok) {
return response.json();
} else {
throw new Error(`Ошибка: ${response.status}, ${response.statusText}`);
}
})
.then((epsList) => {
epsList.forEach((eps) => {
console.log(eps);
});
})
.catch((error) => {
console.error(error.message);
});
python;
# https://www.python-httpx.org/quickstart/#passing-parameters-in-urls
import httpx
epsPath = 'https://your-org.domain/public-api/eps'
baseHeaders = {
'Authorization': 'your-api-key',
'x-tenant-id': '5db13376-ba5c-4fd5-ba7f-dc56347956ad',
'x-version': '409',
'accept': 'application/json'
}
getEpsListResponse = httpx.get(epsPath, headers=baseHeaders)
if getEpsListResponse.status_code == 200:
epsList = getEpsListResponse.json()
for eps in epsList:
print(f"{eps['id']} -- {eps['name']}", sep='\n')
else:
print(f'Ошибка: {getEpsListResponse.status_code}, {getEpsListResponse.text}')
Пример: Получить список проектов, доступных для пользователя, с помощью протокола OData. В ответе получить поля: name и type.
shell;
curl -X 'GET' \
''https://your-org.domain/public-api/eps?select=type,name,id&filter=type eq 'project''' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 409' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'
Создать новый узел в структуре проектов предприятия.
shell;
curl -X 'POST' \
'https://your-org.domain/public-api/eps' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 409' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
-d '{
"type": "facility",
"name": "Малоэтажное строительство",
"parentId": "5db13376-ba5c-4fd5-ba7f-dc56347956ad"
}'
Пример: Изменить существующий узел СПП.
shell;
curl -X 'PUT' \
'https://your-org.domain/public-api/eps/36b60d7c-fba9-4fb6-8d5a-a054f2043827' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 409' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
-d '{
"name": "Малоэтажное строительство",
}'
Пример: Удалить узел СПП.
shell;
curl -X 'DELETE' \
'https://your-org.domain/public-api/eps/36b60d7c-fba9-4fb6-8d5a-a054f2043827' \
-H 'accept: */*' \
-H 'x-version: 409' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'
Атрибуты
Таблица 3. Модель данных атрибутов СПП
Поле | Тип | Описание |
---|---|---|
id | UUID v4 | Уникальный идентификатор атрибута |
label | string | Заголовок атрибута |
type | string | Тип атрибута |
directoryId | UUID v4 | Идентификатор справочника |
directoryAttributeId | UUID v4 | Идентификатор атрибута справочника |
editable | boolean | Флаг возможности редактировать атрибута |
Таблица 4. Типы атрибутов СПП
Тип | Описание |
---|---|
date | Дата в формате timestamp |
number | Число в формате float |
string | Строка |
money | Число в формате float |
boolean | Логический в формате 1 или 0 |
Примеры использования
Пример: Получить список атрибутов.
curl -X 'GET' \
'https://your-org.domain/public-api/eps-attributes' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true'
Пример: Получить список атрибутов типа date с помощью протокола OData.
curl -X 'GET' \
''https://your-org.domain/public-api/eps-attributes?filter=type eq 'date''' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true'
Пример: Создать новый атрибут типа date.
curl -X 'POST' \
'https://your-org.domain/public-api/eps-attributes' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
-d '{
"label": "Дата выпуска документации",
"type": "date",
}'
Пример: Создать новый атрибут типа date из справочника.
curl -X 'POST' \
'https://your-org.domain/public-api/eps-attributes' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
-d '{
"label": "Дата выпуска документации",
"type": "date",
"directoryId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"directoryAttributeId": "5da85f64-5717-4562-b3fc-2c963f66dfdf"
}'
Пример: Изменить наименование существующего атрибута.
curl -X 'PUT' \
'https://your-org.domain/public-api/eps-attributes/3fa85f64-5717-4562-b3fc-2c963f66afa6' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
-d '{
"label": "Дата выпуска документации",
}'
Пример: Удалить существующий атрибут.
curl -X 'DELETE' \
'https://your-org.domain/public-api/eps-attributes/3fa85f64-5717-4562-b3fc-2c963f66afa6' \
-H 'accept: */*' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'
Значения атрибутов
Таблица 5. Модель данных значений атрибутов СПП
Поле | Тип | Описание |
---|---|---|
epsId | UUID v4 | Уникальный идентификатор структуры проектов предприятия |
attributeId | UUID v4 | Идентификатор атрибута структуры проектов предприятия |
value | any | Значение атрибута структуры проектов предприятия |
Примеры использования
Пример: Получить значения атрибутов для указанного узла.
curl -X 'GET' \
'https://your-org.domain/public-api/eps-attribute-values?filter=epsId eq 'a3329414-1059-476f-93d5-fd7c1927d966'' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
Пример: Получить список значений конкретных атрибутов для указанного узла СПП.
curl -X 'GET' \
'https://your-org.domain/public-api/eps-attribute-values?filter=epsId eq 'a3329414-1059-476f-93d5-fd7c1927d966' and (attrId eq '6b59bfc4-52a6-4c5f-bbae-1b3baa2da5c7') ' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
Пример: Получить список узлов СПП, чьи значения указанного атрибута равны значению 'your string'.
curl -X 'GET' \
'https://your-org.domain/public-api/eps-attribute-values?$filter=attrId eq 'a9e8611b-e874-4324-b901-413b4cbd104e' and value eq 'your string' &select=epsId' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
Пример: Получить список узлов СПП, чьи значения атрибута с идентификатором 9a0a9e7f-2244-4e56-9772-0293fbaabb41 равны 2 и значения атрибута с идентификатором 22ad98e7-123c-48ec-8c76-69f97a4add00 равны 'your string'.
curl -X 'GET' \
'https://your-org.domain/public-api/eps-attribute-values?$apply=filter((attrId eq '9a0a9e7f-2244-4e56-9772-0293fbaabb41' and number(value) eq 2) OR (attrId eq '22ad98e7-123c-48ec-8c76-69f97a4add00' and value eq 'your string'))/groupby(epsId, aggregate($count as count))/filter(count eq 2)' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
Пример: Создать новое значение для указанного атрибута.
curl -X 'PUT' \
'https://your-org.domain/public-api/eps-attribute-values' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json' \
-d '{
"epsId": "5qa85f64-5717-4562-b3fc-2c963f66afrt",
"attributeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": 90
}'
Пример: Обновить значение для указанного атрибута.
curl -X 'PUT' \
'https://your-org.domain/public-api/eps-attribute-values' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json' \
-d '{
"epsId": "5qa85f64-5717-4562-b3fc-2c963f66afrt",
"attributeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": 100
}'
Пример: Удалить значение для указанного атрибута.
curl -X 'PUT' \
'https://your-org.domain/public-api/eps-attribute-values' \
-H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
-H 'x-version: 507' \
-H 'Authorization: your-api-key' \
-H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad' \
-H 'Content-Type: application/json' \
-d '{
"epsId": "5qa85f64-5717-4562-b3fc-2c963f66afrt",
"attributeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": null
}'
Значение поля value может быть любым типом данных, например:
Дата в миллисекундах
"value": 1646132400000
Число
"value": 552
Строка
"value": "Строковое значение"
Логическое значение
"value": false
Если значение заполнить null, то значение атрибута удалится
"value": null