Shared fragment key rules

Shared fragment keys assign shared fragments to process instance fragments. Shared fragments are special process fragments, which contain exclusively functions involved in several process instances. As these functions are only executed once in the source system but occur in several process instances, they are called shared functions.

Shared fragments are imported in graph format using the XML import. The definition of the graph for a shared fragment contains the AT_IS_SHARED_FRAGMENT process instance attribute with the value TRUE. All functions of a shared fragment must be identified as shared functions by the value TRUE for the AT_IS_SHARED_FUNCTION function attribute. During importing, at least one shared fragment key is calculated for each imported shared fragment. Shared fragments for which no key can be calculated are not imported.

The shared fragment key rules are applied to all imported process instance fragments. During subsequent processing (rumppmimport) all fragments (shared fragments and process instance fragments) for which identical shared fragment keys have been calculated are written to a process instance and then linked using the merge rules.

The shared fragment key copies the shared fragments to a process instance. To link shared fragments with one another or with normal process instance fragments, appropriate rules are specified, which depend on the merge procedure used.

You can use a shared fragment key only once for copying a process fragment to a process instance. After the first use, the key is removed from the process instance. Therefore, copies of shared fragments are not updated in a process instance when a shared fragment changes.

Example

A shared fragment key rule is created for the events with the identifiers EVT_ACE and EVT_GIK, which generates a shared fragment key from the value of the AT_XYZ attribute.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE keyrules SYSTEM "keyrules.dtd">

<keyrules>

...

<sharedfragmentkeyrule>

<refobjects>

<refobject objecttype="OT_EVT">

<objectname name="EVT_ACE"/>

<objectname name="EVT_GIK"/>

</refobject>

</refobjects>

<keyparts>

<keypart attributetype="AT_XYZ"/>

</keyparts>

</sharedfragmentkeyrule>

...

</keyrules>