Hi,
Currently each time we import a module, it’s really tricky to ”override” the default behavior : for only 1 microflow we’d like to customize, we have to create a new module, create a new version of the microflow, redefine the roles and permissions, and then copy / paste all calling microflows, nanoflows and pages
This should be possible :
- It should be possible to right click on an imported module, choose to create a “specialization”
- In the “specialization” module, we should be able to create specialization version of entities
- Properties (access rules, validation rules, event handlers...) management :
- “Use parent” (default value)
- “Extend” : it would combine the parent definition + the new settings we set on the specialization
- “Override” : let us completely define them like a normal microflow / nanoflow
- It would not be possible to remove attributes or associations from the parent entity
- It would be possible to specialize an association :
- The properties (multiplicity, “on delete” attributes) can’t be changed
- The target entity can be set to a “specialization” version of the target entity
- In the “specialization” module, we should be able to create specialization versions of microflows and nanoflows.
- For security properties (entity access and allowed roles), it should be possible to “use parent” / “override” / “extend”
- It would not be possible to add / remove parameters
- it should be possible to change the type of Object parameters by choosing a “specialization” version of the same entity only
- Calls with the parent entity would be redirected to the parent microflow/nanoflow
- Calls with the specialization entity would be redirected to the specialization microflow/nanoflow
- It would be possible to use a new block “call parent” calling the parent microflow/nanoflow
- it would be possible to define the flow of a microflow/nanoflow without limitations just like a normal microflow/nanoflow
- Roles and permissions of a specialization module : it should be possible to “use parent” / “override” / “extend”
- When trying to upgrade the imported module, the “specialization” module would be tested for compatibility
- if there was no change in the definition of parent microflows/nanoflows, there would be no warning
- if there were changes in the parent microflow/nanoflow, Studio Pro should display warning on the “specialized” version of the microflow, in our “specialization” module
- if there were so many changes in the parent that the specialization don’t compile anymore → Studio Pro would display errors in the console
IMHO, this would solve the current weakness of Mendix on using marketplace modules, and copy/paste issues