Composition relationship в StandardEditor Process Form (BPM)

Помогите пожалуйста.
В скрине для bpoc задачи, которая extend-ит StandardEditor сущности, не получается сохранить связь объекта с другим объектом.

    @ProcessForm(outcomes = {
            @Outcome(id = "sendToCpr",outputVariables = {
                     @OutputVariable(name = "canceledByInitiator",type = Boolean.class)
             }),
            @Outcome(id = "cancelByInitiator",outputVariables = {
                     @OutputVariable(name = "canceledByInitiator",type = Boolean.class)
             })
    })
    @UiController("jcrm_RegMicrocreditAppTask.edit")
    @UiDescriptor("reg-app-task.xml")
    @EditedEntityContainer("applicationDc")
    @LoadDataBeforeShow
    public class RegAppTask extends StandardEditor<MicrocreditApplication> { ....} 

В onInit -

@Subscribe
public void onInit(InitEvent event) {
    MicrocreditApplication application = dataManager.reload(applicationVariable, "reg-app-task-view");
    if(application.getLoanTerms() == null){
        LoanTerms loanTerms = createLoanTerms();
        application.setLoanTerms(loanTerms);
    }
    setEntityToEdit(application);
}

пытаюсь создать сущность и положить его в сущность для изменения.

private LoanTerms createLoanTerms() {
    return dataContext.merge(metadata.create(LoanTerms.class));
}

и при сохранении нет связки при нажатии на кнопку save с action=“windowCommit” и при нажатии на кнопку которая завершает задачу

@Subscribe("sendToCprBtn")
public void onSendToCprBtnClick(Button.ClickEvent event) {
    commitChanges().then(()->{
        Map<String, Object> variables = new HashMap<>();
        variables.put("canceledByInitiator",false);
        variables.put("cprDecision","APPROVED");

        applicationVariable.setApplicationStatus(EApplicationStatus.EXECUTION);

        processFormContext
                .taskCompletion()
                .withOutcome("sendToCpr")
                .withProcessVariables(variables)
                .complete();

        closeWithDefaultAction();
    });
}

Вот такая картина в xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<window xmlns="http://schemas.haulmont.com/cuba/screen/window.xsd"
    caption="msg://regAppTask.caption"
    focusComponent="taskFormTabSheet"
    messagesPack="com.myproject.web.screens.microcreditapplication">
<data>
    <instance id="applicationDc"
              class="com.myproject.entity.microcredit.MicrocreditApplication">
        <view extends="reg-app-task-view"/>
        <loader/>
        <instance id="loanTermsDc" property="loanTerms"/>
        ...

Добрый день!
Правильно будет проставлять loanTerms не в методе onInit, а в обработчике события InstanceLoader.PostLoadEvent. Т.е. если dataLoader у вас будет иметь id = microcreditApplicationDl, то обработчик будет примерно таким:

    @Subscribe(id = "microcreditApplicationDl", target = Target.DATA_LOADER)
    public void onMicrocreditApplicationDlPostLoad(InstanceLoader.PostLoadEvent<MicrocreditApplication> event) {
        MicrocreditApplication loadedEntity = event.getLoadedEntity();
        if (loadedEntity.getLoanTerms() == null) {
            LoanTerms loanTerms = metadata.create(LoanTerms.class);
            loanTerms.setTerm1("test1");
            LoanTerms mergedLoanTerms = dataContext.merge(loanTerms);
            loadedEntity.setLoanTerms(mergedLoanTerms);
        }
    }

К этому моменту объект microserviceApplication уже будет загружен с вьюхой, указанной в xml-дескрипторе и ничего перезагружать руками будет не нужно.