﻿# Настроить изменение рейтинга поставщиков в бизнес-процессах

> [HTML Version](supplier-rating-change.html)

При установке решения **Закупки** в дизайнере бизнес-процессов появятся блоки для изменения рейтинга [поставщиков](work-with-suppliers.md). Их можно использовать, чтобы оценивать взаимодействие с поставщиком на разных этапах работы. Например, после приёмки заказа можно повысить или снизить рейтинг в зависимости от качества товара.

По умолчанию изменение рейтинга настроено в бизнес-процессе **Обработка заказа**. Также сотрудники могут вручную повышать и понижать рейтинг поставщиков в приложении [Изменения рейтинга поставщика](change-rating-manually.md).

Вы можете настроить изменение рейтинга в ходе любых процессов решения **Закупки**, связанных с закупочными процедурами, заказами и поставками. Укажите, на каких этапах процесса нужно оценивать контрагента, используя блоки:

- [Ручное изменение рейтинга поставщика](#manual-rating-change) — разместите блок на любом этапе процесса, чтобы пользователю из зоны ответственности назначалась задача изменить рейтинг поставщика по итогам взаимодействия. В ней он выбирает элемент из справочника [Факторы изменения рейтинга](purchases-fill-directories.md#rating-change-factors), в котором указана оценка и её причина, а также оставляет комментарий. Например, снижает рейтинг при низком качестве товара или повышает при высоком;

- [Автоматическое изменение рейтинга поставщика](#automatic-rating-change) — блок размещается на отдельной ветке, по которой процесс пойдёт при пределённых условиях. В настройках блока нужно выбрать элемент из справочника **Факторы изменения рейтинга**, в котором задана оценка работы контрагента и её причина. Когда процесс доходит до блока, рейтинг поставщика автоматически изменяется в соответствии с оценкой. Например, в ходе процесса поставщик отказался от выполнения заказа. Тогда у него автоматически снизится рейтинг.

Обратите внимание, перед размещением и настройкой блоков нужно заполнить справочник [Факторы изменения рейтинга](purchases-fill-directories.md#rating-change-factors).

## Ручное изменение рейтинга поставщика

Чтобы сотруднику назначалась задача изменения рейтинга:

1. Разместите блок **Ручное изменение рейтинга поставщика** на схеме процесса в том месте, где сотрудник должен оценивать взаимодействие с контрагентом.

2. Добавьте для блока дополнительный переход для обработки ошибок, который будет указываться в его настройках. Например, при ошибке администратору может назначаться задача устранить проблему и возобновить ход процесса.

3. Дважды нажмите на блок на схеме процесса и перейдите на вкладку **Входные и выходные атрибуты**.

**(supplier-rating-change-1.png)**

4. Свяжите входные переменные блока со свойствами из контекста процесса:

	- **Поставщик** — укажите контрагента, для которого будет изменяться рейтинг. Для этого выберите переменную, в которой хранится компания из справочника **Поставщики**;

	- **Заказ**, **Закупка** — для корректной работы блока заполните одно из полей в зависимости от того, с чем связан бизнес‑процесс — с закупочной процедурой или с заказом. Для этого укажите переменную, связанную с приложением **Заказы поставщикам** или **Закупки** из раздела **SRM**.

5. Вы также можете использовать выходную переменную **Изменение рейтинга поставщика** для настройки хода процесса после блока. В неё записывается элемент с фактором изменения рейтинга, который выбрал пользователь. С его помощью можно настроить условие перехода в шлюзе. Тогда вы сможете задать в процессе разные ветки и направлять по ним его ход в зависимости от указанного фактора. Подробнее читайте в разделе [«Настроить ход процесса после ручного изменения рейтинга»](#use-output-variable).

6. Перейдите на вкладку **Обработка ошибок**, включите опцию **Прервать** и укажите настроенный переход для обработки ошибок.

7. Нажмите **Сохранить**.

8. Сохраните и опубликуйте бизнес-процесс.

Теперь сотрудник сможет вручную изменить рейтинг поставщика в ходе процесса.

### Настроить ход процесса после ручного изменения рейтинга

Вы можете направлять процесс по разным веткам после блока ручного изменения рейтинга. Допустим, если сотрудник указал фактор **Задержка доставки**, процесс пойдёт по ветке с взысканием установленного по договору штрафа. При других значениях будет использоваться ветка по умолчанию.

Рассмотрим, как настроить выбор перехода в зависимости от фактора изменения рейтинга. При повышении или понижении рейтинга в ходе процесса в разделе **SRM > Изменения рейтинга поставщика** автоматически добавляется элемент. В его карточке фиксируется выбранный фактор и оценка. Этот элемент передаётся в процесс и записывается в выходную переменную блока **Ручное изменение рейтинга поставщика**. Вы можете использовать его в скрипте, чтобы в зависимости от выбранного фактора определять ветку, по которой пойдёт процесс.

Для этого:

1. Добавьте в контекст процесса свойство типа [Приложение](360009707032.md#app) и выберите в его настройках **Изменения рейтинга поставщика** из раздела **SRM**.

2. Откройте настройки блока **Ручное изменение рейтинга поставщика**. На вкладке **Основное** в поле **Присвоить выходные атрибуты в** оставьте значение по умолчанию **контекст процесса**.

3. Перейдите на вкладку **Входные и выходные атрибуты**. Свяжите выходную переменную **Изменение рейтинга поставщика** с добавленным свойством, чтобы в него записывался созданный во время работы блока элемент.

4. Сохраните настройки.

5. Чтобы направлять ход процесса по разным веткам в зависимости от условий, разместите после блока ручного изменения рейтинга [исключающий шлюз](360012495911.md#exclusive-gateway).

6. Задайте в шлюзе скрипт, который будет проверять, какой фактор измерения рейтинга указал пользователь. Для этого в настройках шлюза перейдите на вкладку **Служебная переменная**. Включите опцию **В условиях перехода использовать служебную переменную**, выберите тип переменной, затем в поле **Скрипт** создайте и откройте функцию. 

**(supplier-rating-change-2.png)**

7. Напишите скрипт, в котором нужно:

	- получить из элемента приложения **Изменения рейтинга поставщика**, записанного в контекст процесса, выбранный пользователем фактор;

	- задать в зависимости от фактора разный результат выполнения скрипта. В нашем примере для каждого фактора в результат записывается определённая строка. Она автоматически передаётся в служебную переменную шлюза, которая используется для выбора перехода.

Подробнее о написании скриптов читайте в [справке ELMA365 TS SDK](https://tssdk.elma365.com/ru/latest/index.html).

8. В настройках шлюза на вкладке **Переходы** выберите переход по умолчанию. В нашем примере процесс продолжится по нему при выборе любого фактора изменения рейтинга, кроме **Задержка доставки**.

9. Настройте условия для перехода при задержке доставки. Для этого нажмите на его название и откройте вкладку **Условия перехода**. Укажите заданное в скрипте значение служебной переменной, при котором должен выбираться этот переход.

**(supplier-rating-change-3.png)**

10. Сохраните настройки шлюза.

Теперь ход процесса зависит от фактора, который выбирает пользователь.

## Автоматическое изменение рейтинга поставщика

Чтобы настроить изменение рейтинга без участия пользователя:

1. Разместите блок **Автоматическое изменение рейтинга поставщика **на том этапе бизнес‑процесса, где рейтинг должен меняться автоматически. Например, в ветке, по которой процесс идёт при несоблюдении сроков поставки.

2. Добавьте для блока дополнительный переход для обработки ошибок, который будет указываться в его настройках. Например, если изменить рейтинг автоматически невозможно, можно использовать блок ручного изменения рейтинга.

3. Дважды нажмите на блок на схеме процесса и откройте вкладку **Настройки действия**.

**(supplier-rating-change-4.png)**

4. В поле **Фактор изменения рейтинга\*** выберите запись из справочника [Факторы изменения рейтинга](purchases-fill-directories.md#rating-change-factors), в которой указана оценка для повышения или понижения рейтинга и её причина. Вы также можете добавить новый фактор в справочник, нажав **+ Создать**. Во время работы блока рейтинг поставщика автоматически изменится на заданное в факторе значение. 

5. Заполните поля для связи:

	- **Поставщик** — укажите контрагента, для которого будет изменяться рейтинг. Для этого нажмите напротив поля значок цепочки и выберите из контекста процесса переменную, связанную с приложением **Поставщики** из раздела **SRM**;

	- **Заказ**, **Закупка** — для корректной работы блока заполните одно из полей в зависимости от того, с чем связан бизнес‑процесс — с закупочной процедурой или с заказом. Для этого нажмите значок цепочки и укажите переменную, связанную с приложением **Заказы поставщикам** или **Закупки** из раздела **SRM**. 

6. Перейдите на вкладку **Обработка ошибок**. Включите опцию **Прервать** и укажите настроенный переход для обработки ошибок.

7. Нажмите **Сохранить**.

8. Сохраните и опубликуйте процесс.

После определённого шага процесса рейтинг поставщика будет автоматически изменяться.