feat: implemented workpalcesetup form

This commit is contained in:
Тимур Городецкий
2026-08-04 11:08:16 +05:00
parent dc60d2dbee
commit c2e785961b
28 changed files with 650 additions and 85 deletions
+86
View File
@@ -0,0 +1,86 @@
# Маршрутизация портала заявок (для интеграций)
Портал — **один web part на одной странице**. Что показать, он решает по **параметрам URL**.
Этот документ — контракт ссылок для тех, кто их формирует (Power Automate, кнопки, уведомления).
> Страница портала: `https://<тенант>.sharepoint.com/sites/requests/SitePages/<Страница>.aspx`
> (точный адрес страницы уточнить у владельца портала).
---
## Важно: префикс `rp`
Имена `id`, `mode`, `type` **зарезервированы SharePoint** и ломают страницу (`?id=` →
«Элемент не существует»). Поэтому все наши параметры — с префиксом **`rp`**: `rpmode`, `rptype`, `rpid`, `rpsource`.
---
## Режимы
| Режим | Когда | Параметры | Что открывается |
| --- | --- | --- | --- |
| **Подача** (по умолчанию) | нет наших параметров | — | Категории → плитки → форма |
| **Согласование** | согласующему пришла заявка | `rpmode=approve` + `rptype` + `rpid` | Заявка только для чтения + кнопки решения |
| **Создание на основе** | производная заявка с предзаполнением | `rptype` + `rpsource` | Форма, предзаполненная из исходной заявки |
---
## Параметры
| Параметр | Значение | Пример |
| --- | --- | --- |
| `rpmode` | `approve` — режим согласующего (иначе не указывать) | `rpmode=approve` |
| `rptype` | ключ формы (см. таблицу ниже) | `rptype=recruiting-hire` |
| `rpid` | **Id элемента списка ДАННЫХ** заявки (колонка ИД) — для `approve` | `rpid=42` |
| `rpsource` | **Id исходной заявки** для предзаполнения — для «создания на основе» | `rpsource=42` |
---
## Ключи форм (`rptype`)
| `rptype` | Заявка | Категория | Согласование | Режим согласующего | Создание на основе |
| --- | --- | --- | --- | --- | --- |
| `recruiting-selection` | Заявка на подбор | Рекрутинг | нет | нет | — |
| `recruiting-hire` | Заявка на прием | Рекрутинг | да | да | — |
| `it-workplace-setup` | Организация рабочего места | IT | да | да | из `recruiting-hire` |
| `hr-transfer` | На перемещение сотрудников | Отдел кадров | (в разработке) | — | — |
---
## Готовые примеры ссылок
Пусть страница портала = `…/sites/requests/SitePages/Портал-Заявок.aspx`.
**Согласующему открыть заявку на прием №42:**
```
…/Портал-Заявок.aspx?rpmode=approve&rptype=recruiting-hire&rpid=42
```
**Согласующему открыть заявку «орг. рабочего места» №7:**
```
…/Портал-Заявок.aspx?rpmode=approve&rptype=it-workplace-setup&rpid=7
```
**Создать «орг. рабочего места» на основе заявки на прием №42 (предзаполнение):**
```
…/Портал-Заявок.aspx?rptype=it-workplace-setup&rpsource=42
```
---
## Кто формирует ссылки
- **Согласование** (`rpmode=approve…`) — поток Power Automate, который уведомляет согласующего
(аналог `ct-notify-kps`). Поток знает `rpid` (Id элемента списка данных) и подставляет `rptype`
константой под свою форму.
- **Создание на основе** (`rptype…&rpsource…`) — кнопка на заявке-источнике (напр. «Создать заявку
на организацию рабочего места на основе текущей»). Кнопка подставляет `rpsource` = Id текущей заявки.
---
## Примечания
- `rpid` и `rpsource` — это **Id элемента списка ДАННЫХ** (не строки согласования).
- «Создание на основе» — **снимок**: значения копируются на момент создания; дальнейшие изменения
исходной заявки в производную не переносятся. У производной сохраняется колонка-источник (Lookup).
- Если нужного набора параметров нет/они неполные — портал открывается в обычном режиме подачи.