About Multi-Components and Multi-Apps

You can include several components in an application, and several application in a package, provided that some integrity constraints are respected, to build libraries of components to be reused in different applications or to distribute applications so that they can belong to different packages.

This page discusses:

Integrity Constraints

A dedicated command checks that some defined integrity rules are respected.

Dependencies Acyclicity

  • User U1 already states that component Ca prerequires component Cx.
  • While user U2 already states that component Cy (that is already prerequired by Cx) prerequires component Cb (that itself already prerequires Ca).
  • U1 and U2 save their work without knowing about each other's tasks. A cycle has been created: Ca->Cx->Cy->Cb->Ca.

Definitions Uniqueness

In a given package (i.e. in its components), no duplication of definitions (types, dialog boxes, applications, callable user operations, …) is allowed.

Definitions Completeness

  • All dialog boxes referenced by command Starters are available
  • All dialog boxes referenced in user operations are available
  • All types referenced in user operations are available
  • All callable user operations referenced by Call user operations are available.

Life Cycle Control

Life cycle control of applicative entities is implemented, so that modifications are controlled using collaborative space roles.

Three Maturity states are imposed in Small and Medium Businesses:

  • INWORK
  • WAIT_APP"
  • SHARED"

These maturity states can be customized according to management stages for example:

  • Implement
  • Test
  • Release
  • Maintenance”: Indicates that minor fixes might be applied to applicative entity.

Recommended Methodology

You can follow the method described below .

  • Lock all applicative entities that are in the scope (package, application, or component) to be checked.
  • Start the Check command.
  • Consult the consistency errors report.
  • Fix them, if any.
  • Update the development stage attribute of the applicative entities.
  • Promote the applicative entities that have reached the desired maturity.
  • Unlock the applicative entities.