问题
有一个带有conractType
属性的内容模型,以及带有conractType
列的数据列表。contextModel.conractType
需要指向dataList.conractType
。例如,在插入属性值之前,应检查该值是否存在于数据列表中。还使用应该从对应于数据列表值的下拉列表中选择属性值。
我的解决方案
当尝试直接将模型属性与数据列表类型链接时:
<!-- DataLists-->
<type name="sc:contractType">
<title>Options</title>
<parent>dl:dataListItem</parent>
<properties>
<property name="sc:type">
<title>Type</title>
<type>d:text</type>
</property>
</properties>
</type>
<!-- workflow model-->
<type name="sc:startProcesstask">
<parent>bpm:startTask</parent>
<properties>
<property name="sc:helloName">
<type>d:text</type>
<mandatory>true</mandatory>
<multiple>false</multiple>
</property>
<!-- Error after adding this property -->
<property name="sc:requestCategory">
<type>sc:contractType</type>
<mandatory>true</mandatory>
<multiple>false</multiple>
</property>
</properties>
</type>
我收到一个错误:
Caused by: org.alfresco.service.cmr.dictionary.DictionaryException: 09180002 Property type 'sc:contractType' of property 'sc:requestCategory' is not found
所以看来我需要创建:
- 检查输入值的自定义验证器
contractType
从列中检索所有可能的列表值的自定义 ui 元素。
问题 1
在这种情况下如何正确链接验证器和 ui 元素?例如数据列表有类型和UUID
。链接到UUID
是硬编码,但是当有多个值的列表时,链接到类型会导致意外情况。可能需要在列表数据类型和模型之间进行额外的绑定吗?
问题2
我认为这个问题很常见,但是很难找到任何一段代码。(很多代码具有单独的上下文模型和数据列表,但没有在一起) alfresco 是否提供了将内容模型属性值链接到数据列表的内置解决方案?