close format_list_bulleted Index

1. Einführung

1.1. Was kann cloudworx.compose?

Vorteile von cloudworx.compose:

  • Erstellung von Dokumenten mit Daten aus Salesforce
  • Dynamische Dokumentenvorlagen für automatische, individualisierte Anpassung von Dokumenten
  • Dynamische Einbettung von Logos und Bildern
  • Dynamisches Anhängen weiterer (Pdf-)Dokumente and das Hauptdokument

Welche Dokumente können über cloudworx.compose erstellt werden?

- Ausgangsformat Zielformat
Tabellen xls, xlsx, ods xls, xlsx, csv, ods, pdf
Textbearbeitung doc, docs, Odt docx ,rtf,odt,pdf
Textbearbeitung (Plain Text) txt txt, pdf
HTML (Vorlage muss bei cloudworx gehostet werden HTML pdf

1.2. Die cloudworx.compose Oberfläche

Registerkarten Beschreibung
Configurations Diese Registerkarte dient der Konfiguration der Anwendung. In einem einzelnen Datensatz wird hier die Authentifizierung gegenüber cloudworx vorgenommen. Außerdem können hier weitere, die gesamte Salesforce Org betreffende, Einstellungen vorgenommen werden.
Templates Hier werden alle Informationen für die Erstellung eines vordefinierten Dokuments vorgenommen. Alle Dokumente, die anhand eines Templates erstellt werden, nutzen diese Einstellungen. Es ist die somit die Vorlagenkonfiguration. Alle untenstehenden Objekte (Scopes, Field Automations, etc.) beziehen sich auf je ein Template.
Scopes Scopes legen fest, welche Datensätze für die Erstellung eines Dokuments herangezogen werden sollen. Es muss mindestens ein Parent Scope festgelegt werden, der die Salesforce Id des Ausgangsdatensatzes abbildet. In Scopes kann außerdem festgelegt werden, ob in referenzierten Datensätzen vorhandene (Pdf)-Dateien an das zu erstellende Dokument angehängt werden sollen.
Field Automations Über Field Automations können Felder in Salesforce wahlweise vor oder nach Erstellung des Dokuments befüllt oder verändert werden. Eine Field Automation bezieht sich immer auf eine der in dem Template angelegten Scopes. Das angegebene Feld wird in allen Datensätzen der angegebenen Scope aktualisiert oder befüllt, wenn die in der Field Automation hinterlegte Bedingung korrekt ist.
Die Bedingung und der zu schreibende Wert können als fest hinterlegter Wert oder auch als Mergefeld eingetragen werden.
Template Relations Über Template Relations können bei der Erstellung des Dokuments weitere Dokumente aus anderen Templates, entweder vor oder nach dem Hauptdokument angehängt werden.
Hierzu muss eine Scope eingetragen werden, die als Ausgangsdatensatz für das untergeordnete Template dient.
Attachments Hier können einfache Pdf-Dokumente eingefügt werden. Die Attachments werden anhand der angegebenen Reihenfolge an das Dokument hinten angehängt.
Images Bilder können hier als Salesforce File Ids oder Urls hinterlegt werden um sie über Mergefelder im Dokument zu referenzieren.
Calculation Results Nur relevant wenn das Zielformat ‚xls‘ oder ‚xlsx‘ ist.
Daten aus Excel-Zellen können nach Dokumenterstellung ausgelesen werden und in Salesforce gespeichert werden.
Results Nach jeder erfolgreichen oder fehlgeschlagenen Erzeugung eines Dokuments wird ein Result-Datensatz erzeugt. Dieser enthält die ID des Datensatzes, aus dem die Dokumenterzeugung gestartet wurde, den Zeitpunkt der Erstellung und den Status („Success“, bei erfolgreicher Dokumenterstellung) der Dokumenterstellung im Feld „Message“

2. Voraussetzungen

Für die Installation von cloudworx.compose benötigst du Salesforce in der Group, Professional, Enterprise, Performance, Unlimited oder Developer Edition. Außerdem muss dein Benutzer Administratorenrechte besitzen.

3. Installation und Setup

3.1. Installation

Die Installation von cloudworx.compose erfolgt via AppExchange oder mittels eines von cloudworx bereitgestellten Links.

  1. Wenn du auf der Installations-Seite bist, wähle „Nur für Administratoren“. Du kannst später über Berechtigungssätze (Permission Sets) die Rechte für andere User vergeben.
  2. Gehe auf „Installieren“
  3. Kreuze „Ja, Zugriff auf diese Drittanbieter-Websites gewähren“ an, damit cloudworx.compose mit unserem Server kommunizieren kann.

Sobald deine Installation abgeschlossen ist, findest du alle dem Package zugehörigen Komponenten in deiner Org. Du kannst sie an dem Namespace-Präfix „cwcp“ erkennen.

Vielleicht bekommst du eine Benachrichtigung mit folgendem Inhalt: „Die Installation dieser Anwendung nimmt einige Zeit in Anspruch.” Wenn es das erste Mal ist, dass so eine Meldung bei dir erscheint, keine Sorge. Klicke einfach auf „Fertig“.

3.2. Setup

Nach beendeter Installation empfehlen wir die Überprüfung der Installation im Bereich „Anwendungen“ unter „Installierte Pakete“ im Salesforce Setup.

Als Allererstes müssen wir die Nutzungsrechte für cloudworx.compose vergeben. Die Nutzung der Applikation setzt die Vergabe bestimmter Rechte an gewünschte Salesforce-Benutzer voraus. Grundsätzlich wird hierbei nach der Art der gewünschten Nutzung unterschieden:

  • cloudworx.compose Admin: zur vollständigen Verwaltung der Applikation
  • cloudworx.compose-User: für die Erstellung von Dokumenten benötigt

  1. Suche dafür im Setup nach „Berechtigungssätze*“.
  2. Suche in der Liste nach „cloudworx.compose Admin“ und cloudworx.compose User“ und klicke auf das jeweilige Set an Rechten, das du einem Benutzer vergeben willst.
  3. Gehe auf „Zuweisungen verwalten“ und füge die gewünschten Benutzer mittels Setzen des Kontrollkästchens hinzu.

4. Konfiguration

Erster Schritt in der Konfiguration der Applikation ist die Erstellung eines Configuration-Datensatzes*:

1) Suche im App-Launcher* die „cloudworx.compose“-App.

2) Gehe anschließend auf den Reiter „Configurations“. Du musst jetzt einen Datensatz zur Speicherung der Konfigurations-Parameter anlegen. Gehe dazu auf „Neu“ und trage die entsprechenden Informationen ein. Welche das genau sind, erklären wir dir gleich.

Schauen wir uns die Felder etwas genauer an.

Deactivate (Kontrollkästchen) Über dieses Kontrollkästchen kannst du cloudworx.compose für diese Salesforce Org deaktivieren; unabhängig der zugewiesenen Permission Sets. Ist dieses Kontrollkästchen aktiv, können keine Dokumente mehr über cloudworx.compose erstellt werden.
Csv Separator Hier kannst du einstellen, welches Zeichen als Trennzeichen in csv-Dateien verwendet werden soll. Diese Einstellung gilt für alle csv-Dokumente die über cloudworx.compose in der Salesforce-Org erstellt werden. Wenn du dir nicht sicher bist, was du hier einstellen sollst, dann ignoriere dieses Feld.
Error Email Address Sollte bei der Erstellung eines Dokuments ein Fehler auftreten, wird die Beschreibung dieses Fehlers an diese E-Mail-Adresse geschickt. Hier kann nur eine einzelne E-Mail-Adresse eingetragen werden.

3) Fülle die erforderliche Felder aus. Du wirst jetzt auf die Seite des gerade erstellten Configurations-Records weitergeleitet.

4) Klicke im neuen Configuration-Datensatz auf „Authentificate“, um dich mit dem cloudworx-Server zu verbinden. Wenn deine Authentifizierung erfolgreich war, öffnet sich ein Fenster mit folgendem Inhalt:

5. Anlegen eines Templates

Um ein Dokument über cloudworx.compose zu erstellen, musst du verschiedene Datensätze erstellen:

Notwendig:

  • Template: Container für die eigentliche Datei-Vorlage und weitere Einstellungen
  • Scope: Definiert welche Datensätze bei der Dokumentenerstellung berücksichtigt werden und welche Dateien in diesen Datensätzen an das Dokument angehängt werden sollen.

Zusätzlich möglich:

  • Field Automation: Konfiguration automatischer Aktualisierungen von Feldern vor oder nach Dokumenterstellung
  • Template Relations: Beziehungen zwischen verschiedenen Templates. Templates die über eine Template Relation verknüpft sind, werden bei Erstellung des Dokuments zusammengefasst (Nur bei Zieldokument Pdf).
  • Attachments: Anhänge, die an das erzeugte Dokument angehängt werden können (Nur bei Zieldokument Pdf)
  • Image: URL oder Salesforce Id einer Bilddatei, die in das Dokument übernommen werden kann

Ein Template-Datensatz kann entweder über die Configuration oder über den Tab „Templates“ erstellt werden. In diesem Beispiel erstellen wir ein Template über den Tab „Templates“.

Über den Tab „Templates“ kannst du dir alle im System befindlichen Templates anzeigen lassen. Natürlich kannst du diese auch filtern, wie du es von anderen Salesforce-Objekten gewöhnt bist.

Um eine neue Template anzulegen, klickst du auf den Button „Neu“. Es öffnet sich der Dialog zum Erstellen eines neuen Template-Datensatzes.

Folgende Felder müssen hier ausgefüllt werden:

Feld Beschreibung
Name Dies ist der Name deines Templates. Über ihn kannst du deine Templates unterscheiden. Der Name ist nur für dich als Administrator sichtbar und relevant.
Configuration Hier gibst du die im vorherigen Schritt erstellte Configuration an. Es existiert immer nur ein Configuration-Datensatz.
File Name Format Hier trägst du den gewünschten Dateinamen ein. Die Dateiendung (z. B. „.pdf“) musst du nicht angeben. Nachdem du Scopes in deinem Template erstellt hast, kannst du diesen Dateinamen auch dynamisch anpassen. Mehr Informationen findest du unter dem Punkt: cloudworx Mergefelder.
Create Asynchronously Für die Erstellung sehr großer Dokumente kann es sinnvoll sein, dass das Dokument asynchron erstellt wird. Das bedeutet, dass die Dokumenterstellung zeitversetzt erfolgt: Nach auslösen des Erstellprozesses (z. B. über den Klick auf einen Button) wird der Prozess im Hintergrund ausgeführt. Das Dokument ist nicht sofort verfügbar, sondern erst nach einiger Zeit.
Die asynchrone Erstellung eines Dokuments ist notwendig, wenn die Erstellung eines Dokuments voraussichtlich länger als 2 Minuten dauert.
Durch die Auswahl dieser Funktion gibt es folgende Einschränkungen:
  • Template Relations werden nicht berücksichtigt
  • Field Automations die nach Dokumenterstellung ausgeführt werden, werden auch ausgeführt, wenn das Dokument aufgrund eines Fehlers nicht erstellt werden kann.
  • - Field Automations die nach Dokumenterstellung ausgeführt werden, werden ausgeführt, obwohl das Dokument noch nicht in Salesforce verfügbar ist.
Wir empfehlen diese Einstellung nur bei sehr großen Dokumenten zu verwenden.
cloudworx Id Die cloudworx Id wird bei Erstellung des Template-Datensatzes automatisch erstellt und muss von dir hier nicht ausgefüllt werden.

Beispiel für einen Use-Case:

Du willst für jeden deiner Kunden (Accounts) eine Pdf-Datei erstellen, auf der alle Mitarbeiter dieses Kunden (Contacts) aufgelistet sind.

Außerdem willst du in diesem Dokument eine Liste aller Produkte aus Salesforce anzeigen.

Das Dokument wird über einen Button im jeweiligen Account-Datensatz erstellt.

Du trägst folgende Informationen in die Felder ein:


6. Scopes

Ein Scope-Datensatz ist immer einem bestimmten Template-Datensatz zugeordnet.

Scopes definieren, welche Datensätze für dieses Template berücksichtigt werden. Dabei beziehen sie sich auf die Datenstruktur der jeweiligen Salesforce Org*. Mit Hilfe von Scopes kann außerdem der Dateiname des zu erzeugenden Dokuments dynamisch angepasst werden. Scopes sind auch die Grundlage für Field Automations.

Vereinfacht gesagt hilft zur Veranschaulichung:

Eine Scope kann ein einzelner Datensatz oder eine Liste an Datensätzen beinhalten. Aus diesem Datensatz oder der Liste können weitere Listen mit Datensätzen aufgerufen werden, die entweder aus Unterobjekten oder übergeordneten Objekten von Datensätzen der ursprünglichen Liste bestehen. Zudem können auch immer Listen aus nicht verwandten Objekten erstellt werden. Aus diesen Listen wiederum können weitere Listen aufgerufen werden, und so weiter. Jede Liste kann außerdem sortiert und gefiltert werden, sodass nur bestimmte Datensätze in der Liste erscheinen. Zusätzlich können aus allen Datensätzen in jeder Liste Dateien abgefragt werden, die ebenfalls sortiert und gefiltert werden können.

Eine Scope wird immer anhand einer (bei Field Scopes) oder mehrerer (bei Free und List Scopes) Salesforce Datensätze definiert. Alle Standard und Custom-Felder* von Datensätzen die über eine Scope in einem Template vorhanden sind, können in der Dokumentenvorlage (z. B. dem Word-Dokument) eingefügt werden.

Bitte beachten:

Ein Template muss immer mindestens eine (Primary) Scope beinhalten, damit ein Dokument erzeugt werden kann.

Es gibt zwei Methoden Scopes zu erstellen: den einfachen Modus und den erweiterten Modus. Über den einfachen Modus können Scopes über eine Eingabemaske erstellt werden. Die Einstellungsmöglichkeiten sind hierbei allerdings eingeschränkt. Nach Erstellung einer Scope über den einfachen Modus, kann diese Scope aber auch noch angepasst werden. Der einfache Modus dient als schneller Weg, einfache Scopes zu erstellen.

6.1. Erstellung von Scopes (Einfacher Modus)

6.1.1. Erstellen von Primary Scopes im einfachen Modus

Im Template-Datensatz kann eine Primary Scope einfach über den Button 'Create Primary Scope' erstellt werden.

Eine Primary Scope definiert, welcher Datensatz der Ausgangsdatensatz sein soll.

In der Maske, die sich nach Klick auf den Button öffnet, werden alle in der Salesforce Org vorhandenen Objekte angezeigt.

Über die Checkbox am linken Rand kann ausgewählt werden, für welches dieser Objekte eine Primary Scope erstellt werden soll.

Der Name der Scope in der Spalte mit der Überschrift 'Name' definiert den Namen der Scope, der von dem Objektnamen abweichen kann (mehr dazu, warum dies in manchen Fällen sinnvoll ist wird bei der Beschreibung des erweiterten Modus erklärt). Hier wird Standardmäßig das Label des Objekts angezeigt.

Der hier eingetragene Name wird für die Erstellung von Mergefeldern im Dokument genutzt.

Über die Checkbox 'Get Attachments' kann ausgewählt werden, ob Dateien, die in Dateien die über die Scope gefunden werden an das zu erstellende Dokument angehängt werden sollen.

Bitte beachten:

Der Name der Scope darf keine Leerzeichen enthalten.

Über den Button 'Create' werden die ausgewählten Scopes erstellt.

Über den Button 'Back' wird zurück auf den Template-Datensatz navigiert ohne Scopes zu erstellen.

6.1.2. Erstellen von Child Scopes im einfachen Modus

In einem Scope-Datensatz kann über den Button 'Create Child Scopes' weitere Field und List Scopes erstellt werden, die der aktuellen Scope untergeordnet sind.

Die Eingabemaske die sich nach Klick auf den Button öffnet ist unterteilt in zwei Bereiche: Field und List. Wie diese sich unterscheiden ist in den nächsten Punkten beschrieben.

Über den Button 'Create' werden die ausgewählten Scopes erstellt.

Über den Button 'Back' wird zurück auf den aktuellen Scope-Datensatz navigiert ohne Scopes zu erstellen.

6.1.2.1. Erstellen von Field Scopes im einfachen Modus

Im Bereich 'Field‘ können Scopes erstellt werden, die sich auf eine Nachschlagebeziehung beziehen, die in dem Objekt der aktuellen Scope vorhanden sind.

Beispiel:
Ein Contact hat eine Nachschlagebeziehung zu einem Account.

Es werden hier alle Nachschlagbeziehungen angezeigt, die in dem Objekt der aktuellen Scope vorhanden sind. Soll für diese Nachschlagebeziehung eine Field Scope erstellt werden, so muss die Checkbox in der linken Spalte aktiviert werden.

Der Name der Scope in der Spalte mit der Überschrift 'Name‘ definiert den Namen der Scope, der von dem Objektnamen abweichen kann (mehr dazu, warum dies in manchen Fällen sinnvoll ist wird bei der Beschreibung des erweiterten Modus erklärt). Hier wird standardmäßig das Label des Objekts angezeigt.

In der vierten Spalte mit der Überschrift 'Parent Field Name‘ wird der Name des Feldes angezeigt, über das die Nachschlagebeziehung existiert. Er sollte nicht abgeändert werden, da die Beziehung sonst nicht hergestellt werden kann.

Über die Checkbox 'Get Attachments‘ kann ausgewählt werden, ob Dateien, die in Dateien die über die Scope gefunden werden an das zu erstellende Dokument angehängt werden sollen.

6.1.2.2. Erstellen von List Scopes im einfachen Modus

List Scopes verweisen im Gegensatz zu Field Scopes nicht auf Objekte, die über Nachschlagebeziehungen mit dem Objekt der aktuellen Scope verknüpft sind. Stattdessen werden hierüber Scopes von Objekten erstellt, die selbst eine Nachschlagebeziehung auf das Objekt der aktuellen Scope besitzen.

Anstatt nur maximal eines Datensatzes wie bei einer Field Scope können List Scopes also mehr als einen Datensatz beinhalten.

Beispiel:
Eine List Scope aus einem Account beinhaltet also z. B. alle Kontakte dieses Accounts.

In der Maske, die sich nach Klick auf den Button öffnet werden alle Objekte angezeigt, die eine Nachschlagebeziehung auf das Objekt der aktuellen Scope haben. Über die Checkbox auf der linken Seite können die benötigten Scopes aktiviert werden.

Der Name der Scope in der Spalte mit der Überschrift 'Name‘ definiert den Namen der Scope, der von dem Objektnamen abweichen kann (mehr dazu, warum dies in manchen Fällen sinnvoll ist wird bei der Beschreibung des erweiterten Modus erklärt). Hier wird standardmäßig das Label des Objekts angezeigt.

In der vierten Spalte mit der Überschrift 'Section Name‘ wird der Name der Section definiert. Dieser wird bei der Erstellung des Dokuments benötigt um zu definieren, wann Mergefelder aus dieser Scope angezeigt werden sollen: Im Dokument wird definiert, wann eine Section startet und wann sie wieder endet. zwischen Start und Ende können dann Mergefelder aus der Scope mit dem Section-Namen abgefragt und angezeigt werden. mehr hierzu im Abschnitt 'Mergefelder‘.

Über die Checkbox 'Get Attachments‘ kann ausgewählt werden, ob Dateien, die in Dateien die über die Scope gefunden werden an das zu erstellende Dokument angehängt werden sollen.

6.2. Erstellung von Scopes (Erweiterter Modus)

Zum Erstellen einer Scope klickst du in einem Template auf den Button 'Neu'. Hier wählst du nun den Scope-Typ aus, den du erstellen willst:

Field Ein Field Scope referenziert maximal einen Datensatz. Die Primary Scope muss eine Field Scope sein. (Beispiel: Ein Account)
Free Eine Free Scope kann mehrere Datensätze enthalten. Diese Datensätze müssen in keiner Verbindung zu einem der Field oder List Scopes stehen. (Beispiel: Alle Produkte in Salesforce)
List Eine List Scope kann mehrere Datensätze enthalten. Sie ist abhängig von einer anderen Scope. (Alle Kontakte unterhalb des im Field Scope definierten Accounts)

6.2.1. Field Scopes

Ein Template muss mindestens eine Field Scope beinhalten. Über diesen Field Scope wird der Datensatz definiert, der als Ausgangspunkt für die Dokumenterstellung dient. Dies ist die sogenannte Primary Scope.

Bitte beachten:

Die Primary Scopes unterscheiden sich von untergeordneten Field Scopes dahingehend, als dass in der Parent Scope das Feld 'Parent Field Name' nicht den Namen des Nachschlagbeziehungs*-Feldes aus dem Objekt in der Parent Scope enthält, da es hier keine Parent Scope gibt. Stattdessen enthält es immer einen Feldnamen aus dem aktuellen Objekt (das im Feld 'Object Name‘ hinterlegt ist). Dies ist in den allermeisten Feldern das Feld 'Id‘.

Folgende Felder sind in einer Field Scope vorhanden:

Feldname Beschreibung
Name Pflichtfeld. Der Name der Scope sollte das jeweilige Objekt auf den ersten Blick identifizieren. Er wird auch im Dokument für die Mergefelder benötigt. Er darf keine Leerzeichen enthalten.
Dadurch, dass der Scope Name nicht dem Objekt-Namen entsprechen muss, ist es möglich, in dem gleichen Template mehrere Scopes zu haben, die auf das gleiche Objekt verweisen. Z. B. einen Account, der Kundendaten enthält und einen Account der Lieferantendaten enthält.
Parent Scope Die dieser Scope übergeordnete Scope. Ist keine Scope übergeordnet ist die aktuelle Scope eine Parent Scope.
Object Name Pflichtfeld. Der Api-Name des Objekts auf das sich diese Scope bezieht. Beispiel: Contact für das Kontakt-Object.
Template Der Template-Datensatz auf das sich dieser Scope bezieht (Nachschlagebeziehung).
Parent Field Name Der Name des Feldes aus dem Objekt der Parent Scope, auf das sich diese Scope bezieht. Ist die aktuelle Scope eine Parent Scope (hat also keine Parent Scope), dann bezieht sich dieses Feld auf den Datensatz aus dem das Template aufgerufen wird.
Get Attachments Ist die Checkbox aktiv, dann werden aus den über die Scope gefundenen Datensatz auch die damit verknüpften Dateien aus Salesforce abgerufen. Diese werden dann bei der manuellen Erstellung des Dokuments in einer Maske zur Auswahl angezeigt und an das zu erstellende Dokument angehängt (Nur relevant für Pdf-Dokumente)
Attachment Preselect Count Ist hier eine Zahl eingetragen, wird diese Anzahl an Dateien für den Anhang aktiviert. Bei der manuellen Erstellung kann diese Auswahl in der Erstellungsmaske wieder pro Datei aufgehoben werden. bei automatischer Erstellung werden diese Dateien angehängt (falls möglich).
Attachment Filters Hier kann (über SOQL) gefiltert werden, welche Bedingungen eine Datei erfüllen muss um angezeigt zu werden. Zum Beispiel kann geprüft werden, ob die Datei einen bestimmten Dateinamen hat.
Bitte beachten: Die Dateien werden anhand des Salesforce Objekts 'ContentDocumentLink' gesucht. Soll also nach dem Dateinamen gefiltert werden, so lautet der Inhalt des Feldes beispielsweise: ContentDocument.Title LIKE '%DATEINAME%
Attachment Order Die Reihenfolge der Dateien kann über dieses Feld gesteuert werden. Gibt man Beispielsweise ein Datumsfeld aus dem jeweiligen Objekt an, wird anhand dieses Datums sortiert. Die Befehle 'DESC' (absteigend) und 'ASC' (aufsteigend) entscheiden dann über die Reihenfolge.
Bitte beachten: Die Dateien werden anhand des Salesforce Objekts 'ContentDocumentLink' gesucht. Soll also nach dem Erstelldatum der Datei sortiert werden, so lautet der Inhalt des Feldes beispielsweise: ContentDocument.CreatedDate DESC
Attachment Limit Bestimmt, wie viele Dateien überhaupt angezeigt werden. Wird zum Beispiel eine 1 angegeben, wird nur die erste gefundene Datei angezeigt und kann auch nur als Anhang hinzugefügt werden.

Beispiel für einen Use Case:

Für deine Auflistung der Mitarbeiter, Sachbearbeiter und Produkte musst du zunächst eine Primary Scope erstellen.

Da du das Dokument über einen Button im Account erstellen willst, ist dieses Objekt dein Ausgangspunkt:

Bitte beachte, dass der Name der Scope nicht mit dem Namen des Objekts übereinstimmen muss.


6.2.2. Free Scope

Eine Free Scope kann Datensätze enthalten, die weder mit dem Datensatz einer Field Scope noch mit den Datensätzen einer List Scope über Nachschlagbeziehungen verknüpft sind.

Die Free Scope beinhaltet folgende Felder:

Feldname Beschreibung
Name Pflichtfeld. Der Name der Scope sollte das jeweilige Objekt auf den ersten Blick identifizieren. Er wird auch im Dokument für die Mergefelder benötigt. Er darf keine Leerzeichen enthalten.
Dadurch, dass der Scope Name nicht dem Objekt-Namen entsprechen muss, ist es möglich, in dem gleichen Template mehrere Scopes zu haben, die auf das gleiche Objekt verweisen. Z. B. eine Scope aller aktiven Produkte und eine weitere Scope aller inaktiven Produkte.
Parent Scope Dies dieser Scope übergeordnete Scope
Object Name Pflichtfeld. Der Api-Name des Objekts auf das sich diese Scope bezieht. Beispiel: Contact für das Kontakt-Object.
Template Der Template-Datensatz auf das sich dieser Scope bezieht (Nachschlagebeziehung).
Section Name Da diese Scope mehr als einen Datensatz enthalten kann, muss ein Section Name definiert werden. Im Dokument wird dieser Section Name dann genutzt um zu kennzeichnen, dass nun Daten aus dieser Scope ausgegeben werden sollen.
Query Filters Zum Filtern der Ergebnisse. Es werden nur die Datensätze in die Scope aufgenommen, die dem hier eingetragenen Filter entsprechen. So kann z. B. nach einem Status gefiltert werden. Die Filter können außerdem Mergefelder beinhalten die andere Scopes referenzieren.
Hierbei können alle Scopes aus dem jeweiligen Template genutzt werden, außer die Scope ist eine der aktuellen Scope untergeordnete Scope.
Query Order Gibt die Reihenfolge vor, nach der die Datensätze in der Scope vorkommen. So kann z. B. nach Erstellungsdatum sortiert werden.
Query Limit Ganze Zahl. Hier kann angegeben werden, wie viele Datensätze in der Scope verwendet werden sollen. In Verknüpfung mit dem Feld 'Query Order' kann somit beispielsweise nur der jeweils neueste Kontakt-Datensatz in einem Dokument aufgelistet werden. Egal, wie viele Kontakt-Datensätze tatsächlich im System sind.
Get Attachments Ist die Checkbox aktiv, dann werden aus allen über die Scope gefundenen Datensätzen auch die damit verknüpften Dateien aus Salesforce abgerufen. Diese werden dann bei der manuellen Erstellung des Dokuments in einer Maske zur Auswahl angezeigt und an das zu erstellende Dokument angehängt (Nur relevant für Pdf-Dokumente)
Attachment Preselect Count Ist hier eine Zahl eingetragen, wird diese Anzahl an Dateien für den Anhang aktiviert. Bei der manuellen Erstellung kann diese Auswahl in der Erstellungsmaske wieder pro Datei aufgehoben werden. bei automatischer Erstellung werden diese Dateien angehängt (falls möglich).
Attachment Filters Hier kann (über SOQL) gefiltert werden, welche Bedingungen eine Datei erfüllen muss um angezeigt zu werden. Zum Beispiel kann geprüft werden, ob die Datei einen bestimmten Dateinamen hat.
Bitte beachten: Die Dateien werden anhand des Salesforce Objekts 'ContentDocumentLink' gesucht. Soll also nach dem Dateinamen gefiltert werden, so lautet der Inhalt des Feldes beispielsweise: ContentDocument.Title LIKE '%DATEINAME%
Attachment Order Die Reihenfolge der Dateien kann über dieses Feld gesteuert werden. Gibt man Beispielsweise ein Datumsfeld aus dem jeweiligen Objekt an, wird anhand dieses Datums sortiert. Die Befehle 'DESC' (absteigend) und 'ASC' (aufsteigend) entscheiden dann über die Reihenfolge.
Bitte beachten: Die Dateien werden anhand des Salesforce Objekts 'ContentDocumentLink' gesucht. Soll also nach dem Erstelldatum der Datei sortiert werden, so lautet der Inhalt des Feldes beispielsweise: ContentDocument.CreatedDate DESC
Attachment Limit Bestimmt, wie viele Dateien überhaupt angezeigt werden. Wird zum Beispiel eine 1 angegeben, wird nur die erste gefundene Datei angezeigt und kann auch nur als Anhang hinzugefügt werden.

Beispiel für einen Use Case:

In deinem Dokument sollen alle Produkte aufgelistet werden, die in Salesforce vorhanden sind. Da diese Produkte keine Verknüpfung zu deinem Account oder den Contacts unter diesem Account haben, benötigst du eine Free Scope.

Dein Unternehmen bietet vier unterschiedliche Produkte an. Eines davon (Produkt 3) wird allerdings nicht mehr produziert und ist deshalb inaktiv. Dieses Produkt willst du nicht auflisten.

Außerdem willst du alle Produkte alphabetisch absteigend nach der Produktfamilie auflisten.

Du erstellst eine Free Scope mit folgenden Werten:

Für eine absteigende Reihenfolge müsste bei Query Filter „Family DESC“ stehen. Das Query Limit muss frei gelassen werden, da du alle aktiven Produkte anzeigen lassen willst.


6.2.3. List Scope

Eine List Scope enthält Datensätze, die mit einem Datensatz aus der Parent Scope verknüpft sind.

Die List Scope beinhaltet folgende Felder:

Feldname Beschreibung
Name Pflichtfeld. Der Name der Scope sollte das jeweilige Objekt auf den ersten Blick identifizieren. Er wird auch im Dokument für die Mergefelder benötigt. Er darf keine Leerzeichen enthalten.
Dadurch, dass der Scope Name nicht dem Objekt-Namen entsprechen muss, ist es möglich, in dem gleichen Template mehrere Scopes zu haben, die auf das gleiche Objekt verweisen. Z. B. eine Scope aller aktiven Produkte und eine weitere Scope aller inaktiven Produkte.
Parent Scope Dies dieser Scope übergeordnete Scope
Object Name Pflichtfeld. Pflichtfeld. Der Api-Name des Objekts auf das sich diese Scope bezieht. Beispiel: Contact für das Kontakt-Object.
Template Der Template-Datensatz auf das sich dieser Scope bezieht (Nachschlagebeziehung).
Related List Name Dies ist der Tehmenlisten-Name* der Nachschlage-Verknüpfung. Bei Custom Objekten wird dieser immer mit ‚__r‘ beendet. Der Related List Name kann über den Objekt Manager über die jeweilige Nachschlageverknüpfung eingesehen werden.
Section Name Da diese Scope mehr als einen Datensatz enthalten kann, muss ein Section Name definiert werden. Im Dokument wird dieser Section Name dann genutzt um zu kennzeichnen, dass nun Daten aus dieser Scope ausgegeben werden sollen.
Query Filters Zum Filtern der Ergebnisse. Es werden nur die Datensätze in die Scope aufgenommen, die dem hier eingetragenen Filter entsprechen. So kann z. B. nach einem Status gefiltert werden. Die Filter können außerdem Mergefelder beinhalten die andere Scopes referenzieren.
Hierbei können alle Scopes aus dem jeweiligen Template genutzt werden, außer die Scope ist eine der aktuellen Scope untergeordnete Scope.
Query Order Gibt die Reihenfolge vor, nach der die Datensätze in der Scope vorkommen. So kann z. B. nach Erstellungsdatum sortiert werden.
Query Limit Ganze Zahl. Hier kann angegeben werden, wie viele Datensätze in der Scope verwendet werden sollen. In Verknüpfung mit dem Feld 'Query Order' kann somit beispielsweise nur der jeweils neueste Kontakt-Datensatz in einem Dokument aufgelistet werden. Egal, wie viele Kontakt-Datensätze tatsächlich im System sind.
Get Attachments Ist die Checkbox aktiv, dann werden aus allen über die Scope gefundenen Datensätzen auch die damit verknüpften Dateien aus Salesforce abgerufen. Diese werden dann bei der manuellen Erstellung des Dokuments in einer Maske zur Auswahl angezeigt und an das zu erstellende Dokument angehängt (Nur relevant für Pdf-Dokumente)
Attachment Preselect Count Ist hier eine Zahl eingetragen, wird diese Anzahl an Dateien für den Anhang aktiviert. Bei der manuellen Erstellung kann diese Auswahl in der Erstellungsmaske wieder pro Datei aufgehoben werden. bei automatischer Erstellung werden diese Dateien angehängt (falls möglich).
Attachment Filters Hier kann (über SOQL) gefiltert werden, welche Bedingungen eine Datei erfüllen muss um angezeigt zu werden. Zum Beispiel kann geprüft werden, ob die Datei einen bestimmten Dateinamen hat.
Bitte beachten: Die Dateien werden anhand des Salesforce Objekts 'ContentDocumentLink' gesucht. Soll also nach dem Dateinamen gefiltert werden, so lautet der Inhalt des Feldes beispielsweise: ContentDocument.Title LIKE '%DATEINAME%
Attachment Order Die Reihenfolge der Dateien kann über dieses Feld gesteuert werden. Gibt man Beispielsweise ein Datumsfeld aus dem jeweiligen Objekt an, wird anhand dieses Datums sortiert. Die Befehle 'DESC' (absteigend) und 'ASC' (aufsteigend) entscheiden dann über die Reihenfolge.
Bitte beachten: Die Dateien werden anhand des Salesforce Objekts 'ContentDocumentLink' gesucht. Soll also nach dem Erstelldatum der Datei sortiert werden, so lautet der Inhalt des Feldes beispielsweise: ContentDocument.CreatedDate DESC
Attachment Limit Bestimmt, wie viele Dateien überhaupt angezeigt werden. Wird zum Beispiel eine 1 angegeben, wird nur die erste gefundene Datei angezeigt und kann auch nur als Anhang hinzugefügt werden.

Beispiel für einen Use Case:

In deinem Dokument sollen alle Kontakte des Accounts aufgelistet werden. Da diese Kontakte mit dem Account über ein Lookup verknüpft sind, kannst du eine List Scope hierfür nutzen.

Du erstellt also eine List Scope mit folgenden Werten:

Es werden keine Query Filter benötigt, da wir alle Kontakte auflisten wollen.


7. Field Automations

Über eine Field Automation kann nach oder vor Erstellung eines Dokuments ein Feld aktualisiert werden. Ob eine Aktualisierung stattfindet kann über eine Bedingung in der Field Automation gesteuert werden.

In welchem Datensatz bzw. welchen Datensätzen sich dieses zu aktualisierende Feld befindet wird über eine Scope definiert.

Folgende Einstellungen können in der Field Automation vorgenommen werden:

Feldname Beschreibung
Template Pflichtfeld. Referenz auf das Template in dem sich diese Field Automation befindet
Name Pflichtfeld. Name der Field Automation. Dieser dient nur für dich zur Unterscheidung verschiedener Field Automations
Scope Pflichtfeld. Die Scope auf die sich diese Field Automation bezieht. Aktualisierungen beschränken sich auf Datensätze, die sich in dieser Scope befinden.
Update Before Document Creation Soll ein Feld vor Erstellung des Dokuments aktualisiert werden, dann muss diese Checkbox aktiv gesetzt werden. Das ist z. B. nützlich, wenn man den aktualisierten Wert dieses Feldes im Dokument anzeigen will.
Ist dieses Feld in mindestens einer der Field Automations eines Templates aktiviert, wird das Dokument immer asynchron erstellt. Das heißt, dass das Dokument nicht sofort zur Verfügung steht, wenn sich das Erstellungsfenster schließt.
Field Name Pflichtfeld. Der Api-Name des Feldes das aktualisiert werden soll.
Operator Soll vor Aktualisierung abgeprüft werden, ob die Bedingung für die Aktualisierung erfüllt ist, muss ein Operator gesetzt werden.
Condition Value Der Wert auf den abgeprüft wird. Es wird immer auf das Feld geprüft das in Field Name referenziert ist. Über die Salesforce Mergefeld-Logik kann hier, anstatt eines festen Wertes, auch ein anderes Feld referenziert werden. Dieses muss sich allerdings in der gleichen Scope wie die Field Automation befinden.
New Value Pflichtfeld. Der neue Wert des Feldes. Über die Salesforce Mergefeld-Logik kann hier, anstatt eines festen Wertes, auch ein anderes Feld referenziert werden. Dieses muss sich allerdings in der gleichen Scope wie die Field Automation befinden.

Beispiel für einen Use Case:

Für dein Dokument mit den Kundeninformation möchtest du zwei Felder aktualisieren:

In das Custom Feld 'Kundeninformation Erstelldatum‘ (Api-Name: Customer_Information_Created_Date__c) im Account willst du das aktuelle Datum eintragen. Dieses soll auch im Dokument angezeigt werden.

In dem Custom-Checkbox-Feld 'In Kundeninformation aufgelistet‘ (Api-Name: Listed_In_Customer_Information__c) im Kontakt willst du die Kontakte abhaken, die du in dem Dokument auflistest.

 

Du benötigst also zwei Field Automations:

Erste Field Automation:

'Update Before Document Creation' muss aktiv sein, weil wir das Datum auch im Dokument anzeigen lassen wollen.

'Condition Value' ist leer, weil wir das aktuelle Datum immer in das Feld eintragen wollen, wenn wir ein Dokument erstellen.

Im 'New Value'-Feld steht 'System.today()'. Dadurch wird das aktuelle Datum eingetragen.

Zweite Field Automation


8. Calculation Results

Calculation Results können nur genutzt werden, wenn das Zielformat eine Excel-Tabelle ist.

Daten aus dieser Tabelle können ausgelesen werden und in Salesforce gespeichert werden.

Wird also zum Beispiel eine Berechnung über eine Formel in einer Excel-Tabelle vorgenommen, wird das Ergebnis dieser Berechnung nach Erstellung des Dokuments in Salesforce gespeichert und ist somit sowohl in der Datei vorhanden, als auch als Wert in einem Salesforce Feld.

Folgende Felder können und müssen in dem Calculation Request ausgefüllt werden:

Feldname Beschreibung
Name Der Name des Calculation Request Datensatzes. Dieser wird nur zur internen Unterscheidung der verschiedenen Calculation Requests benötigt.
Template Hier ist der Template-Datensatz hinterlegt, für den der Calculation Request gilt.
Address Hier wird die Addresse der Zelle hinterlegt, in der der auszulesende Wert gespeichert wird.
Field Name Name des Feldes in Salesforce, in dem der Wert aus der Excel-Tabelle gespeichert werden soll. Das Feld muss ein existierendes Feld in dem Objekt sein, das in der Scope (siehe nächste Zeile) referenziert ist.
Scope Die Scope die das Objekt enthält, in dem das Feld aus dem Feld 'Field Name' existiert.

9. Mergefelder

In cloudworx.compose muss zwischen Mergefeldern unterschieden werden, die im Dokument selbst benutzt werden und solchen, die in Scopes und Field Automations genutzt werden können.

9.1. Mergefelder im Dokument

Im eigentlichen Dokument werden Mergefelder genutzt um Werte aus Feldern in Salesforce im Dokument abzubilden. Hierbei gibt es unterschiedliche Regeln, wie Mergefelder eingefügt werden müssen.

9.1.1. Mergefelder in Microsoft Word

Die Syntax der Mergefelder orientiert sich hier an den Mergefeld-Logik von Microsoft Word (genutzt zum Beispiel bei der Erstellung von Serienbriefen).

 

Ein Mergefeld ist folgendermaßen aufgebaut:

{ MERGEFIELD ScopeName.Feldname \* MERGEFORMAT }

 MERGEFIELD: Definiert, dass die Daten aus einer externen Quelle (hier: Salesforce) kommen

ScopeName: Der Name der jeweiligen Scope (Z. B. „Customer_Account“)

Feldname: Der Api-Name des in der Scope referenzierten Objekts ( Z. B. Name)

\*: Dies ist ein sogenannter Feldschalter. Er legt fest, welches Format der ausgegebene Wert in Word haben soll.

Weitere Informationen zu Mergefeldern: https://docs.aspose.com/words/net/fields-overview/

 

Bitte beachten:

In Word wird nach Punkten oft automatisch ein Leerzeichen eingefügt. Passiert dies bei der Eingabe von Mergefeldern, wird also ein Punkt zwischen dem ScopeName und dem Feldnamen eingefügt, kann das Mergefeld nicht ausgelesen werden. Das Feld kann dann nicht gefunden werden und das Mergefeld wird bei Dokumenterstellung nicht ausgefüllt.

Beispiel für einen Use Case:

Die Parent Scope referenziert einen Account. Der Name dieser Parent Scope ist 'ParentAccount'.

 

Eine neue Free Scope soll nun alle Contacts dieses Accounts beinhalten. Im Feld 'Query Filters‘ muss nun eingeschränkt werden, dass nur die Contacts die dem Account zugewiesen sind in der Scope enthalten sein sollen. Hierzu nutzt man die Account-Id die man folgendermaßen über das Mergefeld erhält:

AccountId = '{!ParentAccount.Id}'

Bei der Suche nach den passenden Datensätzen wird das Mergefeld durch die Id des Accounts ersetzt.

Bitte beachten:

Der Name des Datensatzes ist nicht Account, sondern der Name der Scope (ParentAccount). Somit können auch mehrere unterschiedliche Accounts in einem Template referenziert werden.
Das Mergefeld muss zwischen einfachen Apostrophen stehen, sonst wird eine Fehlermeldung ausgegeben.
9.1.1.1. Hinzufügen eines Mergefeldes

Ein Mergefeld kann eingefügt werden, indem man ein bestehendes Mergefeld kopiert und an der gewünschten Stelle einfügt.

Alternativ kann über das Tastaturkürzel 'STRG + F9' ein neues Mergefeld eingefügt werden.

Bitte beachten:

In Word werden Mergefelder oft standardmäßig nicht in der Ansicht angezeigt die bearbeitet werden kann, sondern es wird nur das Label angezeigt, das man zwar auch verändern kann, das aber nur eine Beschreibung des Mergefeldes ist und keinen Einfluss darauf hat, was das Mergefeld tatsächlich enthält. Das Label hat anstatt der geschweiften Klammern ( { MERGEFIELD … } ) spitze Klammern ( << … >> ).
Zwischen Label und dem eigentlichen Mergefeld-Inhalt kann umgeschaltet werden, indem man es per Rechtsklick auswählt und den Punkt 'Feldfunktion ein/aus' klickt:
Das Label sieht so aus…
Das Label sieht so aus…
Wir empfehlen, bei jeder Bearbeitung eines Dokuments alle Mergefelder immer so anzuzeigen, dass der Inhalt der Feldfunktion und nicht das Label angezeigt wird.
Standardmäßig kann das ständige Umschalten zwischen Label zu Feldfunktion folgendermaßen eingestellt werden (Angaben beziehen sich auf Office 365, Version 2101).
Folgender Menüpunkt muss aktiviert werden:
Datei → Optionen → Erweitert → (Dokumentinhalte anzeigen) Feldfunktionen anstelle von Werten anzeigen
9.1.1.2. Einfügen von Listen

Über List Scopes und Free Scopes werden Listen von Scopes aus Salesforce übergeben. Um die Datensätze aus diesen Scopes über Mergefelder auslesen zu können, muss in Word gekennzeichnet werden, wenn Daten aus solch einer List Scope oder Free Scope angezeigt werden sollen.

Sowohl in List Scopes als auch Free Scopes gibt es das Feld 'Section Name'. Über dieses Feld wird die Liste definiert.

In Word kann die Liste dann über folgende Syntax aufgerufen werden. 'SectionName' wird durch den Namen im Feld 'Section Name: in der jeweiligen List oder Free Scope ersetzt:

{MERGEFIELD TableStart:SectionName}

Die Liste muss anschließend wieder geschlossen werden:

{MERGEFIELD TableEnd:SectionName}

Bitte beachten:

Zwischen TableStart/TableEnd und dem Scope Name darf kein Leerzeichen sein.

 

Zwischen den beiden Tags (TableStart/TableEnd) können dann die eigentlichen Scopes aufgerufen werden. Dies geschieht genau so wie bei den Field Scopes. Es werden alle Scopes, die sich in der List oder Free Scope befinden nacheinander eingefügt.


Beispiel:

Alle Kontakte eines Accounts sollen im Dokument aufgelistet werden.

Die Word-Vorlage sieht in diesem Fall folgendermaßen aus:


9.1.1.3. IF-Bedingung einfügen

Um in einem Dokument verschiedene Werte anhand von Bedingungen anzeigen zu lassen, kann mit IF-Bedingungen gearbeitet werden.

Hier wird ein bestimmter Wert (z. B. aus einem Mergefeld) geprüft und ein Ergebnis angezeigt, wenn der Wert eine Bedingung erfüllt. Wird die Bedingung nicht erfüllt kann ein anderer Wert angezeigt werden.

Somit können anhand von Daten aus Salesforce sowohl einzelne Wörter, Sätze oder Paragraphen angezeigt werden, es können aber auch die Anzeige von Bilder, anderen Mergefeldern, ganze Tabellen oder Seitenumbrüche an Bedingungen geknüpft werden.

Die Syntax für IF-Bedingungen lautet:

{ IF Wert1 = "Wert2" "WertWennBedingungZutrifft" "WertWennBedingungNICHTZutrifft" }

Beispiel mit eingefügtem Mergefeld:

{ IF { MERGEFLIED Account.Status__c \* } = "Active" "Dieser Kunde ist ein aktiver Kunde" "Dies ist kein aktiver Kunde" } 

Es können IF-Bedingungen auch ineinander verschachtelt (genested) werden, um bestimmte Inhalte an Bedingungen zu knüpfen:

{ IF Wert1 = "Wert2" "WertWennBedingungZutrifft" "{ IF Wert1 = "Wert3" "WertWennBedingungZutrifft" "WertWennBedingungNICHTZutrifft" }" }

9.1.2. Mergefelder in Microsoft Excel

Einzelne Mergefelder werden in Excel folgendermaßen erstellt:

&=ScopeName.FeldName

Für Scopes die mehrere Datensätze enthalten die über einen Section Name aufgerufen werden, muss folgende Syntax verwendet werden (man beachte die drei Unterstriche):

&=templateSection.ScopeName___FeldName

Hier sind die folgenden Parameter, durch Kommas getrennt, möglich:

Parameter Beschreibung
noadd Keine zusätzlichen Reihen einfügen um Daten auszugleichen
skip:n Bestimmte Anzahl (n) an Zeilen für jede Zeile an Daten überspringen
ascending:n oder descending:n Dateien in Mergefeldern aufsteigend oder absteigend sortieren. Die Daten werden sortiert, nachdem die Datenquelle verarbeitet wurde.
horizontal Schreibt die Daten von links nach rechts anstatt von oben nach unten
shift Nach unten oder rechts springen um extra Reihen/Spalten zu erstellen. Der Shift-Parameter funktioniert genauso wie in Microsoft Excel.
copystyle Kopiert das Format der Ausgangszelle in alle Zellen in dieser Spalte

Die Parameter 'noadd' und 'skip' können kombiniert werden um Daten in sich abwechselnden Reihen einzufügen. Weil die Vorlage von unten nach oben verarbeitet wird, sollte in diesem Fall 'noadd' in der erstem Zeile hinzugefügt werden um das Hinzufügen von zusätzlichen Zeilen vor der alternierenden Zeile zu verhindern.


Beispiel:

&amp;=ScopeName.FeldName(skip:1,noadd)

Bitte beachten:

Pro Zelle in Excel kann nur ein Mergefeld eingefügt werden. Es können also nicht mehrere Mergefelder hintereinander eingefügt werden (z. B. um Vorname und Nachname hintereinander auszugeben. Dazu müssen entweder zwei unterschiedliche Zellen nebeneinander befüllt werden, oder die Zellen mit den Mergefeldern werden versteckt und mithilfe einer Formel in einer Zelle ausgegeben.

9.2. Mergefelder in Field Automations

In Field Automations können Mergefelder sowohl im Feld 'Condition Value' als auch im Feld 'New Value‘ referenziert werden.

Somit kann sowohl die Bedingung als auch der neue Wert des Feldes dynamisch bestimmt werden.

Die Syntax ist hier etwas anders als bei den Scopes: Da bei den Field Automations nur Mergefelder aus der in der Field Automation angegebenen Scope genutzt werden können, wird hier nur der Feldname benötigt:

{!Feldname}

Beispiel für einen Use Case:

Nach Erstellung des Dokuments wollen wir im Account (Scopename: ParentAccount) das Close Date zwei Wochen in die Zukunft setzen, falls es nicht bereits eine Woche in der Zukunft liegt.

Hierzu haben wir zwei Formelfelder erstellt:

CloseDatePlusOneWeek (Datumsfeld, dass auf das CloseDate 1 Woche aufschlägt)

CloseDatePlusTwoWeeks (Datumsfeld, dass auf das CloseDate 2 Wochen aufschlägt)

 

Die Felder in der Field Automation sehen wie folgt aus:


10. Dokumente erstellen

10.1. Dokumente über Schaltfläche erstellen

Über eine Schaltfläche (Englisch: Button) in einem Datensatz kann ein Dokument erstellt werden, dass anschließend in diesem Datensatz gespeichert wird.

Zum Erstellen einer Schaltfläche werden Administratorrechte benötigt.

 

Im Setup gelangt man über den Objekt-Manager auf das gewünschte Objekt und dort über den Menüpunkt 'Schaltflächen, Links und Aktionen' und der Schaltfläche 'Neue Schaltfläche/neuer Link' auf die Seite zur Erstellung einer Schaltfläche:

Neben der Bezeichnung und dem Namen der Schaltfläche muss auch der Anzeigetyp ausgewählt werden. Hier wird 'Schaltfläche für Detailseite' ausgewählt. Ein Erstellen des Dokuments über einen Link wäre auch möglich.

Als Inhaltsquelle wird eine URL eingetragen. Die URL hat folgendes Format:

/apex/cwcp__ccCreateDocument?id=<strong>{!Account__c.Id}</strong>&amp;outputs=<strong>pdf</strong>&amp;template=<strong>cct0001</strong>

 

Es werden drei Parameter benötigt:

| Parameter | Beschreibung |

|-|-|

| id | Die Salesforce Id des Datensatzes der als Ausgangspunkt (also für die Primary Scope) genutzt werden soll. In diesem Beispiel wird ein Button auf dem Account erstellt und somit ein Mergefeld für die Account-Id verwendet. |

| outputs | Der Name des Zielformats. Ist das Zielformat das gleiche wie das Ausgangsformat wird hier „sameAsInput“ eingetragen. |

| template | Die cloudworx Id des Templates. Sie wird automatisch bei Erstellung eines Template-Datensatzes erstellt. |


Bitte beachten:

Die Schaltfläche muss nach Erstellung noch in das Seitenlayout des Objekts eingefügt werden.


10.2. Dokumente über Prozessgenerator erstellen

Über cloudworx.compose können Dokumente auch automatisiert erstellt werden. Über den Prozessgenerator* lässt sich dies einfach abbilden.

Aufgrund von Beschränkungen auf Seiten von Salesforce können Dokumente hier nur asynchron erstellt werden.

In unserem Beispiel wird ein Dokument erstellt, wenn im Account der Typ von 'Potenzieller Kunde' auf 'Kunde' geändert wird.

Nach Erstellung des Prozesses und Auswählen des Objekts, wird zuerst die Bedingung erstellt. Anschließend kann cloudworx.compose über 'Aktion ausführen' definiert werden:

Folgende Parameter können hier angegeben werden:

| Parameter | Beschreibung |

|-|-|

| cloudworxTemplateId | *Pflichtfeld*. Die cloudworx Id des Templates aus dem Template-Datensatz |

| parentId | *Pflichtfeld*. Die Salesforce Id des Datensatzes der als Ausgangspunkt (also für die Primary Scope) genutzt werden soll. |

| attachments | Hier können weitere Anhänge anhand der Salesforce Id (Attachment Id oder ContentDocumentId) and das Dokument angefügt werden. |

| preserveMergeFields | Wird dieser Parameter auf 'WAHR' gesetzt, werden die Mergefelder die nicht ausgefüllt werden können auch in der Zeildatei angezeigt. |

| fileName | Hier kann ein Name angegeben werden, der von dem im Template angegebenen Namen abweicht. |

| outputs | *Pflichtfeld*. Hier wird das Zielformat eingegeben (Z. B. 'pdf'). Ist das Zielformat das gleiche wie das Ausgangsformat wird 'sameAsInput' eingegeben. |

| uploadId | Hier kann eine vom Ausgangsdatensatz abweichende Salesforce ID (entweder als fester Wert oder über einen Feldverweis) hinterlegt werden. In dem der ID zugehörigen Datensatz wird die Zieldatei gespeichert. |

11. Glossar

Berechtigungssatz (Permission Set) Eine Sammlung von Extra-Berechtigungen, um die Sicherheitseinstellungen eines Users auf seinem Profil zu erweitern.
Configuration Sie enthält die wichtigsten Parameter, die die Kerneinstellungen bestimmen, wie die Authentifizierung. Sie zeigt auch allgemeine Informationen und die Konfigurationshistorie an.
Custom Objekt Objekt das nachträglich in Salesforce erstellt werden kann. Custom Objekte kann man daran erkennen, dass nach dem Api-Namen (dem Namen der vom System genutzt wird) folgendes Kürzel steht: '--c'
Datensatz (Record) In einem Objekt gespeicherte Daten.
Mergefelder Ein Mergefeld ist ein Platzhalter, der mit dem Wert eines Feldes befüllt wird, wenn das Dokument erzeugt wird.
Nachschlagbeziehung (Lookup) Eine Nachschlagbeziehung ist ein Feldtyp in Salesforce. Er stellt eine Beziehung zwischen zwei Salesforce-Objekten her. Im Kontakt gibt es z. B. eine Nachschlagbeziehung zum Account.
Objekt Ein Objekt entspricht einer Kategorie, ähnlich den Tabellen und Spalten in Excel. Beispiele von Objekten, die in Salesforce bereits angelegt sind, sind Accounts, Kontakte und Opportunities.
Standardobjekt Objekt das bereits im Lieferumfang von Salesforce mitgeliefert wird
Template Vordefinierte Einstellungen für die schnelle Erstellung von Dokumenten.
Themenliste (Related List) Liste von untergeordneten Datensätzen zu einem übergeordneten Datensatz (z.B. alle Kontakte, Kundenvorgänge oder Opportunities zu einem Account).
User Ein Benutzer ist jemand, der Salesforce verwendet. Mit einem Benutzernamen und einem Kennwort kannst du dich in Salesforce anmelden. Die Berechtigung zum Anzeigen, Erstellen, Bearbeiten oder Löschen von Informationen kann einzelnen Benutzern oder einer Gruppe von Benutzern erteilt werden.


Impressum | Datenschutz