Перейти к содержанию

Понятие и изменение контекста в Comindware Business Application Platform

  • Актуально для: всех версий

Понятие контекста всегда используется для настройки бизнес-логики и вычислений в Comindware Business Application Platform. В первую очередь, у любой информационной системы есть база данных, и чтобы получить какие-то данные из нее, нужно написать запрос к базе. 

Контекст - это отправная точка запроса к базе данных. Границами контекста являются шаблоны записи, шаблоны процессов и пользовательские задачи, в которых пишется запрос (в форме вычисляемых атрибутов, правил на форме, фильтров и т.д.), и их нужно различать для правильного написания формулы.

$ - обозначение изначального контекста.

Для смены контекста используются ссылочные поля или выражение типа from a in db. Чтобы перейти по ссылке, используются системные имена атрибутов типа «Ссылка» после $ и символы Ref-> после системного имени атрибута. В триггерах можно менять контекст по самим атрибутам типа «Ссылка» или по выражению типа from a in db.

 

Примеры смены контекста

Пример 1: искомый атрибут находится в другом шаблоне записи, и в текущем контексте (шаблоне записи) есть ссылка на другой шаблон записи

$linkRef->atribut

Больше о вызове связанных данных читайте в этой статье

Пример 2: искомый атрибут находится в другом шаблоне записи, но в текущем контексте (шаблоне записи) нет ссылки на другой шаблон записи

from a in db->sistemnoe_imya_shablona_zapisi where EQUALS(a->atirbut1, $atribut2) select a->id 

Больше о настройке выражения типа select читайте в этой статье.

Пример 3: искомый атрибут находится в контексте задачи 

$cmw.task.objectId -> op.11 (где op.11 - ИД атрибута)

Примечание : в версии 3.4 в условиях на операции в шаблоне процесса можно было написать ID(op.2242), но в новой версии данный метод не поддерживается, так как была изменена логика контекста, у шаблона записи он один, а у шаблона процесса - другой, свой.

Исследования осуществляются <br>ООО «Колловэар» при грантовой <br>поддержке Фонда «Сколково»
Comindware