Es werden Benutzerdefinierte Attribute in Documentum - Webtop
-
21-09-2019 - |
Frage
Ich verfolge einem Artikel , die erläutert, wie die ICustomAttributeDataHandler Klasse verwenden .
Ich bin eine benutzerdefinierte Spalte für den Posteingang Bildschirm erstellen, aber das Problem ist, dass der Wert I set für mein benutzerdefiniertes Attribut wird nicht auf dem Bildschirm reflektiert wird.
Als Test Ich ändere den Namen der Aufgabe auf „whoKnows“. Aber dieser Code bewirkt nicht das, was auf dem Bildschirm ausgegeben wird:
ICustomAttributeRecordSet.setCustomAttributeValue(i, "taskName", "whoKnows");
(Ich kann Debug-Linien aus meiner benutzerdefinierten Klasse drucken, wenn der Posteingang angezeigt wird, so dass ich mein Code wissen wird ausgeführt.)
Jemand auf die Kommentare dieses Artikels schrieb:
muss der Benutzer ruft die „SetCustomAttributesInQuery () Methode auf dem Datenprovider in einem vorübergehenden String-Array des benutzerdefinierten Attributs
... was diese meen tut? Könnte dies mein Problem sein?
Dank.
Lösung
Um ehrlich zu sein, habe ich bereits verwendet Webtop, sondern nur als einen Benutzer. Ich fand einen Beitrag in der dm-Entwickler Diskussionsgruppe , die nützlich sein können , aber:
Für eine benutzerdefinierte Spalte in der Schaffung DocList Sie brauchen nicht zu durchlaufen dieses komplexe Verfahren. Sie können verwenden benutzerdefinierte Attribut datahandlers für dies.
- Erste in der Objektliste Komponente XML-Datei Ihre benutzerdefinierte Spalte hinzufügen Definition im Tag „Spalten“. Sie kann auch statische Spalten hinzufügen statt die documentum zuschreibt.
- Erstellen Sie nun eine Klasse, die implementiert die ICustomAttributeDataHandler.
- Implementieren Sie die Standard-Methoden getRequiredAttributes und die getData Funktion.
- In getRequiredAttributes fügen Attribute des Objekts, dass Sie suchen.
- In Ihrer getdata Methode abrufen jede Zeile und dann auf der Grundlage des Attribut, das Sie sehen, stellen nur die Wert, den Sie wollen. 6) Schließlich definieren Sie Ihre Klasse in der app.xml Datei
Es gibt einen Abschnitt in WDK Entwicklung Führung in Bezug auf ICustomAttribuetDataHandlers. Suchen das Thema namens „Hinzufügen von benutzerdefinierten Attribute zu einem Datagrid“.
Ich bin mir nicht sicher, ob dies die endgültige Lösung, aber ich hoffe, es hilft!
Andere Tipps
Zur Beantwortung Sie Fragen zu setCustomAttributesInQuery ()
jedes Datagrid in WDK wird von einem zugrunde liegenden Datenprovider unterstützt. Sie können diese proivder erhalten, indem Sie den folgenden Code verwenden.
Datagrid datagrid = (Datagrid)getControl("doclist_grid",com.documentum.web.form.control.databound.Datagrid.class);
DataProvider dp = datagrid.getDataProvider();
Wenn Sie das getan haben, können Sie anrufen
dp.setCustomAttributesInQuery(myArr);
Ich bin mir nicht wirklich sicher, ob dieser Teil der Lösung für Ihr Problem ist, aber man konnte dies versuchen und sehen, wo es Sie bekommt.
Sie haben die Inbox Komponente zu konfigurieren.
go, wenn klassische Ansicht verwenden, um inboxlist Komponente und fügen Sie Ihr benutzerdefiniertes Attribut.
<column>
<attribute>CustomAttributeName</attribute>
<label>Custom Attribute Label</label>
<visible>true</visible>
</column>
Ihr individuelles Attribut hat in einem benutzerdefinierten Typ sein, der ein Untertyp von dmi_queue_item ist, weil inboxlist zeigt nur Objekte dmi_queue_item.
Hope, das hilft,
Viele Grüße, Tejas.
Das kann kein Thema sein, aber basierend auf Ihrem Code, kann ich nicht sagen, ob Sie tun dies:
ICustomAttributeRecordSet.setCustomAttributeValue(i, "taskName", "whoKnows");
oder folgt aus:
ICustomAttributeRecordSet rs;
rs.setCustomAttributeValue(i, "taskName", "whoKnows");
Sie sollten die setCustomAttributeValue Methode auf der rs Objektinstanz anrufen, nicht auf der Schnittstelle.