LSPS documentation logo
LSPS Documentation
Structure of GO-BPMN Process Models

A Process Model is a sum of an executable module and all its resources including any imported modules: in PDS, it is not represented explicitly since any executable module can become a model but also be imported into other modules, potentially also executable one.

A GO-BPMN Project is by default created with the Standard Library and the modules import the library by default as well. On design time, modules can be created only in Projects. To further organize the content of projects and modules, you can create folders in Projects and Module: these are not uploaded to the server.

Project

A Project is a directory and serves only for organization of your sources: they are not influence semantics of your model and are not uploaded to the LSPS Server. If you decide to create other projects to organize your resource, by default, you will not be able to use resources from one project in another: to be able to access stuff from another Project, you need to explicitly enable the access by referencing it. We will get to referencing later. Let us create and examine a GO-BPMN project now.

Create a GO-BPMN Project

  1. In the GO-BPMN Explorer, right-click into empty space and go to New > GO-BPMN Project. In the displayed dialog below the Location field, there is the list of libraries that will be imported into the project. The only one that is required is the Standard Library: the other libraries provide additional resources you might not required.
    newProject.png
  2. Name the project and click Finish.

Module

Modules are similar to java jar files. They follow a strict structure and have dependencies, called imports. A Module must be in a Project and all resources must be encapsulated in a Module. Note that what gets uploaded to the server is a Module: a Project exist merely on design time.

A Module holds most resources: processes, variables, custom data types, queries, functions, etc. Ideally it should be a reusable self-sustainable collection of resources. When you upload a module nothing much happens: the resources are simply uploaded to a repository. However, if the Module is executable, you can then instantiate it. Marking a module as executable is basically like marking a method as main:it signalizes that this module is where your execution starts. Unlike with main, you can have multiple executable Modules in one Module. How so? You can import them into other Modules: when you run your executable module any other imported executable modules are run as well. Note that you can create folders in Projects and Module to organize your resources. Their behavior is the same as the Projects behavior: on upload, they are ignored.

Let's create an executable module:

  1. Now create a module in the project: right-click the project, go to New > GO-BPMN Module. Name it myMainExecutableModule. Make sure to leave the executable flag selected.
  2. Create another module in the project: Name it myImportedExecutableModule. Make sure to leave the executable flag selected.
  3. Let's create in both modules some global variables: right-click the module name, go to New > Variable Definition and then click OK. In the open editor, click Add and on the right, define a variable. These will serve us to check what we can access in the modules.
    variables-ms.png
  4. In a global variable in myMainModule, try to use the variable from the importedModule: you will end up with a validation error, that no such entity is available.
    variableNA.png
    To solve this problem, import the importedModule into myMainExecutableModule.
  5. In the GO-BPMN Explorer, double-click the Module Imports node in myMainExecutableModule.
  6. In the dialog box, click Add and double-click myImportedModule.
    importingModule.png
  7. Watch your reference problem go away: the resources of the importedModule are now available in the myMainModule.
  8. You can visualize module dependencies in the Module Dependency View: on the main menu, click Window > Show View > Module Dependency View.

Task: Create a Project

Create another GO-BPMN Project with a Module and import the myMainExecutable module into your new module: you will need to reference the project.