Sowohl Business Processes (.bpm) als auch Technical Processes (.wrf) können über einen integrierten Prozess-Validator auf Gültigkeit geprüft werden. Dabei kann die Validierung auf Basis von standardmäßig hinterlegten oder benutzerdefinierten Validierungsregeln durchgeführt werden.
Die Prozess-Validierung kann über folgende Menüs geöffnet werden:
-
Kontextmenü > Validate bei Rechtsklick auf Prozesse im Repository
-
Menü Project > Validate Project
Bei der Prozess-Validierung werden drei Schweregrade unterschieden:
-
Error: Fehler, welche die Ausführung des Prozesses verhindern -
Warning: Fehler, die eine fehlerhafte Ausführung des Prozesses verursachen können -
Information: Informationen zum Zustand eines Prozesses
Prozess-Validierung durchführen
Um einen Prozess auf Gültigkeit zu prüfen, gehen Sie wie folgt vor:
-
Öffnen Sie den Dialog für die Prozess-Validierung, z.B. über das Menü Project > Validate Project.
-
Die zu validierenden Prozesse auswählen.
-
Über Use custom config file und Browse, ggf. eine Konfiguration für eigene Validierungsregeln hochladen, siehe Abschnitt Benutzerdefinierte Validierungsregeln.
-
Mit Start die Validierung beginnen.
In der Validation Report Sicht wird nun das Validerungsergebnis geöffnet.
-
Mit Doppelklick auf den Prozesspfad wird der entsprechende Prozess im X4 Designer geöffnet.
-
Mit Doppelklick auf ein Validierungsergebnis werden die Eigenschaften der entsprechende Prozesskomponente in der Properties-Sicht geöffnet.
-
Standardmäßig hinterlegte Validierungsregeln
Folgende Validierungsregeln sich bereits standardmäßig hinterlegt:
|
Validierungsregel |
Beschreibung |
Schwere |
|---|---|---|
|
|
Sind alle Aktionen korrekt parametriert? |
Error |
|
|
Sind alle Zweige eines |
Warning |
|
|
Sind alle Pfade geschlossen? |
Error |
Benutzerdefinierte Validierungsregeln
Es können auch eigene Validierungsregeln definiert werden. Diese müssen als XSLT-Mapping mit einer vorgegebenen Struktur vorliegen.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output media-type="text/xml" method="xml"></xsl:output>
<xsl:template match="/">
<xsl:param name="subprocessCount" select="count(Workflow/Actions/Action[Module/text() = 'iXworkflow'])"></xsl:param>
<xsl:param name="componentCount" select="count(Workflow/Actions/Action)"></xsl:param>
<xsl:param name="textCount" select="count(Workflow/Graphics/svg/text)"></xsl:param>
<step>
<xsl:choose>
<xsl:when test="$componentCount > 100">
<warn>The number of process components is <xsl:value-of select="$componentCount"></xsl:value-of>. Processes with more than 100 components may probably be unclear and error-prone. Please check, if you can outsource parts of the process as subprocesses.</warn>
</xsl:when>
<xsl:otherwise>
<info>The number of process components is <xsl:value-of select="$componentCount"></xsl:value-of>
</info>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$textCount > 0">
<xsl:if test="$componentCount div $textCount > 5">
<warn>The ratio of process components to text components is greater than 5:1. It is <xsl:value-of select="$componentCount div $textCount"></xsl:value-of>:1.</warn>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<info>The process doesn't contain any text components.</info>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$subprocessCount > 0">
<xsl:if test="( $componentCount - $subprocessCount ) div $subprocessCount > 10">
<warn>The ratio of process components to subprocesses is greater than 10:1. It is <xsl:value-of select="( $componentCount - $subprocessCount ) div $subprocessCount"></xsl:value-of>:1</warn>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<info>The process doesn't contain any subprocesses.</info>
</xsl:otherwise>
</xsl:choose>
</step>
</xsl:template>
</xsl:stylesheet>
Für die Prozess-Validierung muss eine XML-Datei mit folgendem Aufbau übergeben werden. Das zu verwendende Mapping wird hier anhand der xstore-URL referenziert:
<validationConfig>
<default active="true"/>
<custom_xslt active="true" name="processMetrics">
xstore://Projekt/Unterverzeichnis/customValidationMetrics.xsl
</custom_xslt>
</validationConfig>