# Заполнение роли в процессе Куратором из вкладки Детали (пример скрипта для дизайнера) **Category:** [Дизайнер процессов](https://community.tezis-doc.ru/c/workflow-guides/44) **Created:** 2024-07-02 07:28 UTC **Views:** 98 **Replies:** 0 **URL:** https://community.tezis-doc.ru/t/zapolnenie-roli-v-proczesse-kuratorom-iz-vkladki-detali-primer-skripta-dlya-dizajnera/261 --- ## Post #1 by @d.slepnev Скрипт берет сотрудника из поля Куратор и проверяет наличие у него пользователя. Если пользователь есть, то подставляет его в процессную роль. Если пользователя нет, то по умолчанию проставляет инициатора. **Скрипт** ``` import com.haulmont.cuba.core.EntityManager import com.haulmont.cuba.core.Persistence import com.haulmont.cuba.core.Transaction import com.haulmont.cuba.core.global.AppBeans import com.haulmont.cuba.core.global.Metadata import com.haulmont.workflow.core.entity.Card import com.haulmont.workflow.core.entity.CardRole import com.haulmont.workflow.core.entity.ProcRole import com.haulmont.workflow.core.global.TimeUnit import org.apache.commons.logging.Log import org.apache.commons.logging.LogFactory Log log = LogFactory.getLog("123"); List roles = card.proc.getRoles(); Persistence persistence = AppBeans.get(Persistence.NAME) Transaction tx = persistence.createTransaction() try { EntityManager em = persistence.getEntityManager() ProcRole procRole = null; for (ProcRole pr : roles) { if ("wait".equals(pr.getCode())) { procRole = pr; break; } } Card reloadedCard = em.reload(card, "edit"); if (reloadedCard.owner != null) { ProcRole reloadedProcRole = em.reload(procRole, "_local"); Metadata metadata = AppBeans.get(Metadata.NAME); CardRole cardRole = metadata.create(CardRole.class); cardRole.setProcRole(reloadedProcRole); cardRole.setCode(reloadedProcRole.getCode()); cardRole.setNotifyByEmail(true); cardRole.setNotifyByCardInfo(true); cardRole.setCard(reloadedCard); cardRole.setUser(reloadedCard.owner.user); // cardRole.setSortOrder(1) // cardRole.setDuration(5); cardRole.setTimeUnit(TimeUnit.DAY) em.persist(cardRole); card.getRoles().add(cardRole) } tx.commit(); } finally { tx.end() } ``` --- **Canonical:** https://community.tezis-doc.ru/t/zapolnenie-roli-v-proczesse-kuratorom-iz-vkladki-detali-primer-skripta-dlya-dizajnera/261 **Original content:** https://community.tezis-doc.ru/t/zapolnenie-roli-v-proczesse-kuratorom-iz-vkladki-detali-primer-skripta-dlya-dizajnera/261