Отображение пользовательских атрибутов в Documentum - Webtop
-
21-09-2019 - |
Вопрос
Я слежу за статья это объясняет, как использовать класс ICustomAttributeDataHandler.
Я создаю пользовательский столбец для экрана входящих сообщений, но проблема в том, что значение, которое я установил для своего пользовательского атрибута, не отражается на экране.
В качестве теста я меняю название задачи на "Кто знает".Но этот код не влияет на то, что выводится на экран:
ICustomAttributeRecordSet.setCustomAttributeValue(i, "taskName", "whoKnows");
(Я могу печатать отладочные строки из моего пользовательского класса при просмотре папки "Входящие", поэтому я знаю, что мой код выполняется.)
Кто-то в комментариях к этой статье написал:
пользователь должен вызвать метод setCustomAttributesInQuery() в dataprovider, передающем массив строк пользовательских атрибутов
...что это значит?Может ли это быть моей проблемой?
Спасибо.
Решение
Честно говоря, я уже пользовался Webtop, но только как пользователь.Я нашел разместите сообщение в дискуссионной группе разработчиков dm хотя это может быть полезно:
Для создания пользовательского столбца в списке документов вам не нужно проходить эти сложные процедуры.Вы можете использовать пользовательские обработчики данных атрибутов для этого.
- Сначала в XML-файле вашего компонента списка объектов добавьте свое пользовательское определение столбца в теге "столбцы".Вы даже можете добавить статические столбцы вместо атрибутов documentum.
- Теперь создайте класс, который реализует ICustomAttributeDataHandler.
- Реализуйте по умолчанию методы getRequiredAttributes и функцию getData .
- В getRequiredAttributes добавьте атрибуты объекта, который вы ищете.
- В вашем методе getdata извлеките каждую строку, а затем на основе атрибута , который вы видите, просто установите нужное значение .6) Наконец, определите свой класс в app.xml файле
В руководстве по разработке WDK есть раздел, касающийся ICustomAttribuetDataHandlers.Найдите раздел под названием "Добавление пользовательских атрибутов в datagrid".
Я не уверен, что это окончательное решение, но я надеюсь, что это поможет!
Другие советы
Чтобы ответить на ваш вопрос о setCustomAttributesInQuery()
каждая сетка данных в WDK поддерживается базовым поставщиком данных.Вы можете получить этот proivder, используя следующий код.
Datagrid datagrid = (Datagrid)getControl("doclist_grid",com.documentum.web.form.control.databound.Datagrid.class);
DataProvider dp = datagrid.getDataProvider();
Как только вы это сделаете, вы можете позвонить
dp.setCustomAttributesInQuery(myArr);
На самом деле я не уверен, является ли это частью решения вашей проблемы, но вы могли бы попробовать это и посмотреть, к чему это вас приведет.
Вам необходимо настроить компонент "Входящие".
если используется классический вид, перейдите в компонент inboxlist и добавьте свой пользовательский атрибут.
<column>
<attribute>CustomAttributeName</attribute>
<label>Custom Attribute Label</label>
<visible>true</visible>
</column>
Ваш пользовательский атрибут должен быть пользовательского типа, который является подтипом dmi_queue_item, потому что inboxlist показывает только объекты dmi_queue_item.
Надеюсь, это поможет,
С уважением, Tejas.
Возможно, это не проблема, но, основываясь на вашем коде, я не могу сказать, делаете ли вы это:
ICustomAttributeRecordSet.setCustomAttributeValue(i, "taskName", "whoKnows");
или это:
ICustomAttributeRecordSet rs;
rs.setCustomAttributeValue(i, "taskName", "whoKnows");
Вы должны вызывать метод setCustomAttributeValue в экземпляре объекта rs, а не в интерфейсе.