Добрый день!
Существует Task бизнес процесса, где с помощью InputDialog заполняются процессные переменные. На этом задании висит слушатель, который переносит значение процессных переменных в атрибуты сущности базы данных. Выглядит он следующим образом:
@Override
public void notify(DelegateTask delegateTask) {
dataManager = AppBeans.get(DataManager.class);
bprocHelperService = AppBeans.get(BprocHelperService.class);
Map<String, Object> propertyMap = delegateTask.getVariables();
StandardEntity standardEntity = (StandardEntity) propertyMap.get("createdEntity");
if (standardEntity!=null) {
MetaClass metaClass = standardEntity.getMetaClass();
try{
standardEntity = dataManager.reload(standardEntity, "edit");
}catch (Exception e){e.printStackTrace();}
for (Map.Entry<String, Object> entry : propertyMap.entrySet()) {
String propertyName = entry.getKey();
try {
standardEntity.setValue(propertyName, bprocHelperService.checkValue(metaClass, propertyName, entry.getValue())); //Метод устанавливающий атрибуты в сущность
}catch (IllegalArgumentException | IllegalStateException e){
e.printStackTrace();
}
}
dataManager.commit(standardEntity);
}
}
Дело в том, что при такой работе в сущность будут записываться по возможности все процессные переменные, если название атрибута и переменной совпадает. А можно ли как то выделить определенные процессные переменные, которые нужно записать в сущность на данном конкретном задании? По факту нужно записывать только те, которые вводит пользователь в Input Dialog’e текущего задания.