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

Расширения 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 "Завершена".