Einführung in den Dokument Generator

Einführung in den Dokument Generator

Was ist der Dokument Generator?

Mit dem "Document Generator" können Sie Dokumente auf der Grundlage einer Standard-Microsoft-Word-Datei generieren, die mit SharePoint-Listendaten gefüllt ist.

Dies kann in Aktionen ausgelöst werden, die in Listen-Aktionen, modernen Formularen oder in Hintergrund-Aktionen (geplant oder ausgelöst) verwendet werden.

Das generierte Dokument kann entweder direkt im Browser heruntergeladen oder in einer SharePoint-Bibliothek gespeichert werden.

Hauptvorteile:

  • Word-Dokument wird auf Basis einer vollständig anpassbaren Vorlage erstellt
  • Das Erstellen einer Vorlage ist so einfach wie das Schreiben eines Word-Dokuments und kann von Power-Usern durchgeführt werden
  • Metadaten eines einzelnen Elements, einer Liste oder sogar zusammenhängender Unterlisten mit all ihren Daten können in dieses Dokument eingefügt werden
  • Berichte über ein Dossier (Master-Slave-Beziehung) können erstellt werden

Die Funktion Dokument Generator bietet die Möglichkeit, verschiedene Arten von Dokumenten zu erstellen, z. B:

  • Rechnung
  • Merkblatt
  • Projektbericht
  • Korrespondenz
  • Arbeitsbericht
  • Auftragsbestätigung
  • Inventarliste
  • ... und viele mehr

Konfiguration UI

Konfiguration für ein einzelnes Element (Beispiel: Befehlsleistenaktion in einem Formular):



Konfiguration für mehrere Elemente (Beispiel: Listenaktion in einer Ansicht):


Beschreibung der Konfigurationsparameter:

  • Vorlage
    • Bereitgestellte Word-Vorlage, die Platzhalter enthält, kann hier hochgeladen werden (Vorlagen werden in einer versteckten Bibliothek "sbDocumentGenerator" gespeichert)
    • Die aktuell verwendete Vorlage kann durch einen Klick auf den Link "Aktuelle Vorlage" heruntergeladen werden.
  • Daten
    • Auswahl: "Für einzelnen Artikel" / "Für mehrere Artikel"
    • Liste: Liste der aktuellen Seite
    • Item ID (nur wenn "For single item" ausgewählt): ID oder Ausdruck, der als ID des Artikels ausgewertet werden soll, den wir als Kontext im Dokument haben wollen
    • Listenabfrage (nur wenn "Für mehrere Artikel" ausgewählt wurde): CAML-Abfrage, die zum Filtern der Listenelemente verwendet wird
    • Listenansicht (nur wenn "Für mehrere Elemente" ausgewählt ist): definierte Filter in Listenansichten werden mit der obigen Abfrage zusammengeführt
  • Ziel
    • Auswahl: "In der Bibliothek speichern" / "Im Browser öffnen"
    • Bibliothek (nur bei Auswahl von "In Bibliothek speichern"): Zieldokumentenbibliothek, in der das erzeugte Dokument gespeichert werden soll
    • Unterordner (nur wenn "In Bibliothek speichern" ausgewählt ist): fester Unterordnerpfad oder dynamisch berechnet durch einen Ausdruck z.B. mit Platzhaltern
    • Dateiname: Dateiname für das erzeugte Dokument. Fester Name oder dynamisch berechnet mit Hilfe eines Ausdrucks, z. B. mit Platzhaltern
    • Vorhandene Datei überschreiben (nur wenn "In Bibliothek speichern" ausgewählt ist): Wenn diese Option aktiviert ist und die Datei bereits in der konfigurierten Bibliothek gespeichert ist, wird die alte Datei überschrieben.

Dokumentvorlagen

Das unterstützte Vorlagenformat ist docx. Die Vorlage wird in Microsoft Word oder einer anderen Software erstellt, die das docx-Format unterstützt.

Derzeit erlaubt skybow Document Generator das Einfügen von skybow Platzhaltern, Bedingungen, Schleifen, verschachtelten Schleifen und Schleifen über Tabellenzeilen.

In den nächsten Versionen wird auch das Einfügen von Bildern möglich sein.

Beispiel für eine Vorlage



Den Link "Generieren" finden Sie auf dem Formular "Arbeitsstunden für die Woche", das das Dossier anzeigt:



Beispiel für ein generiertes Dokument:



Word Generator Platzhalter

Sie können verschiedene Arten von Ausdrücken verwenden, um die Metadaten in einem Word-Dokument anzuzeigen.

Syntax

Vorlagen AusdrückeBeliebige Zeichenketten[[Title]] [[Firstname]]
Zuweisungen AusdrückeBeginnen Sie mit "[[=" und einer beliebigen Zeichenkette[[= [[Title]] + ", " + [[Firstname]] ]]
Funktions-Code Ausdrücke
Beginnen Sie mit "[[{" in der Eigenschaft Tag. Schreiben Sie Ihren komplexen Ausdruck als Inhalt in den Platzhalter
[[{ var arr = [[@Web.GetValuesForQuery('OtherList', '<View></View>', 'Total')]]; var sum = 0; arr.forEach(n=>sum +=n); return sum; }]]
Nachschlagen WerteVerwenden Sie [[Lookup.FieldInternalName]], um einen beliebigen Wert aus der Zielliste eines Lookups zu erhalten

* Funktioniert nicht in geplanten und ausgelösten Aktionen

[[Department.Code]]*

[[Department.Author]]*

-------------------------------------------------------------

[[Department.Key]] -> to get the item ID of the department

If (Wenn) Bedingungen

Beginnen Sie mit [[if …]] und einem beliebigen booleschem Ausdruck (Bedingung).
Enden Sie mit [[end if]]

 

Alles, was zwischen dem Start- und dem End-Tag liegt, ist sichtbar, wenn die Bedingung erfüllt ist. Dies kann ein Text, ein Bild usw. sein.

[[if [[Budget]] > [[Outgoings]] ]]

[[Title]]

[[end if]]

-------------------------------------------------------------

[[if {return ([[Budget]] > [[Outgoings]]);} ]]

[[Title]]

[[end if]]

-------------------------------------------------------------

[[if [[Status]]!="Completed" ]]

[[Title]]

[[end if]]

Loops (Schleifen)

Beginnen Sie mit [[loop]], um eine Schleife über mehrere Elemente der ausgewählten Liste zu ziehen.

Wenn CAML Query für diesen Aktionslink konfiguriert ist, wird die Schleife danach gefiltert.

Beginnen Sie mit [[loop SublistTitle]], um eine Schleife über die Elemente der Unterliste zu ziehen, die durch Nachschlagen in der übergeordneten Liste gefiltert wurden.

Verwenden Sie den Parameter filterlookupfield('filed_internal_name'), um anzugeben, welches Lookup-Feld für die Unterliste verwendet werden soll, wenn mehrere Lookups für dieselbe Liste existieren. Er ist optional, wenn es nur ein Nachschlagefeld gibt.

Auch RowLimit ist für 200 Elemente für die Abfrage fest kodiert, aber die benötigte Anzahl kann mit dem optionalen Parameter rowlimit(number) angegeben werden.

Wenn eine Liste, die keine Unterliste ist, ausgewählt wird (keine Nachschlagemöglichkeit zu der in der Aktionslink-Konfiguration ausgewählten Liste hat), wird keine Filterung angewendet.

Die Iteration endet mit [[end loop]]

[[loop]]

[[Title]]

[[end loop]]

-------------------------------------------------------------

[[loop SubListTitle filterlookupfield('filed_internal_name') rowlimit(number)]]

[[Title]]

[[Firstname]]

[[end loop]]

Gefilterte Loops

Dabei ist 'SomeView' der Titel einer .aspx-Ansichtsseite:

Die Reihenfolge und der Filter der Ansicht werden angewendet. Wenn eine CAML-Abfrage hinzugefügt wird (optional), wird sie mit der Abfrage der Ansicht durch einen 'und'-Operator verbunden.

[[loop SublistTitle view('SomeView') query('<Where><BeginsWith><FieldRef Name="Title" /><Value Type="Text">[[{return [[Title]];}]]</Value></BeginsWith></Where>')]]

[[Title]]

[[end loop]]

Loops über Dokumente in Unterbibliotheken 

Verwenden Sie die Eigenschaft Scope="Rekursiv" in der Abfrage, um Dokumente in einem Ordner zu erhalten, wenn dieser als Unterbibliothek eines Dossiers verwendet wird.

Kombinieren Sie rekursiven Bereich und Filter in der CAML-Abfrage, um die Metadaten der aufgelisteten Dokumente zu filtern.

[[loop SublibraryName query('<View Scope="Recursive"></View>')]]

[[FileLeafRef]]

[[Title]]

[[OtherField]]

[[end loop]]

-------------------------------------------------------------

[[loop SublibraryName query('<View Scope="Recursive"><Query><Where><Eq><FieldRef Name="IsActive" /><Value Type="Boolean">1</Value></Eq></Where><OrderBy></OrderBy></Query></View>')]]

[[FileLeafRef]]

[[Title]]

[[OtherField]]

[[end loop]]

Verschachtelte Loops

Eine Schleife über eine Unterliste innerhalb der Schleife über mehrere Elemente der übergeordneten Liste wird unterstützt.

Schleifen über mehrere Unterlisten oder Unterlisten von Unterlisten werden ebenfalls unterstützt.

Wenn der Platzhalter [[@Loop.Parent.Firstname]] verwendet wird, können die Daten der übergeordneten Schleife innerhalb der verschachtelten Schleife abgerufen werden. Mögliche Formate:

[[@Loop.Parent.Field1]]
[[@Loop.Parent.LookupField1.Field2]]
[[@Loop.Parent.Parent.Field3]]
[[@Loop.CurrentIndex]]
[[@Loop.Count]]

[[loop]]

[[Title]]

[[loop SubList1]]

[[Title]]

[[Firstname]]

[[end loop]]

[[loop SubList2]]

[[Title]]

[[Firstname]]

[[end loop]]

[[end loop]]

-------------------------------------------------------------

[[loop]]

[[Title]]

[[loop SubListTitle]]

[[Title]]

[[Firstname]]

[[loop SublistTitleOfSublist]]

[[Title]]

[[@Loop.Parent.Firstname]]

[[end loop]]

[[end loop]]

[[end loop]]

Loops in Tabellen

Es ist möglich, Schleifen über Tabellenzeilen zu ziehen, indem die Schleife innerhalb der Tabelle eingefügt wird.

Wenn bei verschachtelten Schleifen die Schleife über die übergeordnete Liste in die externe Tabelle eingefügt wird, wird für jedes übergeordnete Element eine eigene Tabelle erstellt.


[[loop

SubListTitle]]

[[Title]]

[[Firstname]]

[[Lastname]]

[[end loop]]

 

[[loop]] [[Title]]

[[loop

SubListTitle]]

[[Title]]

[[Firstname]]

[[Lastname]]

[[end loop]]

[[end loop]]

Bild

Ein Bild innerhalb des Dokuments anzeigen

Sie können optional die statische Breite und Höhe des Bildes sowie die maximale und minimale Breite und Höhe angeben.

Die Parameter Breite/Höhe sind nicht obligatorisch und können als leere Zeichenkette '' oder Null angegeben werden.

Hinweis: Der Platzhalter [[Bild...]] funktioniert nur mit Bildern auf der aktuellen Site für geplante und ausgelöste Aktionen



[[image ([[Picture]], width, height, maxwidth, maxheight, minwidth, minheight)]]

 

Without width and height:

[[image ([[Picture]])]]

 

Static width and height numbers used:

[[image ([[Picture]], 50, 50)]]

  

 

Static width number used:

[[image ([[Picture]], 20)]]

 

Static height number used:

[[image ([[Picture]],,150)]]

 

[[image ([[Picture]], '', '', 100, 300)]]

[[image ([[Picture]], maxwidth=100, maxheight=300)]]

[[image (url=[[Picture]], maxwidth=100, maxheight=300)]]

Link

Einen Link im Dokument erstellen

[[link ([[Hyperlink]])]]


[[link ([[Hyperlink.Url]], [[Hyperlink.Description]])]]


[[link (url=[[Hyperlink.Url]], text='linktext')]]


Details zur Verwendung von Platzhaltern

Die folgenden Platzhalter aus dem Expression Builder können in der Word-Vorlage verwendet werden:

  • Formularfeld-Platzhalter (mit Ausnahme von [[..IsChanged]] und [[..OriginalValue]]
  • Web-Platzhalter, einschließlich Funktionen zur Filterung mit CAML Query
  • Site-Platzhalter, einschließlich Funktionen für die Filterung mit CAML Query
  • Ausgabe von Variablen und Aktionen ([[@Variables..]] und [[@Actions..]])



Für die Verwendung bei der Dokumentenerstellung nicht unterstützt:

  • Formularfelder [[..IsChanged]] und [[..OriginalValue]] Platzhalter
  • Formularplatzhalter
  • Funktionen Platzhalter
  • Seitenplatzhalter
  • Benutzerplatzhalter
  • Unterlistenplatzhalter


    • Related Articles

    • Umgang mit dem Schwellenwert für Nachschlagenspalten in einer Dokument Generator Vorlage für ein einzelnes Element

      Wenn Ihre Dokument Generator Vorlage mehr als 12 Nachschlagen-Spalten enthält, was den Schwellenwert für SharePoint-Nachschlagen überschreitet, kann es vorkommen, dass das generierte Dokument nicht alle Nachschlagewerte enthält. Um dieses Problem zu ...
    • Aktion: Dokument generieren

      Mit der Aktion Dokument generieren können Sie Dokumente auf der Grundlage einer Standard-Microsoft-Word-Datei generieren, die mit SharePoint-Listendaten gefüllt ist. Für weitere Informationen über Action Builder lesen Sie den Artikel Einführung in ...
    • Verwendung von QR Code in einer Dokument Generator Vorlage

      Es gibt eine Vielzahl von Diensten, die QR-Codes erzeugen. In diesem Artikel verwenden wir diesen Dienst, um ein QR-Code-Bild mit der Aktion "HTTP-Anfrage senden" zu generieren und dieses Bild in einer Vorlage in Verbindung mit dem Dokument Generator ...
    • Action Builder Einführung

      Der Teamsware Studio Action Builder ist ein Tool, mit dem Sie Aktionen festlegen können, die in einer bestimmten Reihenfolge ausgeführt werden. Sie können leistungsstarke Workflows erstellen, die von einer Formularschaltfläche, beim Laden des ...
    • Probleme mit der neuen Listen-UI bei den letzten MS-Updates

      Dieser Beitrag soll Sie über den aktuellen Stand der Probleme im Zusammenhang mit den MS-Updates der neuen Listenansicht in SharePoint in allen (Standard- und Erstversions-) Tenants informieren. Kurze Erklärung: Durch die MS-Updates Anfang dieses ...