Скрипт для проверки значения доп. полей карточки (пример скрипта для дизайнера)

Для примера ниже приведен скрипт проверяющий значение дополнительного поля с кодом “CODE” и типом “Целое” в карточке Документа

// Проверяется доп поле для модуля Выбор
 
package process
 
import com.haulmont.cuba.core.global.AppBeans
import com.haulmont.cuba.core.global.DataManager
import com.haulmont.cuba.core.global.LoadContext
import com.haulmont.cuba.core.global.Scripting
import com.haulmont.thesis.core.entity.SimpleDoc
import org.apache.commons.logging.Log
import org.apache.commons.logging.LogFactory
 
DataManager dataManager = AppBeans.get(DataManager.NAME)
Log log = LogFactory.getLog(Scripting.class);
UUID entityId = card.getId();
 
LoadContext ctx =  new LoadContext(SimpleDoc.class)
 
ctx.setUseSecurityConstraints(false)
        .setView("browse")
        .setQueryString("select d from df\$SimpleDoc d where d.id = :pid")
        .setParameter("pid", entityId)
ctx.setLoadDynamicAttributes(true)
SimpleDoc d = dataManager.load(ctx)
int value
if (d.getValue("+CODE") == null)
    value =0
else
    value = d.getValue("+CODE") //возвращает значение доп  поля с кодом CODE
if(value < 100)
    return false
else
    return true

Для 5.0 +

import com.haulmont.cuba.core.global.AppBeans
import com.haulmont.cuba.core.global.DataManager
import com.haulmont.cuba.core.global.LoadContext
import com.haulmont.cuba.core.global.Scripting
import com.haulmont.thesis.core.entity.SimpleDoc
import org.apache.commons.logging.Log
import org.apache.commons.logging.LogFactory
import com.haulmont.thesis.core.app.UnsecuredDataService
  
UnsecuredDataService dataManager = AppBeans.get(UnsecuredDataService.NAME)
Log log = LogFactory.getLog(Scripting.class);
UUID entityId = card.getId();
  
LoadContext ctx =  new LoadContext(SimpleDoc.class)
  
ctx.setView("browse")
        .setQueryString("select d from df\$SimpleDoc d where d.id = :pid")
        .setParameter("pid", entityId)
ctx.setLoadDynamicAttributes(true)
SimpleDoc d = dataManager.load(ctx)
int value
if (d.getValue("+CODE") == null)
    value =0
else
    value = d.getValue("+CODE") //возвращает значение доп  поля с кодом CODE
if(value < 100)
    return false
else
    return true