BaseCardControl.ChangeState — метод (StatesStateMachineBranch)

Изменяет состояние карточки следуя предоставленному переходу автомата состояний.

Синтаксис

public void ChangeState(StatesStateMachineBranch branch)
Параметры
branch

Тип: StatesStateMachineBranch

Переход автомата состояний

Исключения

Исключение Условие

System.InvalidOperationException

Ошибка возвращается в случае, если не задан параметр baseCard или kindsCardProcess.

Заметки

При смене статуса не происходит сохранение карточки — нужно выполнить сохранение самостоятельно.

Примеры

Ниже приведем пример скрипта СУБП, выполняющего смену статуса карточки на "Согласован"

using System.Collections.Generic;
using System.Linq;
using DocsVision.BackOffice.ObjectModel.Services;

private void Button_Click(System.Object sender, System.EventArgs e)
{
 IList<StatesStateMachineBranch> statesStateMachineBranch = CardControl.ObjectContext.GetService<IStateService>().GetStateMachineBranches(BaseObject.SystemInfo.CardKind); (1)

 StatesStateMachineBranch statesStateMachineBranchLines = statesStateMachineBranch.Where(t => t.StartState = base.BaseObject.SystemInfo.State
  && t.BranchType = StatesStateMachineBranchBranchType.Line
  && t.EndState.DefaultName.Equals("Is approved")).FirstOrDefault(); (2)

 this.CardControl.ChangeState(statesStateMachineBranchLines); (3)
}
1 Получение всех значений автомата состояний для карточки.
2 Выбирается первый переход с начальным статусом соответствующем текущему статусу карточки, и названием "Согласован".
3 Смена статуса.