Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »


primedocs Connect ist eine XML Schnittstelle um die Dokumenterzeugung teilweise oder vollständig zu automatisieren. Connect kann sowohl client- als auch serverseitig verarbeitet werden.

<primedocsConnect>
   ...
</primedocsConnect>

Template

Über das Template-Element kann gezielt eine Vorlage angesprochen werden oder es kann eine Filterung aufgrund von Tags vorgenommen werden.

Id

Über das Id-Attribut wird die Vorlage für die Dokumentverarbeitung gewählt. Als Angabe dafür muss die genaue GUID der Vorlage übergeben werden.

<primedocsConnect>
  <Template Id="30b55516-80b5-41d7-801b-b31d6da376ac" />
  ...
</primedocsConnect>

TagFilter

Der TagFilter ist nur clientseitig implementiert.

Über das TagFilter-Element können Tags zur Filterung angegeben werden.

<primedocsConnect>
  <Template>
    <TagFilter>
      <Tag>Tag1</Tag>
      <Tag>Tag2;Tag3;Tag4</Tag>
    </TagFilter>
  </Template>
  ...
</primedocsConnect>

AND-Verknüpfungen werden innerhalb eines Tag-Elements durch Semikolons getrennt definiert, OR-Verknüpfungen durch mehrere Tag-Elemente.
Das obige Beispiel zeigt alle Vorlagen, die mit Tag1 oder Tag2, Tag3 und Tag4 markiert sind.

Standardmässig wird erwartet, dass die Filterung nur eine Vorlage als Ergebnis liefert. Liefert die Abfrage mehrere Vorlagen, wird eine Fehlermeldung anzeigt.

Über das AllowTemplatePicker-Attribut kann optional ein Auswahldialog angezeigt werden, dieser zeigt dann alle resultierenden Vorlagen an.

<primedocsConnect>
  <Template>
    <TagFilter AllowTemplatePicker="true">
      <Tag>Tag1</Tag>
      <Tag>Tag2;Tag3;Tag4</Tag>
    </TagFilter>
  </Template>
  ...
</primedocsConnect>

DocumentLanguage

Über das DocumentLanguage-Element mit dem Code-Attribut kann die Zieldokumentsprache angegeben werden.

<primedocsConnect>
  <DocumentLanguage Code="de-ch" />
  ...
</primedocsConnect>

Wird keine DocumentLanguage angegeben, wird die Standardsprache der primedocs Datenquelle genommen.


Author

Das Author-Element kann genutzt werden um die Dokumenterzeugung mit einem bestimmten Profil und einem bestimmten Thema zu starten.

<primedocsConnect>
  <Author>
    <Profile Id="08be85c8-d12a-4e8c-b1aa-9f56e5f6ed38" ThemeId="Red" />
  </Author>
  ...
</primedocsConnect>

Über das Id-Attribut kann ein bestimmtes Profil ausgewählt werden. Das ThemeId-Attribut kann genutzt werden um ein bestimmtes Thema auszuwählen.

Ohne Angabe eines expliziten Profiles wird das aktuelle Profile des primedocs-Clients verwendet bzw. auf Serverseite das erste Profil des jeweiligen Benutzers.


Forms

Die Dokumentfunktion Formulare (Forms) dient dazu Daten vor der Dokumentgenerierung abzufragen. Die konfigurierten Eigenschaften können auch über die Connect Schnittstelle vorausgefüllt werden.

<primedocsConnect>
  <Forms>
	<!-- "Simple" mappings to Text/Choice/Date/... -->
    <Value Key="Subject">Sample letter</Value>
	<Value Key="Note">Another sample</Value>
	
	<!-- Target is an Object -->
    <Object Key="Recipient">
      <Value Key="Name">John Doe</Value>
      <Value Key="Address">Sample Street 123, 12345 City</Value>
    </Object>

	<!-- Target is an ObjectCollection -->
	<ObjectCollection Key="Topics">
	  <Item>
	    <Value Key="Name">Sample 1</Value>
	  </Item>
	  <Item>
	    <Value Key="Name">Sample 2</Value>
	  </Item>
	  <Item>
	    <Value Key="Name">Sample 3</Value>
	  </Item>
	  <Item>
	    <Value Key="Name">Sample 4</Value>
	  </Item>
   </ObjectCollection>
  </Forms>
  ...
</primedocsConnect>

Über Connect wird nur die “Ziel-Id” des jeweiligen Elements angegeben samt dem Inhalt. Hierbei werden 3 verschiedene Typen unterschieden:

  • “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 einem Item-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.

<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:

<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

DefaultProcess

Startet den Standardprozess, der in Windows für den Dateityp registriert ist

ConvertToPdf

Konvertiert Vorlagen oder Dokumente (.dotx/.docx) in PDF (.pdf)

✓*

SaveAs

Speichert das Dokument am angegebenen Zielort im angegebenen Format

CreateConnectResult

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.

<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.

<primedocsConnect>
  ...
  <Commands>
    <OnSuccess>
      <CreateConnectResult />
    </OnSuccess>
  </Commands>
</primedocsConnect>

Der Inhalt der Datei sieht im Erfolgsfall etwa so aus:

<?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):

<?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

CAUTION
Auf dem Server kann dieser Command nicht dazu verwendet werden, ein Word-Dokument zu einem PDF zu konvertieren! Verwenden Sie dazu ConvertToPdf.

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.

<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

  • No labels