`Данное описание ещё в разработке - будет дополнено`

# **Формат файла импорта**

**реестра процессов**

Файл импорта должен быть в формате **Excel (.xlsx)** и содержать до 4 листов.

---

## **Лист 1: «Пользовательские поля»**

Определяет пользовательские поля, которые можно привязывать к процессам.

> **Примечание:** Для обратной совместимости поддерживается также название листа «Параметры».

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdG9oIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--59f8d848ea7160d70e23d150d8950913195b8e25/image.png)`ㅤ`

### **Допустимые типы параметров**

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdHNoIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--36b8cebb78b2016e05ed8868081cc6081cc81180/image.png)`ㅤ`

\
**Поведение при импорте**

* Если пользовательское поле с таким названием уже существует — **пропускается** (не будет создано, чтобы не было дубля)

* Новые поля создаются с указанными настройками

---

## **Лист 2: «Процессы»**

Определяет иерархию процессов.

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdHdoIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--542f2035905a73e08b12f8aa3a238c6465ce3ad2/image.png)`ㅤ`

### **Поведение при импорте**

* Если процесс с таким названием уже существует — **пропускается** (не будет создан, чтобы не было дубля).

* Родитель может быть указан из файла импорта или из существующих процессов.

* **Если родитель указан, но не найден** ни в файле, ни в системе — **ошибка валидации**, файл не будет импортирован.

* Процессы импортируются в порядке иерархии (сначала родители, потом дети).

**Пример**

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdDBoIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--07aca5c1dd549dbe6b3e007d14a136bd3bfdae6b/image.png)`ㅤ`

---

## **Лист 3: «Параметры процессов»**

Связывает параметры с процессами и задаёт их значения.

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdDRoIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--303725843a4b6a16909a84782ffcbaa42bb6ec4a/image.png)`ㅤ`

### **Формат значений по типам**

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdDhoIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--a419f0de2a027222ac330580cbeff8f8611a3132/image.png)`ㅤ`

### **Поведение при импорте**

* Параметр добавляется на «экран» процесса

* Если значение указано — сохраняется

* Если значение пустое — параметр просто привязывается к процессу без значения

* Одна строка = одна связь процесс ↔ параметр

**Пример**

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdUFoIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--3c7d8a685830e3037892363637e5ee7ab383f3ca/image.png)`ㅤ`

---

## **Лист 4: «Ссылки»**

Внешние ссылки, прикреплённые к процессам.

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdUVoIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--b5a7dec9a9a777ce66af63431e71508a05327ea1/image.png)

`ㅤ`

### **Поведение при импорте**

* Если ссылка с таким URL уже есть у процесса — **пропускается**

* Новые ссылки добавляются

**Пример**

![](https://helpdesk.stormbpmn.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdUloIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--586a618e2edbb05367ae7a89ada698325a4793d6/image.png)`ㅤ`

---

# **Порядок обработки при импорте**

1. **Параметры** — создаются новые, существующие пропускаются

2. **Процессы** — создаются новые с учётом иерархии, существующие пропускаются

3. **Параметры процессов** — привязываются к процессам, значения сохраняются

4. **Ссылки** — добавляются новые, дубликаты по URL пропускаются

---

# **Валидация перед импортом**

Система проверяет файл перед импортом и сообщит об ошибках:

* Неизвестный тип параметра

* Дублирование названий в файле

* Несуществующий родительский процесс (не найден ни в файле, ни в системе)

* Несуществующий процесс или параметр (в листе «Параметры процессов»)

* Владелец является группой, а не должностью

* Циклические зависимости процессов

* Превышение длины названия (максимум 350 символов)

---

# **Рекомендации**

1. **Экспортируйте существующий реестр** как образец формата

2. **Названия регистронезависимы** — `Процесс А` и `процесс а` считаются одинаковыми

3. **Для метрик** обязательно укажите направление метрики на листе «Пользовательские поля»

4. **Пустые листы** допустимы — импортируется только то, что заполнено