wfm.Export

Dieser Job exportiert Organisationsstruktur, Workflow-Projekte und/oder Workflows.

Die erzeugte Datei ist die Eingabedatei von wfm.Import — beide Jobs bilden zusammen den Transport einer Organisation von einem System auf ein anderes.

1. Eingabeparameter

Name Typ Pflicht Beschreibung

OrganisationId

STRING

Ja

ID der Organisation, aus der exportiert werden soll

OrgDoExport

INT

Ja

Flag: gibt an, ob auch Organisationsdaten exportiert werden sollen (1 = Ja, 0 = Nein)

WFProjectTree

BASE64

Ja

Struktur gibt an, welche Projekte und Workflowmodelle exportiert werden sollen (XML-Format, siehe Hinweis)

ReportConfigDoExport

INT

Ja

Flag: gibt an, ob Reportkonfigurationen der Organisation exportiert werden sollen

ReportConfigIds

STRING

Ja

Kommaseparierte Liste der zu exportierenden Reportkonfigurations-IDs. Ist ReportConfigDoExport = 1 und diese Liste leer, werden alle Konfigurationen der Organisation exportiert.

AdhocRoutingListTemplateDoExport

INT

Ja

Flag: gibt an, ob Lauflistenvorlagen der Organisation exportiert werden sollen

AdhocRoutingListTemplateIds

STRING

Ja

Kommaseparierte ID-Liste der zu exportierenden Lauflistenvorlagen. Ist AdhocRoutingListTemplateDoExport = 1 und diese Liste leer, werden alle Lauflistenvorlagen der Organisation exportiert.

2. Rückgabe

(INT): 0 = Job erfolgreich, sonst Fehlercode.

3. Ausgabedateien

Name Beschreibung

Exportdatei

Name und Pfad der Exportdatei. Der Job liefert genau eine Datei mit der Endung .exp, benannt nach dem Muster <Login>_<GUID>.exp. Aufbau siehe Abschnitt „Aufbau der Exportdatei".

4. Hinweis

Aufbau von WFProjectTree:

<WFProjectTree>
  <WorkflowProject Id="" CompleteExport="0">
    <WorkflowProject Id="" CompleteExport="0">
      <WorkflowProject Id="" CompleteExport="0">
        <Workflow Id=""/>
        <Workflow Id=""/>
      </WorkflowProject>
    </WorkflowProject>
    <WorkflowProject Id="" CompleteExport="1"/>
    <WorkflowProject Id="" CompleteExport="1">
      <Workflow Id=""/>
      <Workflow Id=""/>
    </WorkflowProject>
  </WorkflowProject>
</WFProjectTree>

Genauere Beschreibung von WFProjectTree:

  • WorkflowProject: Struktur (ggf. geschachtelt), die angibt, welches Workflowprojekt (wobei dieses auch eine Workflowfamilie sein darf) exportiert werden soll

    • Id (STRING): ID des Workflowprojekts

    • CompleteExport (INT): Gibt an, ob alle Projekte und Workflows unterhalb des Projekts exportiert werden. 1 = vollständig, die Unterstruktur muss dann nicht angegeben werden. 0 = nur das, was durch verschachtelte WorkflowProject- und Workflow-Elemente benannt ist.

      Das Attribut ist auf jedem <WorkflowProject> anzugeben. Fehlt es, wird unterhalb dieses Knotens nichts exportiert — der Job meldet dennoch Erfolg (0) und liefert eine Datei, in der die Inhalte schlicht fehlen. Gemessen an enaio®-Server 12.0 (EngineVersion 1200).
  • Workflow: Struktur, die angibt, welcher Workflow exportiert werden soll

    • Id (STRING): ID des Workflows

5. Beispiele

5.1. Ganze Organisation in einem Aufruf

Die Wurzelprojekt-ID stammt aus wfm.GetProjectList (das Projekt mit Type = 1). Dazu OrgDoExport = 1.

<WFProjectTree>
  <WorkflowProject Id="6F814430EE6840FE8B06D3A0387AD0FD" CompleteExport="1"/>
</WFProjectTree>

5.2. Nur die Organisationsstruktur

OrgDoExport = 1 mit leerem Baum. Ergebnis ist eine Datei ohne <WorkflowProject>.

<WFProjectTree/>

5.3. Ein einzelner Zweig

Vorfahren mit CompleteExport = 0, das gewünschte Blatt mit 1, dazu OrgDoExport = 0, damit die Organisationsstruktur nicht in jede Teildatei kopiert wird.

<WFProjectTree>
  <WorkflowProject Id="9F04356F60E6407C9B554AB9F85FDC50" CompleteExport="0">
    <WorkflowProject Id="567B05DA2A1E4DEB9FEA6E21AA1310A3" CompleteExport="1"/>
  </WorkflowProject>
</WFProjectTree>
Die Vorfahrenkette muss nicht beim Wurzelprojekt beginnen — der Server löst die Projekte über ihre IDs auf. Im Beispiel fehlt das Wurzelprojekt, der Export gelingt dennoch.

5.4. Einzelne Workflowmodelle

Das Blatt mit CompleteExport = 0 und den gewünschten Modellen. Die Modell-IDs stammen aus wfm.GetWorkflowListByFamily oder aus einer vorherigen Exportdatei.

<WFProjectTree>
  <WorkflowProject Id="9F04356F60E6407C9B554AB9F85FDC50" CompleteExport="0">
    <WorkflowProject Id="567B05DA2A1E4DEB9FEA6E21AA1310A3" CompleteExport="0">
      <Workflow Id="319AAE7820804565B6E3E2588B066309"/>
    </WorkflowProject>
  </WorkflowProject>
</WFProjectTree>

6. Aufbau der Exportdatei

Der Job liefert genau eine Datei. Sie ist UTF-16 LE mit BOM (FF FE) kodiert und trägt die XML-Deklaration encoding="UTF-16". Ein XSD dafür gibt es nicht. Die Datei entspricht dem Format, das wfm.Import wieder entgegennimmt; ältere Fassungen hebt wfm.ConvertExportFile auf das aktuelle Format.

<WorkflowImport EngineVersion="1200" ExportSubVersion="0" ExportEncoding="1">
  <Organisation Id="…" Name="Organisation">
    <OrgStructure/>                                <!-- nur bei OrgDoExport=1 -->
    <Eventtypes/>
    <WorkflowProject Id="…" Name="…" Type="1" Description="…" CreatorId="…"
                     CreationTime="…" Priority="" ProcCount="0" VersionCount="0">
      <WorkflowProject Id="…" Name="…" Type="2" …>  <!-- beliebig tief geschachtelt -->
        <WorkflowProject Id="…" Name="…" Type="3" …>
          <Workflow Id="…" Name="…" Description="…" State="3" Version="19"
                    PackageId="…" IconId="…" CreatorId="…" CreationTime="…"/>
        </WorkflowProject>
      </WorkflowProject>
    </WorkflowProject>
  </Organisation>
  <ClientTypes/>
  <ResourceLanguages/>
</WorkflowImport>

Strukturregeln, gemessen an enaio®-Server 12.0 (EngineVersion 1200):

  • <WorkflowProject> ist rekursiv geschachtelt und gibt damit die Projekthierarchie wieder, die wfm.GetProjectList nicht liefert.

  • <Workflow> tritt ausschließlich unterhalb von Type = 3 (Workflowfamilie) auf. Familien haben nie Unterprojekte. Der Baum ist Wurzelprojekt → Projekte → Familie → Modelle.

  • Eine Familie kann mehrere Modelle enthalten.

  • Priority, ProcCount und VersionCount stehen nur hier; wfm.GetProjectList liefert sie nicht.

  • <OrgStructure> erscheint nur bei OrgDoExport = 1. <Eventtypes>, <ClientTypes> und <ResourceLanguages> sind immer enthalten.