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

Статья для предыдущей поддерживаемой версии ПО — 4.7!

Текущая рекомендованная версия — Comindware Platform 5.0. См. документацию к версии 5.0.

Контекст вычисления формул. Понятие и изменение

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

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

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

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

 

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

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

$link->atribut

где link — системное имя атрибута с типом данных «Запись», а atribut — системное имя атрибута в связанной записи.

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

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

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

где sistemnoe_imya_shablona_zapisi— системное имя искомого шаблона записи, atribut1 — системное имя атрибута в искомом шаблоне записи, а atribut2 — системное имя атрибута в текущем шаблоне записи, с которым нужно сравнить atribut1.

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

Пример 3: текущий контекст — это контекст задачи, а искомый атрибут находится в связанном с шаблоном процесса шаблоне записи.

$cmw.task.objectId->op.11

где op.11 — ИД атрибута в связанном шаблоне записи.

Пример 4: текущий контекст — это контекст процесса, а искомый атрибут находится в связанном шаблоне записи.

$$BusinessObject->atribut

где atribut — системное имя атрибута в связанном шаблоне записи.