Проверка результата совершенного действия по процессу (пример скрипта для дизайнера)

Скрипт проверяет, было ли принято положительное решение на этапе Согласование с СБ.

Скрипт проверки результата действия по процессу

import com.haulmont.cuba.core.EntityManager
import com.haulmont.cuba.core.Transaction
import com.haulmont.cuba.core.global.AppBeans
import com.haulmont.thesis.core.entity.Doc
import com.haulmont.workflow.core.entity.Assignment
import org.apache.commons.lang.exception.ExceptionUtils
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import com.haulmont.cuba.core.Persistence
 
Logger log = LoggerFactory.getLogger("com.haulmont.thesis.designerScript.checkOutcome");
Persistence persistence = AppBeans.get(Persistence.class);
Doc doc = card;
boolean result=true;
String assignmentName = "Soglasovanie_s_SB";    \\Название проверяемого этапа
String assignmentOutcome = "ok";                \\Проверяемый результат
 
List<Assignment> assignments;
Transaction tx = persistence.getTransaction();
 
try {
    EntityManager em = persistence.getEntityManager();
    em.flush();
    String queryString = "select a from wf\$Assignment a where a.card.id = :doc and a.user is not null"
    def query = em.createQuery(queryString)
    query.setView(null);
    query.setParameter('doc', doc)
    assignments = query.getResultList();
    for (Assignment ass : assignments) {
        if (ass.outcome==assignmentOutcome & ass.name==assignmentName) {
            result=false;
        };
    };
    tx.commit();
}
catch (Exception e) {
    log.error(ExceptionUtils.getStackTrace(e));
}
finally {
    tx.end();
}
 
return result;