Alfresco:如何为cm:person关联设置默认表单值

Alfresco:如何为cm:person关联设置默认表单值,alfresco,Alfresco,我有一个带有关联字段的Alfresco工作流表单,允许选择多个用户。字段UI定义是隐式的(模型定义关联) 我想用当前登录用户初始化该字段 我尝试过使用表单筛选器并使用FieldUtils.makeAssociationField()将NodeRef用作值,然后使用form.addField(),但这会导致不支持操作异常 虽然我使用相同的技术来初始化属性字段,但没有任何问题 有人能给我指点解决办法吗 private void initInitatorNodeRef(final Form form)

我有一个带有关联字段的Alfresco工作流表单,允许选择多个用户。字段UI定义是隐式的(模型定义关联)

我想用当前登录用户初始化该字段

我尝试过使用表单筛选器并使用
FieldUtils.makeAssociationField()
将NodeRef用作值,然后使用
form.addField()
,但这会导致
不支持操作异常

虽然我使用相同的技术来初始化属性字段,但没有任何问题

有人能给我指点解决办法吗

private void initInitatorNodeRef(final Form form)
    {

        final String userName = AuthenticationUtil.getFullyAuthenticatedUser();

        if (userName != null)
        {
            final NodeRef person = personService.getPerson(userName);

            if (person != null)
            {

                final AssociationDefinition definition =
                    serviceRegistry.getDictionaryService().getAssociation(MywfModel.ASSOC_AUTHORS);

                final Field field =
                    FieldUtils.makeAssociationField(
                        definition, person, null, serviceRegistry.getNamespaceService(),
                        serviceRegistry.getDictionaryService());

                form.addField(field);
            }
            else
            {
                throw new RuntimeException("Person not found.");
            }
        }
        else
        {
            throw new RuntimeException("UserName not found.");
        }

    }
发现了一个:

form.addData()
在某个Map.put调用上引发异常,由于关联上下文中的某些原因,无法更新字段数据的映射。我用内部方法
form.getFormData().addFieldData()
替换了上面的行,强制覆盖参数为true,它就可以工作了。在我的表单中,关联现在已正确初始化

发现了一个:

form.addData()
在某个Map.put调用上引发异常,由于关联上下文中的某些原因,无法更新字段数据的映射。我用内部方法
form.getFormData().addFieldData()
替换了上面的行,强制覆盖参数为true,它就可以工作了。在我的表单中,关联现在已正确初始化


你能为你的异常附加完整的跟踪和你的露天版本吗!没有堆栈跟踪。FormUIGet webscript似乎捕获并屏蔽了异常。我目前正在Enterprise 5.0.2上进行测试,原因是您的模型中已经定义了该关联,并且您正在添加一个同名的新关联吗?您是否考虑过其他选择,例如在开始执行任务之前在某个ExecutionListener上设置值?是的
表单.addData()
将其抛出到某个Map.put调用中,由于关联上下文中的某些原因,无法更新字段数据的映射。我用内部方法
form.getFormData().addFieldData()
替换了上面的一行,以强制
overwrite
参数为true,然后它就工作了。在我的表单中,关联现在已正确初始化。您能否将您的异常的完整跟踪与您的alfresco版本一起附上!没有堆栈跟踪。FormUIGet webscript似乎捕获并屏蔽了异常。我目前正在Enterprise 5.0.2上进行测试,原因是您的模型中已经定义了该关联,并且您正在添加一个同名的新关联吗?您是否考虑过其他选择,例如在开始执行任务之前在某个ExecutionListener上设置值?是的
表单.addData()
将其抛出到某个Map.put调用中,由于关联上下文中的某些原因,无法更新字段数据的映射。我用内部方法
form.getFormData().addFieldData()
替换了上面的一行,以强制
overwrite
参数为true,然后它就工作了。在我的表单中,关联现在已正确初始化。