You can add generic operations to the object class model. This is relevant for example if you create a custom object class and need to add create, delete, and edit operations for it, or if you would like to add special functionality like execution of an ADIF job. The scope of functionality that you can define as operation is limited to the use cases listed below. The operations that you define are added as buttons to all class-based content areas and data workbenches for the object class you defined it for. You can exclude the operations via the class setting for user profiles, object class tereotypes, or when specific conditions apply..

You can copy a generic operation and paste it into a new one to take over the settings as a basis for the configuration of the new generic operation.

Standard create, edit and delete operations for an object class

You can add standard create, edit, and delete operations to object classes not yet having these operations defined.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add operations to.
  3. Right-click the Generic Operations node and select Add Default Operations.
  4. Optionally, you can alter the appearance of the buttons. Click the operation and set any of the following attributes:
    • Caption: Enter the button caption.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.
    •  Confirm Message: For delete operations only, you can define a text that will then be displayed to the user clicking the button in a pop-up window. The delete operation is only performed if the user confirms the message.
    • Button Location: Select MainToolbar if the button shall always be directly visible in the toolbar of content areas and data workbenches and not hidden under the three-dots menu. Select MoreGroup to always hide the button under the three-dots menu. Select NoPreference to the button location shall depend on the available space on the user interface.

Create

Generic operations for creating a new object are not displayed in class-based content areas. They are only available in data workbenches.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Create.
    • Target Class: Select the object class you are defining the generic operation for. This is the object class for which objects will be created.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

    • Access in User Interface: Select Access to make the button visible in the user interface and NoAccess to hide the button. If the button shall only be available in a single user profile, you can set it to NoAccess in the object class model and change this setting in the class settings of the object class assigned to the user profile only.
    • Base Context Class: Optionally, select an object class to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class.
    • Object-Based Operation Context/Enabled: Select Enabled if the button should be shown in the content area of the objects of the object class the generic operation is defined for.
    • Selection-Based Operation Context/Source: Select System . The button will always be active in data workbenches. Alternatively, you can select Disabled to deactivate the button in data workbenches.
    • Button Location: Select MainToolbar to force display of the button in the main toolbar. Select MoreGroup to move the button to the three-dots menu. Select NoPreference to locate the button in the main toolbar, if the required space is available and otherwise move it to the three-dots menu.

Create as copy

With the CreateAsCopy operation users can create copies, versions, and variants of existing objects. The operation copies defined object class properties and relations to other objects from a select object to the new object on creation of the new object. It is also possible to set object class properties of the source object during the copy process. This is required, for example, to create a new version of an object and at the same time link it back to the old version as information about the successor version.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select CreateAsCopy.
    • Source Class: Select the object class you are defining the generic operation for. This is the object class for which objects will be created as copy.
    • XML Definition: Define which object class properties and relations shall be copied over from the source to the target object. The structure of the XML object is described below after the description of the attributes to be set.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

  5. specify the copy process in the XML Definition attribute in a ClassOperationMapping XML element with the following structure:
    • <ClassOperationMapping>
      • <ClassPropertyMapping>
        • <TargetPropertyMapping SourceProperty='' TargetProperty='' TargetPropertyPrefix='' TargetPropertySuffix=''/>
      • </ClassPropertyMapping>
      • <RelatedClassMapping>
        • <RelatedClass ClassName='' RelatedClassProperty='' SourceClassProperty='' CopyScope=''>
          • </RelatedPropertyMappings>
            • <RelatedPropertyMapping TargetClassProperty='' RelatedProperty=''/>
          • <ClassPropertyMapping>
            • <TargetPropertyMapping SourceProperty='' TargetProperty='' TargetPropertyPrefix='' TargetPropertySuffix=''/>
          • </ClassPropertyMapping>
        • </RelatedClass>
      • </RelatedClassMapping>
    • </ClassOperationMapping>

    Copy an object class property including references and reference arrays. For each object class property which shall be copied, add a TargetPropertyMapping XML element to the ClassPropertyMapping XML element and define the XML attributes:

    • SourceProperty: (Mandatory) Enter the name of the object class property of the source object that will be copied.
    • TargetProperty: (Mandatory) Enter the name of the target object class property that the source property value will be copied to.
    • TargetPropertyPrefix: For target properties of the type String, you can define a prefix. The target property value will be the prefix followed by the source property value.
    • TargetPropertySuffix: For target properties of the type String, you can define a suffix. The target property value will be the source property value followed by the suffix.

    The following setting is part of the configuration to create a new version of an application. The name is copied over unchanged, while the version number is amended with a suffix to add to the copied version number. The assignment to application groups is also copied. The new application will be member of the same application groups as the copied source application. The REFSTR of the copied application is added to the PreviousVersion attribute of the new application to create a reference to the copied application.

    • <ClassOperationMapping>
      • <ClassPropertyMapping>
        • <TargetPropertyMapping SourceProperty='Name' TargetProperty='Name' />
        • <TargetPropertyMapping SourceProperty='Version' TargetProperty='Version' TargetPropertySuffix='.1'/>
        • <TargetPropertyMapping SourceProperty='ApplicationGroups' TargetProperty='ApplicationGroups'/>
        • <TargetPropertyMapping SourceProperty='REFSTR' TargetProperty='PreviousVersion'/>
      • </ClassPropertyMapping>
    • </ClassOperationMapping>

    Alter the data of the copied object with data from the new object. If you want, for example, set a reference to the new object in the copied object, add a SourcePropertyMapping XML element to the ClassPropertyMapping XML element and define the XML attributes:

    • SourceProperty: (Mandatory) Enter the name of the object class property of the copied object that will be set during the copy process.
    • TargetProperty: (Mandatory) Enter the name of the target object class property that will be set in the specified source property of the copied object.

    The following setting is part of the configuration to create a new version of an application. The REFSTR of the application created as copy is entered to the NextVersion attribute of the copied application to create a reference to the application created as copy.

    • <ClassOperationMapping>
      • <ClassPropertyMapping>
        • <SourcePropertyMapping SourceProperty='NextVersion' TargetProperty='REFSTR'/>
      • </ClassPropertyMapping>
    • </ClassOperationMapping>

    Create new referenced objects as copy from existing references of the copied object. In some cases, you do not want to copy existing relations to other objects but create a copy of each object referenced by the copied source object and set the references in the target object to the copies of the related objects. For each related object which shall be copied, add a RelatedClass XML element to the RelatedClassMapping XML element and define the XML attributes and XML child elements:

    XML attributes of the RelatedClass XML element: The RelatedClass XML element defines the relation between the object you copy and the related object. This definition finds the objects to be copied.

    • ClassName: (Mandatory) Enter the name of the related object class.
    • RelatedClassProperty: (Mandatory) Enter the name of the object class property of the related class that must be identical to the specified SourceClassProperty of the copied object class to establish the relation. If the reference is stored in an object class property of the copied object, this is the REFSTR object class property of the related object class. If the reference is stored in a reference or reference array object class property of the related object class, this is the object class property establishing the relation.
    • SourceProperty: (Mandatory) Enter the name of the object class property of the copied object class that must be identical to the specified RelatedClassProperty of the related object class to establish the relation. If the reference is stored in a reference or reference array object class property of the related object, this is the REFSTR object class property of the copied object class. If the reference is stored in an object class property of the copied object class, this is the object class property establishing the relation.
    • CopyScope: Enter Full to copy all object class properties of the related object and only change the ones explicitly defined in child XML elements. Enter Partial to copy only object class properties explicitly defined in tchild XML elements.

    XML attributes of the RelatedPropertyMapping XML element: You must add a RelatedPropertyMappings child XML element and define the relation between the copy of the related object and the target object resulting from the copy action in at least one RelatedPropertyMappings child XML element. In addition, you can copy values from the copied target object to the copied related object. Please note however, that the copy of the related objects is created prior to showing the editor for the new copied target object to the user. Therefore, only the REFSTR of the copied target object and object class properties you explicitly defined in this XML definition as being copied to the target object can be used to change data in the copied related object. Data changes made by the user in the editor will not have any effect on the copied related objects.

    • TargetClassProperty: (Mandatory) Enter the name of the object class property of the copied object class that shall be copied over to the related object class.
    • RelatedProperty: (Mandatory) Enter the name of the object class property of the related object class which will be filled with the value from the target object of the copy process.

    XML attributes of the TargetPropertyMapping XML element: If the CopyScope is set to Partial you must specify all object class properties of the related object class which shall be copied. The definition is optional if CopyScope is set to Full. You can change copy behavior from simple copying to adding a prefix or suffix, for example.

    • SourceProperty: (Mandatory) Enter the name of the object class property of the related source object that will be copied.
    • TargetProperty: (Mandatory) Enter the name of the related target object class property that the related source property value will be copied to.
    • TargetPropertyPrefix: For related target properties of the type String, you can define a prefix. The related target property value will be the prefix followed by the source property value.
    • TargetPropertySuffix: For related target properties of the type String, you can define a suffix. The related target property value will be the source property value followed by the suffix.

    The following setting is part of the configuration to create a new version of an application. Each application must have its own information flows. The information flow is linked to the source application with the From and FromOwner object class properties and to the target application to the To and ToOwner object class properties. The new application must have new information flows which are a copy of the information flows from the copied application, but link back to the new application either as source or target object. Information flows must therefore be specified in the mapping definition two times. One definition is for incoming and one for outgoing information flows.

    The RelatedClass definition defines that information flows are copied from all information flows having the REFSTR of the copied application set in the FromOwner or ToOwner object class property of the information flow. The full scope of data for the information flow is copied.

    In the RelatedPropertyMappings child XML element, the relation to the copied object is changed to a relation of the new target object. The references to the source or target application need to be overwritten and point to the new object instead of the copied object.

    The specification under the ClassPropertyMapping child XML element defines a change to the name of the information flow during copying. It is setting a prefix to the name.

    • <RelatedClassMapping>
      • <RelatedClass ClassName='InformationFlow' RelatedClassProperty='FromOwner' SourceClassProperty='REFSTR' CopyScope='Full'>
        • <RelatedPropertyMappings>
          • <RelatedPropertyMapping TargetClassProperty='REFSTR' RelatedProperty='From'/>
          • <RelatedPropertyMapping TargetClassProperty='REFSTR' RelatedProperty='FromOwner'/>
        • </RelatedPropertyMappings>
        • <ClassPropertyMapping>
          • <TargetPropertyMapping SourceProperty='Name' TargetProperty='Name' TargetPropertyPrefix='CopyOf '/>
        • </ClassPropertyMapping>
      • </RelatedClass>
      • <RelatedClass ClassName='InformationFlow' RelatedClassProperty='ToOwner' SourceClassProperty='REFSTR' CopyScope='Full'>
        • <RelatedPropertyMappings>
          • <RelatedPropertyMapping TargetClassProperty='REFSTR' RelatedProperty='To'/>
          • <RelatedPropertyMapping TargetClassProperty='REFSTR' RelatedProperty='ToOwner'/>
        • </RelatedPropertyMappings>
        • <ClassPropertyMapping>
          • <TargetPropertyMapping SourceProperty='Name' TargetProperty='Name' TargetPropertyPrefix='CopyOf '/>
        • </ClassPropertyMapping>
      • </RelatedClass>
    • </RelatedClassMapping>

Edit

A button for a generic edit operation will open the editor defined in the class settings of the object class. In the class settings, you can change the generic operation to open another editor instead.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Edit.
    • Source Class: Select the object class you are defining the generic operation for. This is the object class for which objects can be edited.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

    • Access in User Interface: Select Access to make the button visible in the user interface and NoAccess to hide the button. If the button shall only be available in a single user profile, you can set it to NoAccess in the object class model and change this setting in the class settings of the object class assigned to the user profile only.
    • Base Context Class: Optionally, select an object class to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class.

      The private edit generic operation available for standard object classes will be available in embedded data workbenches although Base Context Class is not set for this private generic operation.

    • Object-Based Operation Context/Enabled: Select Enabled if you want the button to be visible in the content area of the object class the operation is defined for.
    • Selection-Based Operation Context/Source: Select Single . The button will only be active in data workbenches if a single object has been selected. Alternatively, you can select Disabled to deactivate the button in data workbenches.
    • Button Location: Select MainToolbar to force display of the button in the main toolbar. Select MoreGroup to move the button to the three-dots menu. Select NoPreference to locate the button in the main toolbar, if the required space is available and otherwise move it to the three-dots menu.

Delete

Generic operations for deleting a new object are not displayed in class-based content areas. They are only available in data workbenches.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Delete.
    • Source Class: Select the object class you are defining the generic operation for. This is the object class for which objects will be deleted.
    • Confirm Message: Optionally you can define a text that will then be displayed to the user clicking the button in a pop-up window. The operation will only be executed if the user confirms the message.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

    • Access in User Interface: Select Access to make the button visible in the user interface and NoAccess to hide the button. If the button shall only be available in a single user profile, you can set it to NoAccess in the object class model and change this setting in the class settings of the object class assigned to the user profile only.
    • Base Context Class: Optionally, select an object class to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class.

      The private delete generic operation available for standard object classes will be available in embedded data workbenches although Base Context Class is not set for this private generic operation.

    • Object-Based Operation Context/Enabled: Select Enabled if you want the button to be available in the content area of the object class the generic operation is defined for. Otherwise, this setting is ignored.
    • Selection-Based Operation Context/Source: Select Single to activate the button on selection of one object in the data workbench or Multiple to activate the button if one or multiple objects are selected. Alternatively, you can select Disabled to deactivate the button in data workbenches.
    • Button Location: This setting is ignored for generic delete operations. The button will always be in the three-dots menu.

Add an existing object

This type of generic operation adds a relation to an existing object B to an object A. The objects A and B can be of different object classes or of the same object class. Examples are the assignments of applications to application groups or the assignment of other applications groups to an application group as subordinate objects.

When creating a relation, there need to be an object class property in one of the object classes for storing the relation. The object class property must be of the type Reference or ReferenceArray . Which object classes are allowed as reference targets is defined in the Type Info attribute of the object class property. You can define a generic operation for adding a relation either on the target or source object class.

The generic add operation is displayed as a sub-menu item of the New button. When a user clicks the menu option, a selector opens to select an existing object.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Add Relation.
    • Base Context Class: Select an object class to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class. The base context class is also the object class the relation is defined for.
    • Target Class: Select the object class you are defining the generic operation for. This is the object class the relation is created for. If you define the Base Context Class attribute, you do not need to specify the target class. The base context class is then used as target class.
    • Source Class: Select the object class of the object that shall be assigned to an object of the target object class. This is the object class the selector opens for.
    • Relation Class: The object class with the object class property storing the relation. This can be either the source or the target class.
    • Relation Property: The object class property of the Relation Class storing the relation.
    • Confirm Message: Optionally you can define a text that will then be displayed to the user clicking the button in a pop-up window. The operation will only be executed if the user confirms the message.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

The content area of an application group shall include a data workbench for applications that includes only applications which are currently assigned to the application group. The user shall be able to add applications to the application group and detach applications from the application group via the content area.

Please note that this example is based on standard operations which are already available in the standard class model. This is only an example, and you can view the required configuration for the buttons in the standard class model. The button definitions in the example are not required for this example, but for any customized configuration.

You need to do the following for a complete customized configuration:

Add an indirectly related existing object

This type of generic operation adds a relation to an existing object B to object A of the object class the generic operation is defined to via an intermediate object class. Examples are the assignments of demands to applications via the DemandArch object class or the assignment of applications to a project as project architecture via the ProjectArch object class.

You can create generic operations for complex relationships handled via a defined set of intermediate object classes only:

  • ProjectArch storing the relation between projects and the objects which are part of the project architecture.
  • DemandArch storing the relation between demands and the architecture objects affected by the demand.
  • ValueNodeArch storing the relation between value nodes and the architecture objects impacted by the value node.
  • ITPolicyArch storing the relation between the policy and the architecture elements that implement the policy.
  • VMMeasureTypeArch storing the relation between the measure type and the architecture element the measurement is associated with.
  • ProjectBucketAllocation, an allocation rule that describes how the costs defined for a project should be allocated to its associated buckets.
  • BusinessDataUsage, describing whether business data is created, read, updated, deleted, or processed in the context of an object.

The generic add operation is displayed as a sub-menu item of the New button. When a user clicks the menu option, a selector opens to select an existing object.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to. This is the object class for which the button is displayed in data workbenches.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Add Complex Relation.
    • Base Context Class: Select an object class or object class stereotype to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class. The base context class is the object class the relation is defined for.
    • Target Class: Select the intermediate object class establishing the relation.
    • Source Class: Select the object class or object class stereotype of the object that shall be assigned to an object of the Base Context Class. This is the object class the operation is defined for or an object class stereotype thereof.
    • Relation Class: Select the intermediate object class establishing the relation.
    • Relation Property for Base Context Class: Select the object class property of the intermediate object class storing the relation to the Base Context Class.
    • Relation Property for Source Class: Select the object class property of the intermediate object class storing the relation to the Source Class.
    • Confirm Message: Optionally you can define a text that will then be displayed to the user clicking the button in a pop-up window. The operation will only be executed if the user confirms the message.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

The content area of a project shall include a data workbench for applications that includes only applications which are currently assigned to the project as project architecture. The user shall be able to add applications to the project and detach applications from the project via the content area.

You need to do the following for a complete customized configuration:

  • Create a data workbench for applications which only list applications that are assigned as project architecture to the project the user currently works with. The query of the data workbench must refer to the project with the @BASE parameter. The relation is a reference array and stored in the PROJECT_ARCH table:
    • SELECT DISTINCT app.REFSTR, app.NAME, app.VERSION
    • FROM APPLICATION app
    • INNER JOIN PROJECT_ARCH pa ON pa.OBJECT = app.REFSTR
    • WHERE pa.PROJECT = @BASE
  • Add the data workbench to the content area for projects.
  • Add a generic operation for detaching applications from the project and optionally a generic operation for creating new applications for the project architecture to the generic operations of the object class Application.
  • Add a button to add existing applications to the generic operations of the object class Application with the following settings for the operation relevant attributes:
    • Type: Add Complex Relation.
    • Base Context Class: Project
    • Target Class: ProjectArch
    • Source Class: Application
    • Relation Class: ProjectArch
    • Relation Property for Base Context Class: Project
    • Relation Property for Source Class: Object
    • Selection-Based Operation Context/Source: System

Detach

This type of generic operation removes the relation between two objects A and B. The objects A and B can be of different object classes or of the same object class. Examples are the assignments of applications to application groups or the assignment of other applications groups to an application group as subordinate objects.

When creating a relation, there needs to be an object class property in one of the object classes for storing the relation. The object class property must be of the type Reference or ReferenceArray . Which object classes are allowed as reference targets is defined in the Type Info attribute of the object class property.

Typically, this generic operation is used for display in data workbenches of object class B embedded in a content area of object class A. The data workbench only shows objects of object class B which are already assigned to the current object of object class A. The generic operation for the detach operation is defined for object class B.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Delete Relation.
    • Base Context Class: Select the object class for which the content area contains the data workbench for adding or detaching objects. The button will only be displayed in the data workbenches which are embedded or opened from the content area of an object of the selected object class.
    • Source Class: Select the object class of the objects displayed in the data workbench. This is the object class you are defining the operation for.
    • Relation Class: The object class with the object class property storing the relation. This can be either the source or the base object class.
    • Relation Property: The object class property of the Relation Class storing the relation.
    • Confirm Message: Optionally you can define a text that will then be displayed to the user clicking the button in a pop-up window. The operation will only be executed if the user confirms the message.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

The content area of an application group shall include a data workbench for applications that includes only applications which are currently assigned to the application group. The user shall be able to add applications to the application group and detach applications from the application group via the content area.

Please note that this example is based on standard operations which are already available in the standard class model. This is only an example, and you can view the required configuration for the buttons in the standard class model. The button definitions in the example are not required for this example, but for any customized configuration.

You need to do the following for a complete customized configuration:

Detach for complex relations

This type of generic operation the relation of an object B to an object A if the connection os established via an intermediate object class C which is storing the relation between the objects instead of the relations table. Examples are the assignments of demands to applications via the DemandArch object class or the assignment of applications to a project as project architecture via the ProjectArch object class.

You can create generic operations for complex relationships handled via a defined set of intermediate object classes only:

  • ProjectArch storing the relation between projects and the objects which are part of the project architecture.
  • DemandArch storing the relation between demands and the architecture objects affected by the demand.
  • ValueNodeArch storing the relation between value nodes and the architecture objects impacted by the value node.
  • ITPolicyArch storing the relation between the policy and the architecture elements that implement the policy.
  • VMMeasureTypeArch storing the relation between the measure type and the architecture element the measurement is associated with.
  • ProjectBucketAllocation, an allocation rule that describes how the costs defined for a project should be allocated to its associated buckets.
  • BusinessDataUsage, describing whether business data is created, read, updated, deleted, or processed in the context of an object.
  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Delete Complex Relation.
    • Base Context Class: Select an object class or object class tereotype to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class. The base context class is the object class the relation is defined for.
    • Target Class: Select the intermediate object class establishing the relation.
    • Source Class: Select the object class or object class stereotype of the object that shall be assigned to an object of the Base Context Class. This is the object class the operation is defined for or an object class stereotype thereof.
    • Relation Class: Select the intermediate object class establishing the relation.
    • Relation Property for Base Context Class: Select the object class property of the intermediate object class storing the relation to the Base Context Class.
    • Relation Property for Source Class: Select the object class property of the intermediate object class storing the relation to the Source Class.
    • Confirm Message: Optionally you can define a text that will then be displayed to the user clicking the button in a pop-up window. The operation will only be executed if the user confirms the message.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

The content area of a project shall include a data workbench for applications that includes only applications which are currently assigned to the project as project architecture. The user shall be able to add applications to the project and detach applications from the project via the content area.

You need to do the following for a complete customized configuration:

  • Create a data workbench for applications which only list applications that are assigned as project architecture to the project the user currently works with. The query of the data workbench must refer to the project with the @BASE parameter. The relation is a reference array and stored in the PROJECT_ARCH table:
    • SELECT DISTINCT app.REFSTR, app.NAME, app.VERSION
    • FROM APPLICATION app
    • INNER JOIN PROJECT_ARCH pa ON pa.OBJECT = app.REFSTR
    • WHERE pa.PROJECT = @BASE
  • Add the data workbench to the content area for projects.
  • Add a generic operation for detaching applications from the project and optionally a generic operation for creating new applications for the project architecture to the generic operations of the object class Application.
  • Add a button to add existing applications with the following settings for the operation relevant attributes:
    • Type: Delete Complex Relation.
    • Base Context Class: Project
    • Target Class: ProjectArch
    • Source Class: Application
    • Relation Class: ProjectArch
    • Relation Property for Base Context Class: Project
    • Relation Property for Source Class: Object
    • Object-Based Operation Context/Enabled: Disabled
    • Selection-Based Operation Context/Source: Multiple

Create and add

This type of generic operation creates an object B and at the same time assigns it to an object A. The objects A and B can be of different object classes or of the same object class. Examples are the assignments of applications to application groups or the assignment of other applications groups to an application group as subordinate objects.

When creating a relation, there needs to be an object class property in one of the object classes for storing the relation. The object class property must be of the type Reference or ReferenceArray . Which object classes are allowed as reference targets is defined in the Type Info attribute of the object class property.

The generic create and add operation is displayed as a sub-menu item of the New button. When a user clicks the menu option, the editor for selection of a new object opens.

Typically, this generic operation is used for display in data workbenches of object class B embedded in a content area of object class A. The data workbench only shows objects of object class B which are already assigned to the current object of object class A. The generic operation for the create and add operation is defined for object class B.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Create And Add Relation.
    • Base Context Class: Select the object class for which the content area contains the data workbench for adding or detaching objects. The button will only be displayed in the data workbenches which are embedded or opened from the content area of an object of the selected object class.
    • Target Class: Select the object class for which an object is created. This is the object class you are defining the operation for.
    • Source Class: Select the object class of the objects displayed in the data workbench. This is the object class you are defining the operation for.
    • Relation Class: The object class with the object class property storing the relation. This can be either the source or the base object class.
    • Relation Property: The object class property of the Relation Class storing the relation.
    •  Relation Type: Select From Related Object to Base Object if the object class property establishing the relation belongs to the object class for which an object is created. Select From Base Object to Related Object if the object class property establishing the relation belongs to the base object class.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

The content area of an application group shall include a data workbench for applications that includes only applications which are currently assigned to the application group. The user shall be able to add applications to the application group and detach applications from the application group via the content area.

Please note that this example is based on standard operations which are already available in the standard class model. This is only an example, and you can view the required configuration for the buttons in the standard class model. The button definitions in the example are not required for this example, but for any customized configuration.

Typically, this generic operation is used for display in data workbenches of object class B embedded in a content area of object class A. The data workbench only shows objects of object class B which are already assigned to the current object of object class A. The generic operation for adding new objects of object class B and assigning them to object class A is defined for object class B.

You need to do the following for a complete customized configuration:

  • Create a data workbench for a single object class for applications which only list applications defined for the application group the user currently works with. The query of the data workbench must refer to the application group with the @BASE parameter. The relation is a reference array and stored in the RELATIONS table:
    • SELECT DISTINCT app.REFSTR, app.NAME, app.VERSION
    • FROM APPLICATION app
    • INNER JOIN RELATIONS rel ON rel.TOREF = app.REFSTR AND rel.PROPERTY = 'Applications'
    • WHERE rel.FROMREF = @BASE
    • ORDER BY 2, 3
  • Add the data workbench to the content area for application groups.
  • Add a generic operation for detaching applications from the application group and optionally a generic operation for adding an existing object to the generic operations of the object class Application.
  • Add a button for adding existing applications with the following settings for the operation relevant attributes:
    • Type: Create And Add Relation.
    • Base Context Class: ApplicationGroup
    • Source Class: Application
    • Target Class: Application
    • Relation Class: Application
    • Relation Property: ApplicationGroups
    • Selection-Based Operation Context/Source: System

Create and add via an indirect relation

This type of generic operation creates an object B and at the same time assigns it to an object A via an intermediate object class C which is storing the relation between the objects instead of the relations table. Examples are the assignments of demands to applications via the DemandArch object class or the assignment of applications to a project as project architecture via the ProjectArch object class.

You can create generic operations for complex relationships handled via a defined set of intermediate object classes only:

  • ProjectArch storing the relation between projects and the objects which are part of the project architecture.
  • DemandArch storing the relation between demands and the architecture objects affected by the demand.
  • ValueNodeArch storing the relation between value nodes and the architecture objects impacted by the value node.
  • ITPolicyArch storing the relation between the policy and the architecture elements that implement the policy.
  • VMMeasureTypeArch storing the relation between the measure type and the architecture element the measurement is associated with.
  • ProjectBucketAllocation, an allocation rule that describes how the costs defined for a project should be allocated to its associated buckets.
  • BusinessDataUsage, describing whether business data is created, read, updated, deleted, or processed in the context of an object.

The generic create and add operation is displayed as a sub-menu item of the New button. When a user clicks the menu option, a selector opens to select an existing object.

Typically, this generic operation is used for display in data workbenches of object class B embedded in a content area of object class A. The data workbench only shows objects of object class B which are already assigned to the current object of object class A. The generic operation for the create and add operation is defined for object class B.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Create And Add Complex Relation.
    • Base Context Class: Select the object class for which the content area contains the data workbench for adding or detaching objects. The button will only be displayed in the data workbenches which are embedded or opened from the content area of an object of the selected object class.
    • Target Class: Select the object class or object class stereotype for which an object is created. This is the object class you are defining the operation for.
    • Source Class: Select the intermediate object class storing the relation.
    • Relation Class: Select the intermediate object class storing the relation.
    • Relation Property for Base Context Class: Select the object class property of the intermediate object class storing the relation to the Base Context Class.
    • Relation Property for Source Class: Select the object class property of the intermediate object class storing the relation to the Target Class.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

The content area of a project shall include a data workbench for applications that includes only applications which are currently assigned to the project as project architecture. The user shall be able to add applications to the project and detach applications from the project via the content area.

You need to do the following for a complete customized configuration:

  • Create a data workbench for applications which only list applications that are assigned as project architecture to the project the user currently works with. The query of the data workbench must refer to the project with the @BASE parameter. The relation is a reference array and stored in the PROJECT_ARCH table:
    • SELECT DISTINCT app.REFSTR, app.NAME, app.VERSION
    • FROM APPLICATION app
    • INNER JOIN PROJECT_ARCH pa ON pa.OBJECT = app.REFSTR
    • WHERE pa.PROJECT = @BASE
  • Add the data workbench to the content area for projects.
  • Add a generic operation for detaching applications from the project and optionally a generic operation for Create and add via an indirect relation to the generic operations of the object class Application.
  • Add a generic operation to the object class Application to add existing applications to a project. The following settings are relevant for the definition of the functionality of the operation:
    • Type: Create And Add Complex Relation.
    • Base Context Class: Project
    • Target Class: Application
    • Source Class: ProjectArch
    • Relation Class: ProjectArch
    • Relation Property for Base Context Class: Project
    • Relation Property for Source Class: Object
    • Selection-Based Operation Context/Source: System

Navigate

This type of generic operation creates a button for opening either a data workbench, a business function, a report, or a standard view.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Navigate.
    • Parameter: Open the editor of the attribute , select the target type and select a navigation target in the Source Object list.
    • Confirm Message: Optionally you can define a text that will then be displayed to the user clicking the button in a pop-up window. The operation will only be executed if the user confirms the message.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

Open a wizard

This generic operation opens a wizard to edit an existing object.

You have defined a wizard for the object class.

This kind of generic operation is implemented for backward compatibility. If you have defined a wizard in an Alfabet 10 version, you can use this generic operation to open the already existing wizard. It is recommended to substitute the wizard with the new data entry views. You should not create a wizard when configuring Alfabet 11.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select WizardEdit.
    •  Source Class: Select the object class you are defining the generic operation for. This is the object class for which objects will be edited.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

Start a workflow

This type of generic operation starts a workflow either independent of a selected object or with a selected object as base object.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Start New Workflow.
    • Parameter: Select the workflow template in the drop-down list.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

    • Access in User Interface: Select Access to make the button visible in the user interface and NoAccess to hide the button. If the button shall only be available in a single user profile, you can set it to NoAccess in the object class model and change this setting in the class settings of the object class assigned to the user profile only.
    • Base Context Class: Optionally, select an object class to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class.
    • Object-Based Operation Context/Enabled: Select Enabled if you want the button to be visible in the content area of the object class the generic operation is defined for.
    • Selection-Based Operation Context/Source: Select Single if the workflow shall be started for an object selected in the data workbench as base object. The button will only be active in data workbenches if a single object has been selected. Select System if the workflow shall be started without a base object selection. The button will always be active. Alternatively, you can select Disabled to deactivate the button in data workbenches.
    • Button Location: Select MainToolbar to force display of the button in the main toolbar. Select MoreGroup to move the button to the three-dots menu. Select NoPreference to locate the button in the main toolbar, if the required space is available and otherwise move it to the three-dots menu.

Start ADIF job

This type of generic operation starts an ADIF job asynchronously.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Execute ADIF Scheme.
    • Parameter: Select the ADIF scheme that shall be executed.
    • Arguments: If you need to set parameters for the execution of the ADIF scheme, enter a list of parameter name and value pairs with the following syntax:
      • parameterName1=parameterValue1, parameterName2= parameterValue2

      ADIF parameter names always start with an @ which needs to be included in the name specification:

      • @lastupdate=09/06/2025, @orga=ITGroup

      You can use the following Alfabet query parameters in the parameter specification as value of an ADIF parameter to refer to the object the user is currently working with or selected:

      • @BaseParameter=@BASE: Returns the REFSTR of the object the content area is opened for. If a data workbench is embedded in a content area, this information is also available when starting the generic operation from the embedded data workbench.
      • @SelectionParameter= @SELECTION: Returns the REFSTR of the object selected in a data workbench. If multiple objects are selected, a comma separated list of REFSTR values is returned.

      Specification of both parameters will look like this:

      • @BaseParameter=@BASE, @SelectionParameter =@SELECTION
    • Confirm Message: Optionally you can define a text that will then be displayed to the user clicking the button in a pop-up window. The operation will only be executed if the user confirms the message.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

    • Access in User Interface: Select Access to make the button visible in the user interface and NoAccess to hide the button. If the button shall only be available in a single user profile, you can set it to NoAccess in the object class model and change this setting in the class settings of the object class assigned to the user profile only.
    • Base Context Class: Optionally, select an object class to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class.
    • Object-Based Operation Context/Enabled: Select Enabled if you want the button to be visible in the content area of the object class the generic operation is defined for.
    • Selection-Based Operation Context/Source: Select System . Alternatively, you can select Disabled to deactivate the button in data workbenches.
    • Button Location: Select MainToolbar to force display of the button in the main toolbar. Select MoreGroup to move the button to the three-dots menu. Select NoPreference to locate the button in the main toolbar, if the required space is available and otherwise move it to the three-dots menu.

Trigger event

This type of generic operation triggers an event asynchronously.

Currently, an object selected in the data workbench or the object for which the content area is displayed, are not handed over as base object to an event. Therefore, generic operations can only be added for starting events independent of a base object selection.

  1. Go to the Meta-Model tab in Alfabet Expand.
  2. Expand the node of the object class you want to add the operation to.
  3. Right-click the Generic Operations node and select Add New Operation.
  4. Click the new operation and set the attributes:

    Attributes for performing the operation

    • Name: Enter a technical name for the generic operation.
    • Transaction: Leave this setting as is.
    • Type: Select Trigger Event.
    • Parameter: Select the event that shall be executed.
    • Confirm Message: Optionally you can define a text that will then be displayed to the user clicking the button in a pop-up window. The operation will only be executed if the user confirms the message.

    Attributes for designing the button

    • Caption: Enter a text that shall be displayed as button caption on the user interface.
    • Icon: If you want an icon to be displayed in front of the button caption, select the icon from the icon gallery.

    Attributes defining button availability

    • Access in User Interface: Select Access to make the button visible in the user interface and NoAccess to hide the button. If the button shall only be available in a single user profile, you can set it to NoAccess in the object class model and change this setting in the class settings of the object class assigned to the user profile only.
    • Base Context Class: Optionally, select an object class to limit the availability of the button to data workbenches which are embedded or opened from the content area of an object of the selected object class.
    • Object-Based Operation Context/Enabled: Select Enabled if you want the button to be visible in the content area of the object class the generic operation is defined for.
    • Selection-Based Operation Context/Source: Select System if the button shall always be active in data workbenches. Alternatively, you can select Disabled to deactivate the button in data workbenches.