Freitag, 5. Dezember 2014

InfoPath/Nintex Workflow - Repeating Table auslesen

InfoPath ermöglicht mit Hilfe des Steuerelements „Wiederholte Tabelle" (Repeating Table) das Einfügen von Datensatz-Zeilen in einem Formular. Ein einfaches Beispiel wäre eine Bestellung mit mehreren Positionen. Zu jeder Position soll die Menge und die Artikelbezeichnung angegeben werden. Eine Bestellung kann mehrere Positionen haben. Die wiederholte Tabelle ermöglicht das Einfügen von weiteren Zeilen mit den Feldern „Artikelbezeichnung" und „Menge" der einzelnen Position.

Gegeben sei ein InfoPath Formular zur Erfassung einer Bestellung. Das Formular wurde in einer Formularbibliothek im SharePoint veröffentlicht und enthält eine wiederholte Tabelle. Die Felder eines InfoPath Formulars lassen sich mit Hilfe der Property Promotion als Spalten in SharePoint anzeigen. Bei Feldern in einer wiederholten Tabelle (wiederholtes Feld) ist dies zwar möglich, allerdings stehen in der SharePoint Spalte nur die Daten der ersten Zeile der Tabelle. Mit Nintex Workflow ist es möglich, auf einzelne Zeilen einer wiederholten Tabelle zuzugreifen, um zum Beispiel aus den einzelnen Positionen in einer zweiten Liste neue Elemente anzulegen.
 
Beim Absenden des Formulars wird eine XML-Datei in der Formularbibliothek gespeichert. Diese XML-Datei kann im Nintex Workflow ausgelesen werden.
 
Zum Auslesen der XML-Datei wird die Aktion „Query XML" verwendet. In der Konfiguration der Aktion kann mittels XPath auf die Formularfelder zugegriffen und in einer Collection Variable gespeichert werden. Wir speichern die Artikelbezeichnung in der Variable „collArtikel" und die Menge in der Variable „collMenge".


In den Collection Variablen werden die Daten aller Zeilen gespeichert. Mit Hilfe einer For Each Schleife kann die Collection Variable durchlaufen, die einzelnen Datensätze (Zeilen) zusammengesetzt und ein neues Element in einer zweiten Liste erstellt werden.



In der For Each Aktion wird eine der beiden Collection Variablen angegeben und eine Output Variable festgelegt.


Wichtig an dieser Stelle ist eine Variable für den Index. Diese wird benötigt, um in einem weiteren Collection Vorgang den richtigen Datensatz für die Menge auszulesen.
 
Innerhalb der For Each Schleife muss für jedes Feld aus der wiederholten Tabelle ein Collection Vorgang platziert werden. Aus der Variable collMenge wird das Element mit dem Index „numIndex" (aktuelles Element der For Each Schleife) ausgelesen und der Wert in der Variable „Menge" gespeichert. 


Nach den Collection Vorgängen zum Auslesen des Datensatzes, kann innerhalb der For Each Schleife eine Create List Item Aktion hinzugefügt werden, um für jede Position der Bestellung in einer separaten Liste ein neues Listenelement anzulegen.

1 Kommentar:

  1. Danke für diese wichtige Information.. Ihre Richtungen sind klar und prägnant und leicht zu folgen. Vielen Dank für Ihre harte Arbeit bei der Buchung dieses Info.

    AntwortenLöschen