Shared function dimension

By default, shared functions are transferred to the system through a one-time import of a shared fragment. Applying the shared fragment rules merges the shared functions that are contained in the imported shared fragments with the normal process instance fragments. All objects of the shared fragment are copied to the fragment instance. This automatically ensures the uniqueness of a shared function and you can use the function ID of a shared function to differentiate between shared functions.

If you directly import shared functions as normal fragment instances using event format, a unique ID is created for each imported function. The function ID cannot be used as characteristic of a shared function. You can, however, define a shared function dimension where identical dimension values combine functions into shared functions. Dimension values not specified are not included.

A shared function dimension has the following properties:

Example

The following example supplies excerpts from measure and process tree configuration files. For functions with an AT_IS_SHARED_FUNCTION attribute having the value true, the calculation rule of the AT_SHARED_FUNCTION_ID function attribute used for the shared function dimension concatenates the internal function name with the time stamp of the function execution.

keyindicator.xml file extract

...

<calcattr name="AT_SHARED_FUNCTION_ID" type="OT_FUNC" delete="yes">

<calculation>

<if>

<and mode="PPM4">

<exists mode="PPM4">

<filteredattribute name="AT_IS_SHARED_FUNCTION"Line break

nodetype="OT_FUNC" objectname="this"Line break

onerror="CONTINUE" filter="EARLY" />

</exists>

<eq mode="PPM4">

<filteredattribute name="AT_IS_SHARED_FUNCTION"Line break

nodetype="OT_FUNC" objectname="this"Line break

onerror="CONTINUE" filter="EARLY" />

<constant>

<dataitem value="TRUE">

TRUE

<datatypeLine break

name="BOOLEAN">Logical value</datatype>

</dataitem>

</constant>

</eq>

</and>

<then>

<concat mode="PPM4">

<set mode="PPM4">

<filteredattribute name="AT_OBJNAME_INTERN"Line break

nodetype="OT_FUNC" objectname="this"Line break

onerror="EXIT_WARNING" filter="EARLY" />

<convert datatype="TEXT">

<filteredattribute name="AT_END_TIME"Line break

nodetype="OT_FUNC" objectname="this"Line break

onerror="EXIT_WARNING" filter="EARLY" />

</convert>

</set>

</concat>

</then>

</if>

</calculation>

</calcattr>

...

<sharedfunctiondim name="SHARED_FUNCTION">

<description name="Shared Function" language="de" />

<description name="Shared Function" language="en" />

<dimitem attrname="AT_SHARED_FUNCTION_ID"Line break

colname="SHARED_FUNCTION" calculated="TRUE">

<description language="de" name="SHARED_FUNCTION" />

<description language="en" name="SHARED_FUNCTION" />

</dimitem>

</sharedfunctiondim>

...

processtree.xml file extract

...

<usesfdim name="SHARED_FUNCTTION" />

<processtypegroup name="Standard order"Line break

dbtablename="CUBE1">

<processtype name="Order processing" autovisible="FALSE" />

</processtypegroup>

...