Отображение пользовательских атрибутов в Documentum - Webtop

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

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

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

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

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

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

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

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

благодаря.


person joe    schedule 23.12.2009    source источник
comment
немного больше деталей не помешало бы. Вы добавили конфигурацию столбца xml в определение компонента входящей почты? Что появляется? что вы уже пробовали?   -  person shsteimer    schedule 13.01.2010


Ответы (4)


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

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

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

В руководстве по разработке WDK есть раздел, посвященный ICustomAttribuetDataHandlers. Найдите тему под названием «Добавление настраиваемых атрибутов в сетку данных».

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

person jbochi    schedule 29.12.2009

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

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

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

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

dp.setCustomAttributesInQuery(myArr);

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

person shsteimer    schedule 13.01.2010

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

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

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

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

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

С уважением, Теджас.

person user265950    schedule 05.02.2010

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

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

или это:

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

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

person Gabriel McAdams    schedule 03.01.2010
comment
Спасибо, но я действительно вызываю метод для экземпляра объекта. - person joe; 04.01.2010
comment
Можете ли вы предоставить больше кода? Код, приведенный в статье, работает... Теперь осталось разобраться, в чем отличия у вас и у них. - person Gabriel McAdams; 04.01.2010