How PMX works

Within the process client, as well as workers having processes, groups have processes too. These processes control the menu items of the group and provide the functionality of the group. The default group process provides the New process, New group, Edit group and Delete group menu options and the functionality behind them.

Instead of using the default process, a process client group can retrieve a process definition from a process module, by setting the "config" connection for the group to a connection to a process module. Each group can specify a process type, which allows a process module to return different processes for different types of group. This allows a structure of groups of different types to be created within the process client. Because workers are created from group-level functions, defining the groups also controls what workers are available within the group structure. In this way, the structure and functionality presented to the user can be controlled by a process module.

Each installed instance of PMX has a module definition, in a node called "Process module definition" in the library area. The module definition links to one or more group profiles. Each group profile defines the process for one type of group within the process client. The group profile also defines options for new groups, such as the icons and colours that they should use.

Rather than define the group process directly, the group profile builds the group process, menus and associated functionality from one or more components. Components are a type of node that can define parts of a processes, and which can be combined automatically to create the overall group process. This means you do not have to manually figure out the group process or write code to integrate the components. There are many different types of component, which are described in PMX components. Group functionality, and thus the module functionality, is defined simply by creating components and attaching them to group profiles.

The same automatic build is used to create a process that runs within the process module itself, known as the "control process". This provides the functionality required within the process module to respond to requests made from the process client.

To recap, PMX works by listing in a module definition a series of group profiles, each of which lists one or more components. For example, a project management module might support multiple work programmes and projects within that. It might have a structure like this.

  • Module definition

    • Default profile

      • Component: Create Programme group

    • Group profile: Programme

      • Component: Create Project group

      • Component: Edit programme

      • Component: Delete programme

    • Group profile: Project

      • Component: Create Work Item process

      • Component: Create Sub-project

      • Component: Edit project

      • Component: Delete project

When the module is connected to the process client, the process client would look at the default profile, and allow the user to create a Programme group. Within the Programme group, the user can create a Project group, or edit or delete the programme. Within a Project, the user can create a work item, create a sub-project, or edit or delete the project. This means that the process module constrains the structure that the user can create within the process client, which could be used to create a project something like this:

  • Programme: New distribution centre

    • Project: Premises

      • Sub project: Warehouse design

      • Sub project: Service connections

        • Sub project: Electricity

          • Work item: define connection requirements

          • Work item: prepare tender

        • Sub project: Networking

        • Sub project: Water

    • Project: Staff

      • Work item: define staffing requirements

      • Sub project: recruit senior team

        • Work item: Recruit site manager