App Extension Framework
Neptune apps can be extended, allowing for the creation of new apps to build upon an existing base app. Whenever updates are made to the base app, all the extension apps associated with it will automatically inherit the new changes.
Creating an Extension App
In the dialog to create a new Neptune application, select the type "Extension", and select a base application. Only apps of type "Application" can be used as a base application.
The application settings will be copied from the base app. It will not be possible to change the application type or the base application after creation.
Opening an Extension App
In the Application selection dialog, select "Extension" in the application type dropdown in order to see existing extension apps. Then click the line to open one, or the change icon on the corresponding line to open one in change mode.
Settings page
There are three additional settings that relate to the extension app:
-
Use Header in Base application
-
Use Stylesheet in Base application
-
Use Global Script in Base application
When set, the corresponding header, stylesheet or global script from the base app will be loaded at runtime, and any content in them in the extension app will be appended at the end.
When un-set, only content in the extension app will be loaded at runtime.
Designer page
In the application tree, objects in the base app are displayed in a dimmed color. Attributes and code in these objects can be viewed but not edited.
In order to perform extension operations on an object, right click and use the Extension context menu.
Changing an object
By using "Change" from the context menu of an object, a new object is created in the extension app which will override the one in the base app, including attributes and scripts. In the object tree, such an object will not be dimmed and the object and attributes will be editable.
If you want to display the original object, you can use "Display base object" from the context menu.
If you want to cancel your changes and revert to the object of the base app, use "Undo" from the context menu.
Deleting an object
By using "Delete" from the context menu of an object, the extension app will not include this object at runtime. In the object tree, such an object will be marked in a yellow color.
If you want to cancel the deletion, use "Undo" from the context menu.
Adding objects
To add new objects in an extension app, create an extension spot by selecting "Add above", "Add inside" or "Add below" from the context menu. The object in the base app that is selected for this will be the anchor for the extension object, and "above", "inside" or "below" will determine the relative position of the extensions. It is possible to add multiple extension objects to the same base object.
Doing this will add an Extension object, and inside this you can drag and drop the required objects you want to add.
Data Flow page
The application flow will correspond to the runtime equivalent of the base app including extensions
Version Management page
The version management will have a stored state of both the base app and any extensions as it looked at the time of the version being saved. That is why the version management will indicate changes to both base app and extensions since that time, even though any base app changes would have had immediate runtime effect in the meantime.
In order to safely track base app changes, and possibly avoid unnecessary extensions following base app updates, the tree will show diffs in both base app objects and extension objects. Additionally, for fields that have been changed or deleted in the extension, both the base object and the extension object will be available in the trees.
Objects belonging to the base app will be annotated with "(Base object)", extended objects will be annotated with either "(Extension change)" or "(Extension delete)".
i18n Page
Only i18n attributes belonging to the extension app itself will be available here. Should a i18n text of the base app be in need of a change, the enhancement concept can be used in the i18n Cockpit app.
At runtime, the extension app will have access to both i18n attributes from the base app and the extension app.