Расширения Comindware - Примеры использования
- Задача: мы хотим видеть заявки, у которых статус не равен «Завершен» и дата начала уже прошла относительно текущей даты.
@prefix object: <http://comindware.com/ontology/object#>. @prefix session: <http://comindware.com/ontology/session#>. @prefix math: <http://www.w3.org/2000/10/swap/math#>.
("Proekt" "Status") object:findProperty ?StatusProp. ?Proekty ?StatusProp ?Status. ("Proekt" "Datanachala") object:findProperty ?DatanachalaProp. ?Proekty ?DatanachalaProp ?Datanachala. session:context session:requestTime ?now. ?now math:greaterThan ?Datanachala. ?Status != "Завершен". ?value == ?Proekty. } |
- Задача: хотим, когда добавляем существующие записи в коллекцию, видеть в списке только те проекты, у которых прошла проверка (проверка == true) или у которых статус = «Создан».
@prefix object: <http://comindware.com/ontology/object#>. { ("Proekt" "Status") object:findProperty ?StatusProp. ("Proekt" "Proverka") object:findProperty ?ProverkaProp. ?Proekty ?StatusProp ?Status. ?Proekty ?ProverkaProp ?Proverka.
or { ?Proverka == true. } or { ?Status == "Создан". }. ?value == ?Proekty. } |
- Задача: пусть мы хотим видеть в списке на добавление только менеджеров текущего пользователя (атрибут manager типа user) или пользователей с должностью «Менеджер» (атрибут title типа текст)
@prefix cmw: <http://comindware.com/logics#>. @prefix account: <http://comindware.com/ontology/account#>. @prefix string: <http://www.w3.org/2000/10/swap/string#>. cmw:securityContext cmw:currentUser ?currUser. ?users a account:Account. or { ?currUser account:manager ?users. #users - менеджеры, u - подчиненные } or { ?users account:title ?title. ?title string:matches "менеджер". }. ?value == ?users. } |
- Задача: Хотим видеть только тех заявителей, что прикреплены уже к заявкам.
@prefix object: <http://comindware.com/ontology/object#>. { ("Zayavitel" "Application") object:findProperty ?ApplicationProp. ?Zayavitel ?ApplicationProp ? . } |
- Задача: Хотим выполнять какие-то действия с полями на форме при условии, что процент выполнения заявки больше 70 (буквально самый базовый пример) и хотим, чтобы действие в любом случае не выполнялось, если этап выполнения = 1.
@prefix object: <http://comindware.com/ontology/object#>. @prefix math: <http://www.w3.org/2000/10/swap/math#>. { ("Application" "Etap") object:findProperty ?EtapProp. ?item ?EtapProp ?Etap. ("Application" "percent") object:findProperty ?percentProp. ?item ?percentProp ?percent. or { ?Etap == 1. ?value == false. } or { ?percent math:greaterThan 70. ?value == true. }. } |
- Задача: Пусть мы хотим, чтобы для поля «статус» заявки, при выполнении вышеописанного условия, произошли следующие действия: виджет стал только с типом доступа «только для чтения», в нем посеттилось значение «Завершена» и было показано предупреждение с текстом «Заявка» *Название заявки (атрибут Name)* «завершена».
@prefix object: <http://comindware.com/ontology/object#>. @prefix math: <http://www.w3.org/2000/10/swap/math#>. @prefix string: <http://www.w3.org/2000/10/swap/string#>. @prefix output: <http://comindware.com/ontology/tableOutput#>.> { output:result a output:Result. ("Application" "Etap") object:findProperty ?EtapProp. ?item ?EtapProp ?Etap. ("Application" "percent") object:findProperty ?percentProp. ?item ?percentProp ?percent. ?Etap != 1. ?percent math:greaterThan 70. output:result output:typeOfAccess "Только чтения". output:result output:value "Завершена". ("Application" "Name") object:findProperty ?NameProp. ?item ?NameProp ?Name. ("Заявка" ?Name "завершена") string:format ?warning. output:result output:warning "Завершена". } |