# Условие

Условие — ветвление внутри сценарии. Настраивается с помощью компонента «[Шлюз ИЛИ](https://docs.bpium.ru/bpium-setup/processes/scripts/cases/broken-reference)» задания условий на выходящие [соединительные линии](https://docs.bpium.ru/bpium-setup/processes/scripts/cases/broken-reference).

## Сценарий

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LACZmmM2xUWbZxyRr4s%2F-LACZnWTX_UP3XcilXPc%2F-LAC_1W7P_2TpbFa56z-%2Fif_scheme.png?generation=1523867464833585\&alt=media)

### Описание сценария

#### Компоненте «x=10»

В компоненте присвоения мы присваиваем переменной x значение 10.

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LACZmmM2xUWbZxyRr4s%2F-LACZnWTX_UP3XcilXPc%2F-LAC_1WqlzoyeM71dR7G%2Fif_x10.png?generation=1523867464232382\&alt=media)

#### Шлюз «Или»

Условное ветвление сценария задает компонент «Шлюз ИЛИ». Этот компонент может иметь несколько выходов. В зависимости от условий сценарий продолжит свою работу по одной из линий.

Условия задаются на выходных линиях:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LACZmmM2xUWbZxyRr4s%2F-LACZnWTX_UP3XcilXPc%2F-LAC_1XD-JscyL9le6DE%2Fif_line_condition.png?generation=1523867464228148\&alt=media)

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LACZmmM2xUWbZxyRr4s%2F-LACZnWTX_UP3XcilXPc%2F-LAC_1X_fjMTvtzCKwAE%2Fif_condition.png?generation=1523867464264589\&alt=media)

Синтаксис условий соответствует синтаксису Javascript. Выражение должно вернуть `true` или `false` или их эквивалент. Условие может быть составным из нескольких подусловий. Примеры:

* `i<count`
* `summ > 0`
* `values[3].length`
* `values[7].indexOf("2")>=0`
* `(a > 10 &&  b < 3) || ! has_x`

## Возможные ошибки

Все выходные линии из шлюза обязаны иметь условия. Если условие не задано, сценарий не будет исполнен и вернет ошибку:

`bpmn:ExclusiveGateway <ExclusiveGateway_...> diverging flow (bpmn:SequenceFlow <SequenceFlow_...>) has no condition`

Чтобы найти линию с незаданным условием в сценарии — нажмите ctrl-f. В появишемся поисковом поле введите название линии:`SequenceFlow_...`.
