Отображение пользовательских атрибутов в Documentum - Webtop - PullRequest
2 голосов
/ 23 декабря 2009

Я следую статье , в которой объясняется, как использовать класс ICustomAttributeDataHandler.

Я создаю пользовательский столбец для экрана входящих сообщений, но проблема в том, что значение, установленное для моего пользовательского атрибута, не отображается на экране.

В качестве теста я меняю имя задачи на "whoKnows". Но этот код не влияет на то, что выводится на экран:

ICustomAttributeRecordSet.setCustomAttributeValue(i, "taskName", "whoKnows");

(Я могу печатать строки отладки из своего пользовательского класса при просмотре папки «Входящие», поэтому я знаю, что мой код выполняется.)

Кто-то в комментариях к этой статье написал:

пользователь должен вызвать метод setCustomAttributesInQuery () на провайдере данных, проходящем в строковый массив пользовательских атрибутов

... что это значит? Может ли это быть моей проблемой?

спасибо.

Ответы [ 4 ]

1 голос
/ 29 декабря 2009

Если честно, я уже использовал Webtop, но только как пользователь. Я нашел сообщение в дискуссионной группе разработчиков dm , которое может быть полезным, однако:

Для создания пользовательского столбца в Доклист вам не нужно проходить это сложные процедуры. Ты можешь использовать обработчики данных пользовательских атрибутов для это.

  1. Сначала в вашем списке объектов xml-файл добавьте свой пользовательский столбец определение в теге «столбцы». Вы можно даже добавить статические столбцы вместо атрибуты documentum.
  2. Теперь создайте класс, который реализует ICustomAttributeDataHandler.
  3. Реализация по умолчанию методов getRequiredAttributes и getData функция.
  4. В getRequiredAttributes добавьте атрибуты объекта, которым вы являетесь ищу.
  5. В вашем методе getdata извлекают каждую строку, а затем на основе атрибут, который вы видите, просто установите значение, которое вы хотите. 6) Наконец определите свой класс в файле app.xml

В разделе разработки WDK есть раздел руководство относительно ICustomAttribuetDataHandlers. Ищу тема под названием «Добавление пользовательских атрибуты к сетке данных ".

Я не уверен, что это окончательное решение, но я надеюсь, что это поможет!

0 голосов
/ 05 февраля 2010

Вы должны настроить компонент входящих сообщений.

если используется классический вид, перейдите к компоненту inboxlist и добавьте свой пользовательский атрибут.

<column>
    <attribute>CustomAttributeName</attribute>
    <label>Custom Attribute Label</label>
    <visible>true</visible>
</column>

Ваш пользовательский атрибут должен иметь пользовательский тип, который является подтипом dmi_queue_item, потому что inboxlist показывает только объекты dmi_queue_item.

Надеюсь, это поможет,

С уважением, Tejas.

0 голосов
/ 13 января 2010

Чтобы ответить на ваш вопрос о setCustomAttributesInQuery ()

каждая сетка данных в WDK поддерживается базовым поставщиком данных. Вы можете получить этот proivder, используя следующий код.

Datagrid datagrid = (Datagrid)getControl("doclist_grid",com.documentum.web.form.control.databound.Datagrid.class);
DataProvider dp = datagrid.getDataProvider();

Как только вы это сделаете, вы можете позвонить

dp.setCustomAttributesInQuery(myArr);

На самом деле я не уверен, является ли это частью решения вашей проблемы, но вы можете попробовать это и посмотреть, куда вас это приведет.

0 голосов
/ 04 января 2010

Это может быть не проблема, но на основании вашего кода, я не могу сказать, если вы делаете это:

ICustomAttributeRecordSet.setCustomAttributeValue(i, "taskName", "whoKnows");

или это:

ICustomAttributeRecordSet rs;
rs.setCustomAttributeValue(i, "taskName", "whoKnows");

Вы должны вызывать метод setCustomAttributeValue для экземпляра объекта rs, а не для интерфейса.

...