Skip to main content
Skip table of contents

Modules, Pages and Hierarchy

A P4 application isn’t a single monolith - it’s part of a multi-application ecosystem.
At the top, users enter through the Application Hub, which serves as a portal to several sub-applications (Production Control, Configuration Studio, Maintenance Terminal, and others).
Each sub-application then defines its own internal hierarchy of modules and pages, which together form the navigational skeleton of that application.

This layered model allows implementers to design complete software suites - multiple independent applications, each with their own structure, logic, and branding - all running on one platform.

  • Application Structure - přidání hierarchické struktury

Hierarchical Model

Level 1 – Application Hub (Portal / Workspace)
The Hub is the entry point.
It aggregates multiple applications into one visual dashboard, where each tile represents a distinct Application.

image-20251024-111153.png


Each tile can have its own icon, label, and access rule (so different users see different sets of applications).

Purpose

  • Provides a central access point for all P4 applications.

  • Manages high-level visibility and role-based access to sub-applications.

  • Defines the overall branding and environment context (tenant, theme, etc.).


Level 2 – Application (Sub-Application / Solution)
An Application represents a complete, self-contained context - e.g., Production Control, Maintenance Shop Floor, or Factory Cockpit.
Each one contains its own Application Structure, which defines its internal Modules and Pages.

Properties

  • Application ID, Name, Icon, Description

  • Default landing module or page

  • Role mapping and access control

  • Optional parameters (branding, theme, locale)


Level 3 – Module (Functional Area)
Inside an application, modules divide functionality into logical areas - such as Operators, Reports, Assets, or Team Management.
Modules are represented in the left-hand navigation (sidebar) and define the contextual frame for their child pages.

image-20251024-111445.png

Purpose

  • Organize related pages under one domain.

  • Define navigation hierarchy and default entry point.

  • Provide data or visibility context that applies to all its pages.

Key attributes

  • ID, Name, Icon, Order

  • Parent Module (optional, for nested hierarchies)

  • Visibility Rules (based on role, site, or conditions)

  • Default Page reference

Modules don’t define UI directly - they exist to group and route to Pages.


Level 4 – Page (Routable View)
Pages are the interactive, navigable screens within a module.
Each Page binds a Layout (from the Layout Layer) and provides the runtime context for its widgets and flows.

Page attributes

  • Route (e.g. /maintenance/work-orders/:id)

  • Layout reference

  • Title, description (for breadcrumbs and menu labels)

  • Parameters (path/query variables passed to flows and layouts)

  • Visibility & access rules

  • Cache policy

When a Page loads, its Layout initializes, onLoad flows run, and widgets render data into the interface.


Example Hierarchy

CODE
Application Hub
  ├─ Production Control
  │    ├─ Operators
  │    │     ├─ Overview (/production/operators)
  │    │     └─ Detail   (/production/operators/:id)
  │    └─ Reports
  │          └─ KPI Dashboard (/production/reports/kpi)
  ├─ Maintenance Shop Floor
  │    ├─ Assets (/maintenance/assets)
  │    └─ Work Orders (/maintenance/work-orders)
  └─ Configuration Studio (admin-only)

Each top-level Application in the Hub is completely autonomous, yet shares the same runtime and platform services (user session, localization, theming, etc.).


Context and Propagation

Context flows naturally down the hierarchy:
Hub → Application → Module → Page

  • Access and visibility settings cascade downwards.

  • Route parameters and variables are passed from parent levels.

  • Each Page inherits application-level context (site, user, language) while keeping its own scope for flows and data.

This design ensures consistency between applications while preserving independence.


Design Guidelines

  • Treat each Application as an autonomous product area - with its own navigation, branding, and ACL.

  • Keep Modules shallow and clearly defined; they are categories, not mini-apps.

  • Use semantic routes for readability and integration (e.g. /production/orders/:id).

  • Reuse Layouts across multiple Pages or even across Applications when patterns match.

  • Always define a default Page for each Module and Application.

  • Let the Hub control user access to entire Applications; don’t replicate global visibility rules inside sub-applications.


Summary

The hierarchy in P4 can be visualized as:

Application Hub (Portal)
Applications (Sub-Apps / Solutions)
Modules (Functional Areas)
Pages (Routable Views / Layouts)

This model balances scalability and clarity: one platform can host dozens of modular applications, all governed by a consistent logic - yet each can evolve, deploy, and be secured independently.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.