Donnerstag, 31. Juli 2014

Managed Metadata Column per Nintex Workflow setzen


Das Aktualisieren von Spalten eines Listenelementes mit Nintex Workflow ist ziemlich einfach. Einfach die Aktion „Element aktualisieren" einfügen, die zu ändernde Spalte auswählen und einen neuen Wert eingeben. Dies funktioniert solange, bis Sie versuchen eine Managed Metadata Spalte zu aktualisieren. In diesem Beitrag zeigen wir Ihnen, wie Sie mittels Workflow eine Managed Metadata Spalte aktualisieren.
Das gezeigte Beispiel beschränkt sich auf Managed Metadata Werte die bereits in der Site Collection einmal verwendet wurden.
SharePoint führt auf Site Collection Ebene eine versteckte Liste, die alle innerhalb der Site Collection benutzten Terms aus dem Term Store speichert. Es handelt sich um die Hidden Taxonomy List, die Sie wie folgt aufrufen können:
 
 
Abbildung 1 Hidden Taxonomy List

 

Warum kann ich nicht einfach einen Wert eingeben?

Managed Metadata Felder sind anders angelegt als normale Text- oder Auswahlfelder. Beim Update einer Managed Metadata Column wird ein spezielles Format erwartet:

Int;#label|guid
Bsp.: 17;#SharePoint|9df7e24f-144d-4a84-ad89-fa308af9808f
 
Das benötigte Format setzt sich aus einer führenden ganzen Zahl (ID), der Zeichenfolge „;#" dem Termnamen (label), einem senkrechten Strich „|" und einer GUID zusammen.

Woher bekomme ich die ID bzw. die GUID?

Die ID und GUID wird aus der Hidden Taxonomy List entnommen (siehe Abbildung 1). Wobei die Spalte „IdForTerm" den Wert für die GUID und die Spalte „ID" den Wert für die ID liefert.

Aufbau des Nintex Workflows

Der Workflow zum setzten der Managed Metadata Column ist relativ einfach aufgebaut und besteht nur aus drei Aktionen:
                                            

Abbildung 2 Managed Metadata Column setzen per Nintex Workflow

1.    Taxonomy Hidden List abfragen
Als erstes wird die Taxonomy Hidden List abgefragt. Dazu muss die „Query list" Aktion wie folgt konfiguriert werden:


Abbildung 3 QAML-Query

Im Element <List ID= > müssen Sie die List ID der Taxonomy Hidden List angeben. Im <ViewFields> Element wird angegeben, welche Felder Sie auslesen möchten. Im <Where> Element geben Sie die Abfrage an. In diesem Beispiel suchen Sie nach einem Term mit dem Titel „SharePoint" (<Value> Element).
Nach dem Einfügen der CAML-Query klicken Sie einmal auf „Save" und öffnen das Konfigurationsfenster erneut. Beim erneuten Öffnen der Konfiguration erscheint ganz unten eine Feldzuordnung. Hier wird festgelegt in welchen Variablen die ID und die GUID gespeichert werden sollen.
Zum Überprüfen, ob die CAML-Query korrekt ist, kann die Anfrage über die Schaltfläche „Run Now" ausgeführt werden.


Abbildung 4 Felder auslesen

2.    String zusammensetzen
Nun setzen Sie einfach den gewünschten String zusammen und speichern ihn in einer weiteren Variable.


Abbildung 5 String zusammensetzen

3.    Listenelement aktualisieren
Im letzten Schritt kann das Listenelement aktualisiert werden. Sie schreiben den Wert der Variable „Metadata" in die Managed Metadata Column des Elements.


 

Kommentare:

  1. Habt ihr eure Lösung schon mal getestet? Denke nicht, dass das funktioniert. Meines wissens müssen für jede Managed Metadata Spalte zwei Spalten aktualisiert werden. Siehe: https://habaneroconsulting.com/insights/setting-managed-metadata-fields-in-a-nintex-workflow

    AntwortenLöschen
  2. ich kann bestätigen, dass es funktioniert (unter SharePoint 2013 SP1 / Nintex Workflow 2013)

    AntwortenLöschen
  3. Does it work with multiple values for a metadata field? And what would be the separator for the different terms?

    AntwortenLöschen
  4. This also works for multi value metadata fields. You can use “;#” (without quotes) as a separator.

    Example: -1;#IT | 00dc41c6-5445-416b-ba1e-403afaee4340;#-1;#Entwicklung | 8508ccf4-328b-42cc-a45c-de042f1c302b;#-1;#Technik | cb3770e3-0574-4829-a781-0d377388ca51

    AntwortenLöschen