Пример использования бизнес-правила в сценарии
Метод PublicAPI.Services.BusinessRuleExecution.CalculateBusinessRuleTable позволяет выполнять бизнес-правила в сценариях. Подробнее о работе с бизнес-правилами читайте в справке по ELMA4.
В метод CalculateBusinessRuleTable требуется передать версию бизнес-правила и входные параметры. Для каждого входного параметра создайте сущность BusinessRuleColumnValue, в которую нужно передать имя параметра (задается в таблице принятия решений в настройках параметра) и значение.
В представленном ниже примере сценария:
- P1, P2 – имена входных параметров;
- O1, O2 – имена выходных параметров.
В сценарии используются контекстные переменные:
- context.result1 и context.result2 – переменные типа Строка, в которые сохраняются полученные значения выходных параметров бизнес-правила;
- context.ErrorMessages – переменная типа Строка, в которую сохраняется список ошибок при выполнении бизнес-правила.
Пространство имен:
using EleWise.ELMA.BusinessRules.Models.BusinessRulesTableMapping;
Текст сценария:
// Загрузить бизнес-правило
var rule = PublicAPI.DMN.BusinessRule.Load(1);
// Загрузить текущую версию бизнес-правила
var ruleVersion = PublicAPI.DMN.BusinessRuleVersion.GetCurrent(rule);
// Или загрузить черновик версии бизнес-правила
// var ruleVersion = PublicAPI.DMN.BusinessRuleVersion.GetDraft(rule);
// Или загрузить версию бизнес-правила по Id
// var ruleVersion = PublicAPI.DMN.BusinessRuleVersion.GetByVersion(rule, 100);
// Выполнить бизнес-правило с входными параметрами и получить результат выполнения.
BusinessRuleResult result = PublicAPI.Services.BusinessRuleExecution.CalculateBusinessRuleTable(
ruleVersion,
new BusinessRuleColumnValue("P1", PublicAPI.Portal.Security.User.Load(1)),
new BusinessRuleColumnValue("P2", "Два")
);
// Выходные параметры бизнес-правила. Каждый выходной параметр нужно привести к соответствующему типу.
context.result1 = result["O1"] as string;
context.result2 = result["O2"] as string;
// Список ошибок бизнес-правила. Если выполнение бизнес-правила завершилось с ошибкой, информация об этом добавляется в список ошибок
if (result.ErrorMessages != null)
{
context.ErrorMessages = string.Join(" ", result.ErrorMessages);
}
Кроме выходных параметров метод BusinessRuleResult позволяет получить в сценарий следующие результаты выполнения бизнес-правила:
- номер выбранной строки бизнес-правила (параметр SelectedRow);
- содержание поля Примечание в выбранной строке бизнес-правила (параметр Annotation).
Например, с помощью сценария можно отобразить номер выбранной строки бизнес-правила для пользователя, ответственного за работу с бизнес-правилом. Это позволит проверить и откорректировать бизнес-правило, если в его условиях обнаружена ошибка.
Текст поля Примечание можно отобразить для пользователя вместе с основной информацией о строке бизнес-правила, которая выбрана.