Related links
Framework Core functionality
- AyMINE Framework Server
- Configuration of the user-defined fields
- Client-Defined attributes
- Default server methods
- Strings and translations
- User sessions
- Import collection of objects
- Multi tenant Architecture
- The AyMINE licence model
- Export collection of objects
- System messaging
- System Rights
- File Management with End-to-End Encryption
- Server configuration for large files
SOA Architecture
Support for Service Object Architecture and Internal Event ManagementModule - support for management
Front-End Scripting
System Management
- SaaS Management Module
- Management of the SaaS service client
- Encryted wallet storing access keys for data vault
- Definition and Management users in the SaaS system
- Management of the system users
- System right management
- System role is how user administrator sets the rights
- File access, storing and locking
- Communication geateways
- Private Object Marks, Sign & Notes
Task Management Module
- About TSK module
- Support for voting and decision management
- Support and implementation notes for FMEA
- Support for the Methodology Management
- Project Methodology Support
- Project Roles - Data model and implementation notes
- Actions and Meeting Agenda
- Description of person and supplier competencies
- Business event
- Problem & Helpdesk management support
- TSK module releases
- User Reminder
Task & Task pattern
Mobile & Web Application
- Client-Side Scripting using API
- Application Object Structure
- Clipborad Link - Cliplink
- fclip
- drag-drop
- AyMINE Application
- objectdefinition_inlineedit
- clientprogramming
- mobileapplication
- languagesupport
- objectdefinition_multiupdate
- Object API – object <g>
- clientprogramming_fevallanguage
- clientprogramming_fevaluser
- objectdefinition_viewdefinition
- offlineobjects
- System console
- Runtime debugging
- objectdefinition_detailview
CMS - Content Management & Web API services
FI - Finance Management
CRM - Customer-Relationship Management
Sales & Asset management
Sales related services
Description of a part of the AM module - sales partHR - Human Resources
Definition of the record list or detail
- Compare JavaScript vs Template UI definition
- Advantages
- Disadvantages
- Build up special dialog as a descendant of universal dialog.
- Manage database-loaded values
- Overwrite default detail methods
- Change behaviour – operButtons method
- Examples
Compare JavaScript vs Template UI definition
Client application supports object-specific description of the UI interface. For record (object) detail view, proprietary detail can be built from scratch or as a descendant of the abstract universal detail class `fUnivDetail class`. Class is created as a standalone java script library that can be dynamically linked when user opens the detail but it can also be linked statically which makes application significantly faster
Before creating special detail view definition, consider advantages and disadvantages.
Advantages
- More control over the content.
- Support for better dynamical behaviour – dialog can react to the user better that universal dialog
- Possibility to place user element not supported by standard (e.g. dynamical charts)
Disadvantages
- Each changes requires application update
- Cannot be loaded to the mobile application without rebuild
- Make the application management more complicated
Remember:
Do not create implemented view when it is not needed. Universal dialogs have many possibilities:
- Each dialog might use its own styles.
- Even universal detail might update its content in response to the user
- Universal detail might implement sophisticated controls over the input data controls.
- Detail can contain clips with proprietary attributes and full html control of the content
Recommendation:
AyMINE Business have over 200 objects and there is less than 10 JS implementations of the view. All other views uses directly universal objects and modify behaviour using the view description in the definition object.
Build up special dialog as a descendant of universal dialog.
Half-way for the self-defied view is the detail derived from the universal detail. Universal detail supports descendant during data loading and saving:
Internal attributes
- Attributes from detail could be marked is internal
"showHint":{"type":"bool","source":"internal"},
Internal attributes are not managed by server. At the client side, univDetail class calls method
protected setInternalAttrVal(attr: detailAttr): void
for each internal attribute. Method should set that attribute value. Value is than managed in the same ways as the values loaded from server.
During save for each internal attributes is called method
protected saveChanges_internalItem(attr: detailAttr)
Method gots the attribute with new value. And could manage its own control of that.
Manage database-loaded values
For each attribute stored by server, univDetails calls method
protected saveChanges_objectItem(attr: detailAttr)
Overwrite default detail methods
Change save – saveChanges method
Descendant can use value or even modify before save.
Descendant can also override the method protected saveChanges() and make its own controls or operations before save. It can e.g. stop saving (do not call super method) and request user to make modifications or call its own method to save data.
Change behaviour – operButtons method
Method can implement its own operation. Buttons can be defined by the object definition including all buttons / operation details but page can manage its own behaviour. It can get full control over the system reaction and the button processing.
Let’s note, that calling its own method for the operation behaviour does not need the proprietary detail. Simply call the linked java script library with the method.
Examples
The AyMINE Framework – application contains two univDetail descendants
System user settings
Special view was needed because detail work with internal values that are not loaded from server – visual settings, behaviour settings. These values are stored only internally. Descendant integrated the setting dialog with application settings.
System settings also include proprietary dialog for password change. Although dialog might be implemented as a standalone dialog in the library, it was implemented together with the system dialog, because it is dynamically loaded library as well.
System role
System role has its own descendant that dynamically manages change of the tab visibility and right to access them. Functionality could be implemented without descendant with using only the universal detail functionality, however it is maintained as the simple example of the proprietary detail implementation.
Check the sysRole library for example with comments