@@ -6,64 +6,162 @@ title: Domains
66Domains
77=======
88
9- What is a Domain?
10- -----------------
11-
12- In Simplicité, a Domain represents a menu in the user interface (UI). It allows users to navigate through
13- different parts of the application by structuring access to business objects, processes, and other functionalities.
14-
15- How to create a Domain?
16- -----------------------
17-
18- ### Creating a Domain via the Module Creation Assistant
19-
20- When creating a Module, Simplicité’s Module creation assistant includes a step to create a Domain.
21- This ensures that the Module has a visible entry in the UI menu.
22-
23- 1 . Go to Project > Module and start creating a new Module by clicking on ** Creation assistant** or from
24- the Simplicité's home page click on ** Start by creating a new module** .
25- 2 . During the process, the assistant will prompt for a menu (Domain) setup.
26- 3 . Define the Domain by specifying:
27- - Domain code – The functional key of the domain.
28- - Parent Domain (if applicable) – Allows hierarchical menus.
29- - Module name – Define the [ module] ( /make/project/module ) to which it belongs. Defaults to the one currently being created.
30- - Icon – Customizes the menu’s appearance.
31- - Order - order in the interface.
32- - Hide the home page - Domains can have Home page
33- - Description - to appear in generated documentation.
34- Complete the module setup, and the menu will be automatically created.
35-
36- ### Manually Creating a Domain
37-
38- If a Domain was not created during module setup, you can manually add it later:
39-
40- 1 . Go to Business objects > Domains.
41- 2 . Click ** Create** a new Domain.
42- 3 . ![ ] ( img/domains/domain1.png )
43- 4 . Fill in the required fields:
44- - Domain Code – The functional key of Domain object.
45- - Module name - Define the [ module] ( /make/project/module ) to which it belongs.
46- - Parent Domain (optional) – Defines a menu hierarchy.
47- - Icon - Customizes the menu’s appearance.
48- - Order - order the display of the domain in the menu.
49- - Hide the home page - No by default
50- - Home page - can be associated to a specific Home page.
51- - Description - to appear in generated documentation.
52-
53- Save the Domain and verify its appearance in the UI.
54-
55- 1 . Managing Domain Access ([ Permissions] ( /make/usersrights/permissions ) )
56-
57- Domains are only visible to users with the appropriate permissions.
58- Ensure the relevant Groups have access to the Domain.
59- ![ ] ( img/domains/domain2.png )
60-
61- 1 . Associate Objects to the Domain by clicking on ** create** in the header of Main menu list.
62-
63- The types of objects that can be included in a menu are:
64-
65- - Business object
66- - Business process
67- - Domain
68- - External object
69- - Simple view
9+ Introduction
10+ ------------
11+
12+ In Simplicité, a ** Domain** represents a menu in the user interface (UI). It structures navigation and provides access to business objects, processes,
13+ and other functionalities within the application.
14+
15+ Domains serve as the primary organizational unit for the application's menu system, allowing administrators to group related functionality and control
16+ user access through permissions. They can be organized hierarchically using parent-child relationships, enabling nested menu structures.
17+
18+ When creating a new [ Module] ( /make/project/module ) , the Module creation assistant can automatically create a Domain to ensure the module has a visible
19+ entry in the UI menu. Domains can also be created independently and associated with existing modules.
20+
21+ Features
22+ --------
23+
24+ 1 . ** Menu Organization**
25+ - Structure application navigation into logical groups
26+ - Create hierarchical menu structures via parent-child relationships
27+ - Control menu item ordering
28+
29+ 2 . ** Access Control**
30+ - Visibility controlled through [ Permissions] ( /make/usersrights/permissions )
31+ - Integration with [ Groups] ( /make/usersrights/groups ) for role-based access
32+ - Domain-level access management
33+
34+ 3 . ** Content Association**
35+ - Associate multiple object types to a Domain
36+ - Support for Business objects, Business processes, External objects, and Views
37+ - Optional Home page association
38+
39+ 4 . ** Customization**
40+ - Custom icons for visual identification
41+ - Configurable display order
42+ - Optional home page hiding
43+
44+ Configuration
45+ -------------
46+
47+ ### Configuration Fields
48+
49+ | Field | Type | Required | Description |
50+ | ----- | ---- | -------- | ----------- |
51+ | ** Domain Code** | String | Yes | Functional key (unique identifier) for the Domain |
52+ | ** Module name** | Module | Yes | The [ module] ( /make/project/module ) to which the Domain belongs |
53+ | ** Parent Domain** | Domain | No | Parent Domain for hierarchical menu structures |
54+ | ** Icon** | String | No | Icon code to customize the menu's appearance |
55+ | ** Order** | Integer | No | Display order of the Domain in the menu |
56+ | ** Hide the home page** | Boolean | No | Whether to hide the home page for this Domain |
57+ | ** Home page** | View | No | Associated [ Home page] ( /make/userinterface/views/home-page ) view |
58+ | ** Description** | String | No | Description text for generated documentation |
59+
60+ ### Field Details
61+
62+ #### Domain Code
63+
64+ - ** Purpose** : Unique functional key that identifies the Domain
65+ - ** Format** : Alphanumeric identifier following naming conventions
66+ - ** Constraints** : Must be unique across all Domains
67+ - ** Example** : ` TrnDomain ` , ` SalesDomain `
68+
69+ #### Module name
70+
71+ - ** Purpose** : Associates the Domain with a specific module
72+ - ** Behavior** : When created via Module creation assistant, defaults to the module being created
73+
74+ #### Parent Domain
75+
76+ - ** Purpose** : Creates hierarchical menu structures
77+ - ** Use Case** : Organize related Domains under a parent menu item
78+ - ** Behavior** : Child Domains appear nested under the parent in the menu
79+
80+ #### Icon
81+
82+ - ** Purpose** : Visual identifier for the Domain in the menu
83+ - ** Format** : Icon code (e.g., ` fa-home ` , ` fa-users ` )
84+ - ** Use Case** : Improve menu navigation and visual organization
85+
86+ #### Order
87+
88+ - ** Purpose** : Controls the display sequence of Domains in the menu
89+ - ** Behavior** : Lower numbers appear first
90+ - ** Use Case** : Organize menu items in a logical sequence
91+
92+ #### Hide the home page
93+
94+ - ** Purpose** : Controls whether the Domain's home page is hidden
95+ - ** Use Case** : Hide home page when Domain serves only as a container for other menu items
96+
97+ #### Home page
98+
99+ - ** Purpose** : Associates a specific [ Home page] ( /make/userinterface/views/home-page ) view with the Domain
100+ - ** Behavior** : When users navigate to the Domain, they see the associated Home page
101+ - ** Use Case** : Provide a landing page or dashboard for the Domain
102+
103+ ### Menu Content Types
104+
105+ The following object types can be associated with a Domain and appear in its menu:
106+
107+ | Object Type | Description |
108+ | ----------- | ----------- |
109+ | ** Business object** | Standard business objects with CRUD operations |
110+ | ** Business process** | Workflow and process management objects |
111+ | ** Domain** | Child Domains for hierarchical structures |
112+ | ** External object** | Custom external objects and components |
113+ | ** Simple view** | Custom views and dashboards |
114+
115+ Behavior
116+ --------
117+
118+ ### Menu Display
119+
120+ Domains appear in the application's main menu based on their configuration and user permissions. The menu structure reflects:
121+
122+ - ** Hierarchical organization** : Parent Domains contain child Domains
123+ - ** Ordering** : Domains are displayed according to their Order field
124+ - ** Visibility** : Only Domains with appropriate permissions are visible to users
125+
126+ ### Access Control
127+
128+ Domain visibility is controlled through [ Permissions] ( /make/usersrights/permissions ) . Users must have:
129+
130+ - Appropriate Group membership
131+ - Permissions granted for the Domain
132+ - Access to associated objects within the Domain
133+
134+ Domains without proper permissions are hidden from the user's menu, even if they exist in the configuration.
135+
136+ ### Object Association
137+
138+ Objects are associated with Domains through the Main menu configuration. When objects are added to a Domain:
139+
140+ - They appear as menu items under the Domain
141+ - They inherit the Domain's access control context
142+ - They can be organized and ordered within the Domain
143+
144+ ### Home Page Behavior
145+
146+ When a Domain has an associated Home page:
147+
148+ - Users navigating to the Domain see the Home page as the default view
149+ - The Home page can be hidden via the "Hide the home page" setting
150+ - Home pages can display dashboards, widgets, and other custom content
151+
152+ Related Objects
153+ ---------------
154+
155+ - ** [ Module] ( /make/project/module ) ** : Domains belong to modules and are created as part of module setup
156+ - ** [ Permissions] ( /make/usersrights/permissions ) ** : Control Domain visibility and access
157+ - ** [ Groups] ( /make/usersrights/groups ) ** : User groups determine Domain access
158+ - ** [ Home page] ( /make/userinterface/views/home-page ) ** : Can be associated with a Domain for landing pages
159+ - ** [ Business objects] ( /make/businessobjects/business-objects ) ** : Can be associated with Domains in the menu
160+ - ** [ Business process] ( /make/businessprocess/business_process ) ** : Can be associated with Domains in the menu
161+
162+ Learn More
163+ ----------
164+
165+ - [ Creating a Module Tutorial] ( /tutorial/getting-started/module ) - Step-by-step guide including Domain creation
166+ - [ Permissions Documentation] ( /make/usersrights/permissions ) - Managing Domain access control
167+ - [ Home Pages] ( /make/userinterface/views/home-page ) - Configuring Domain landing pages
0 commit comments