...
“Normale” Elemente können über
<Value Key="ElementId">Wert</Value>
befüllt werden.Objekte (
Object
), wie z.B. Personenangaben über das Elternelement<Object Key="ElementId" />
samt<Value Key="ElementId">Wert</Value>
für die Kindelemente.Objektlisten (
ObjectCollection
) für Auflistungen von Daten, wobei jeder Datensatz in einemItem
-Element ist.
...
Data
Im Zusammenspiel mit der Dokumentfunktion Data kann über Data
Daten über Connect übergeben werden, welche nicht im Forms-Eigenschaften Dialog vorher angezeigt oder abgefragt werden sollen.
Code Block |
---|
<primedocsConnect>
<Data>
<!-- "Simple" mappings to Text -->
<Value Key="InternalId">123456789</Value>
<!-- Target is an Object -->
<Object Key="Invoice">
<Value Key="Name">John Doe</Value>
<Value Key="Number">123</Value>
</Object>
<!-- Target is an ObjectCollection -->
<ObjectCollection Key="Items">
<Item>
<Value Key="Name">Sample 1</Value>
</Item>
<Item>
<Value Key="Name">Sample 2</Value>
</Item>
</ObjectCollection>
</Data>
...
</primedocsConnect> |
Die Logik ist hier identisch wie bei der Übergabe zu Forms
, d.h. es gibt:
<Value Key="...">...</Value>
<Object Key="...">...</Object>
<ObjectCollection Key="...">...</ObjectCollection>
...
Commands
Nach der eigentlichen Dokumenterstellung können Commands
angewendet werden (z. B. die Umwandlung in ein PDF-Dokument). Gleichzeitig werden zu diesem Zeitpunkt die Fehler- und Abbruch-Commands auf Dokumentebene ausgewertet.
Commands
können nach den folgenden Ereignissen gestartet werden:
OnSuccess
: Bei einer erfolgreichen Dokumentgenerierung.OnError
: Falls während der Dokumentgenerierung ein Fehler auftritt, z.B. eine fehlerhafte Template-Id angegeben wird.OnCancel
: Wenn der Benutzer die Dokumentgenerierung z.B. über den Forms-Dialog abbricht.OnExit
: Nach Beendigung der Dokumentgenerierung, hierbei ist es egal, ob alles erfolgreich durchlief oder nicht.
Beispiel:
Code Block |
---|
<primedocsConnect>
<Template Id="30b55516-80b5-41d7-801b-b31d6da376ac" />
<Forms>
<Value Key="Subject">Hello Connect</Value>
</Forms>
<Commands>
<OnSuccess>
<SaveAs Filename="\\MyServer\share\organization\...\documentxyz.docx"
Overwrite="true"
CreateFolder="true"
CopyOnly="true" />
</OnSuccess>
</Commands>
</primedocsConnect> |
In diesem Beispiel wird ein Dokument mit der Vorlage 30b55516-80b5-41d7-801b-b31d6da376ac
mit dem Subject
“Hello Connect”.
Nach der erfolgreichen Dokumentgenerierung wird das Dokument über den SaveAs
-Command in einen Ordner abgespeichert.
Verfügbare Commands
Command | Beschreibung | Client | Server |
---|---|---|---|
| Startet den Standardprozess, der in Windows für den Dateityp registriert ist | ✓ | |
| Konvertiert Vorlagen oder Dokumente (.dotx/.docx) in PDF (.pdf) | ✓ | ✓* |
| Speichert das Dokument am angegebenen Zielort im angegebenen Format | ✓ | |
| Erstellt eine primedocs-Connect-Result-Datei | ✓ |
DefaultProcess
Dieser Befehl startet den DefaultProcess
, der in Windows für den generierten Dateityp registriert ist. Dieser Aufruf funktioniert nur über den Client.
Möglicher Parameter:
Start: True/False, bei False wird der Prozess nicht gestartet.
Code Block | ||
---|---|---|
| ||
<primedocsConnect>
...
<Commands>
<OnSuccess>
<DefaultProcess Start="true" />
</OnSuccess>
</Commands>
</primedocsConnect> |
CreateConnectResult
Über dieses Command wird nach Abschluss der gesamten Dokumenterstellung eine Datei im XML-Format mit einer Zusammenfassung erstellt.
Code Block | ||
---|---|---|
| ||
<primedocsConnect>
...
<Commands>
<OnSuccess>
<CreateConnectResult />
</OnSuccess>
</Commands>
</primedocsConnect> |
Der Inhalt der Datei sieht im Erfolgsfall etwa so aus:
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="utf-8"?>
<PrimeDocsConnectResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Result>Success</Result>
<Details>
<InputFile>O:\Templates\Template_Kurzmitteilung.pdcx</InputFile>
<Input><![CDATA[
<primedocsConnect>
...
</primedocsConnect>
]]></Connect>
</Details>
</PrimeDocsConnectResult> |
Im Fehlerfall steht in der Datei zusätzlich eine Fehlermeldung inkl. StackTrace von primedocs (sofern möglich):
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="utf-8"?>
<PrimeDocsConnectResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Result>Error</Result>
<Message>System.UnauthorizedAccessException: Der Zugriff auf den Pfad "c:\temp" wurde verweigert.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, ...)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
bei ...
</Message>
<Details>
<InputFile>O:\Templates\Template_Kurzmitteilung.pdcx</InputFile>
<Input><![CDATA[
<primedocsConnect>
...
</primedocsConnect>
]]></Connect>
</Details>
</PrimeDocsConnectResult> |
SaveAs
Note |
---|
CAUTION |
Speichert das Dokument am angegebenen Zielort. Der neue Dateispeicherort wird für alle folgenden Befehle berücksichtigt (z. B. im DefaultProcess).
Möglicher Parameter:
Filename: Absoluter Pfad mit Dateiendung
Overwrite: True/False; gibt an, ob eine bestehende Datei überschrieben werden soll.
CreateFolder: True/False; gibt an, ob Ordner, die im Filename angegeben sind, erstellt werden sollen.
AllowUpdateDocumentPart: True/False; bei "True" wird der primedocs Document Part als "SavedDocument" anstatt "NewDocument" markiert.
CopyOnly: True/False; wird diese Einstellung getroffen, wird das Dokument im aktuellen Stand als Kopie abgespeichert. Im Client-Anwendungsfall wird die Datei trotzdem z. B. weiterhin als "Vorlage (.dotx)" behandelt und im Temp-Ordner erstellt und von dieser Datei Microsoft Word geöffnet.
Code Block | ||
---|---|---|
| ||
<Command Name="SaveAs">
<Parameters>
<Add key="Filename">\\MyServer\share\organization\...\documentxyz.dotx</Add>
<Add key="Overwrite">true</Add>
<Add key="CreateFolder">true</Add>
<Add key="CopyOnly">false</Add>
<Add key="AllowUpdateDocumentPart">false</Add>
</Parameters>
</Command> |
HINWEIS