Skip to main content
Skip table of contents

Validating Processes

Both Business Processes (.bpm) and Technical Processes (.wrf) can be checked for validity via an integrated process validator. The validation can be performed based on default rules as well as based on custom validation rules.


The process validation can be initiated via the following menus:

  • Context menu Validate when right-clicking on processes within the X4 Repository
  • Menu Project Validate Project

There are three severity levels for the process validation: 

  • Error: Errors preventing the process execution
  • Warning: Errors that may cause the process to run incorrectly
  • Information: Information regarding the process' state

Checking Processes

To check processes for validity proceed as follows:

  1. Open the process validation dialog, e.g. via the menu Project Validate Project.
  2. Select the processes to be validated.
  3. If required upload a configuration file for custom validation rules via Use custom config file and Browse, see section Custom validation rules
  4. Click Start to begin the validation.
    The validation result will be opened in the Validation Report view.

    • By double-clicking on the process path the corresponding process will be opened.
    • By double-clicking on a validation result the properties of the corresponding process component will be opened in the Properties view.



Default Validation Rules

The following validation rules are already defined by default:

Validation rule
Description

Severity

Action Parameter Validation

Are all actions parameterized correctly?

Error

Condition Validation

Are all branches of a Condition component filled?Warning

Connection Validation

Are all paths closed?Error

Custom Validation Rules

It is also possible to define custom validation rules. They must be provided as XSLT mapping with a pre-defined structure.

Mapping example for custom validation rules

XML
<?xml version="1.0" encoding="UTF-8"?>
<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 &gt; 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 &gt; 0">
          <xsl:if test="$componentCount div $textCount &gt; 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 &gt; 0">
          <xsl:if test="( $componentCount - $subprocessCount ) div $subprocessCount &gt; 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>

An XML configuration file with the following structure must be uploaded for the process validation. The mapping to be used is referenced here by means of its xstore URL:

XML
<?xml version="1.0" encoding="UTF-8"?>
<validationConfig>
	<default active="true"/>
	<custom_xslt active="true" name="processMetrics">
		xstore://Projekt/Unterverzeichnis/customValidationMetrics.xsl
	</custom_xslt>
</validationConfig>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.