2016-10-18 3 views
0

Контент модели доступно с использованием свойства 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 

Таким образом, кажется, что мне нужно создать:

  1. Пользовательский валидатор которые проверяют входное значение
  2. Пользовательский элемент ui, который извлекает все возможные значения списка от contractType.

Вопрос 1

В этом случае, как связать валидатор и элементы пользовательского интерфейса правильно? Например. список данных имеет тип и UUID. Ссылка на UUID - это жесткий код, но ссылка на тип приводит к непредвиденной ситуации, когда имеется более одного списка со значениями. Может быть, необходимо иметь дополнительную привязку между типом данных списка и моделью?

Вопрос 2

Я думаю, что эта проблема является общей, но Extremelly dificult найти любой кусок кода. (Много кода с отдельной моделью контекста и списками данных, но нет вместе) Предоставляет ли alfresco встроенное решение для свойства свойства модели ссылки для списка данных?

ответ

2

словарь Alfresco в определил несколько типов данных, которые могут быть использованы при определении свойств в модели Properties

контента Так что не примет тип, который вы определили.

Для того, чтобы достичь ваши требования, вы можете пойти для определения СБН: requestCategory как детская ассоциация СБН: startProcesstask

ваша модифицированная модель будет выглядеть так:

<!-- 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> 
    </properties> 
    <associations> 
     <child-association name="sc:requestCategory""> 
      <target> 
       <class>sc:contractType</class> 
       <mandatory>true</mandatory> 
       <many>false</many> 
      </target> 
     </child-association> 
    </associations> 
</type> 
+0

Круто! Когда вы открываете форму и нажимаете для ее управления, предлагайте выбрать «файл» (контент) и элементы только с допустимым допустимым типом. Есть ли способ настроить controll для открытия выбора всего списка с типом? На данный момент мне нужно перейти на сайт, найти папки данныхList и т. Д. Кроме того, он запутывает для конечного использования слишком другие списки и элементы списка, которые он не может добавить. – Cherry