Miscellaneous
How to re-use configurations
On certain occasions you may want to integrate all or parts of configurations of other systems into your system to re-use the definitions of business objects, business rules and other elements. For example, you might want to integrate certain aspects of sample applications into your system. To do this:
- Create a business space representing the system you want to re-use – see the “Adding/Editing Business Spaces” section.
- Import the configuration you want to re-use from a BSV file – see the “Importing Business Space Version” section.
- Make the necessary adjustments to the copied elements if required.
- Check integrity of the version to make sure that it remains consistent – see the “Checking Version Integrity” section.
How to import/export data
This is explained in detail in the “Export and Import” section.
How to define import/export templates to map data
You can get end users to define their own import and export templates that describe data mapping between their data files and AwareIM attributes. For this you need to add the command of the “Manage Import/Export Templates” type to your menu.
This video tutorial explains how to define import and export templates for mapping data to be imported and exported into AwareIM.
How to set up periodic processes
If you want the system to perform certain actions periodically without any user interaction (for example, regularly delete temporary records) then you need to configure scheduling rules – see the “Scheduling” section for details.
If you want periodic actions that involve interaction with the user (for example, to periodically inform the user about important events in the system) then you need to setup a “background process”. To do this define a process to perform the work, go to the General tab of the corresponding visual perspective and setup this process as a background process.
How to extend AwareIM
If you are a programmer then you can easily write programming components that can extend the functionality of your AwareIM system – for example, you can plug-in new functions, new document types, new communication channels etc. See the Programmers Reference Guide document for details.
How to get users to define their own workflows
| Sometimes developers who configure applications cannot predict how their customers will use the system – some of them may have unique requirements, which change dynamically. By letting end users define their own workflows developers can make the system extra flexible. In order to get users to define their own workflows the configurator has to add the command of the “Manage User Defined Processes” to the application menu. There are also other types of commands that can be useful for this module, such as Configure User Defined Processes, Manage Events and a few others. |
This video tutorial explains how to get the end users to define their own workflows. |
How to support offline mode
| “Offline mode” is when users work with an application without Internet connection. |
This video tutorial describes how to support working offline with automatic server synchronization |
How to count web site visitors
Whenever a new user logs into the system AwareIM sends the special login notification; whenever a user logs out AwareIM sends the logout notification. You can attach rules to these notifications to track the activity on your web site (see the “Handling Login Events” and “Handling Logout Events” sections). For example, you can define a business object representing the statistics of your web site and define attributes in this object that will count the number of current users, the number of visitors etc. The rules attached to the login and logout notifications will set the values of these attributes accordingly.
How to create applications in different languages
This is explained in the “Creating applications in different languages” section. Here is a summary:
- If you want to run AwareIM applications in a single non-English language (or a variation of the English language) you need to do the following:
- Define your configuration strings (attribute labels, messages used in
DISPLAY MESSAGEorREPORT ERRORrules etc) using the language of your choice - Define a locale. When creating a locale AwareIM will automatically extract all your configuration strings and if you defined them in the language of your choice you don’t need to translate them
- Import system strings from a file (if a file exists for your language)
- Translate the remaining system strings by clicking on the “Translation” column in the locale editor
- Mark the locale as “default”
- If you want to run AwareIM applications in multiple languages you need to do the following:
- Define a locale for every language you want to use. Provide the translation for your configuration and system strings for every language
- Define a rule attached to your user object (either
RegularUseror some other member of theSystemUsergroup) to assign an appropriate locale to the user, for example:
IF RegularUser.Country = 'Germany' THEN RegularUser.Locale = 'German'
This video tutorial explains how to create applications for different languages and cultures. It also explains how to create applications with right-to-left layout (RTL).
How to automatically deploy an application when a new tenant signs up
Many applications are hosted on a server for multiple tenants. Each tenant has his own business space and the same application is deployed into each business space. When a new tenant signs up online the system needs to create a new business space for the new tenant, load the BSV file containing the configuration of the application and publish this BSV (and maybe perform some additional steps, for example send an email to the new tenant. This section explains how this can be done.
The signup web page has to be implemented outside of AwareIM – it can be any HTML page hosted on any server. This page has to collect relevant details of the new tenant and when the tenant submits the page, the page has to call the server hosting AwareIM applications using the following URL:
http(s)://ServerName:ServerPort/AwareIM/req.awcbs?Parameters
In this URL Parameters identify parameters of the request – they are separated by the “&” delimiter. Each parameter has the following format:
paramName=paramValue
Allowed parameter names are specified below:
- domain – this parameter specifies the name of the new business space to create. This parameter is mandatory.
- bsv – this parameter specifies the path on the server to the BSV file that will be deployed into the new business space. The parameter is mandatory
- domain_start – this parameter specifies the name of the “initial business space”. This business space should not be used to deploy an application – it should contain just one published version (of any content). A business space that is created when AwareIM is initially installed on the server can be used for these purposes. This parameter is mandatory
- init_process – this is an optional parameter. If specified it defines the name of the process that will be called after the BSV has been published in the new business space. The process can be useful to register user data collected by the web page (user name, company name, address etc). The process can also send an email to the user.
- object_name – this optional parameter can be used together with the init_process parameter. If specified the system will create an instance of the business object with the specified name and initialise it with extra parameters defined in the request (see below). This will be done just before the init_process is executed. It will then pass this instance as a process input to the process (the process should have this object declared as process input)
- Other parameters – if there are any other parameters in the request and the object_name parameter is specified, these parameters will be used as initialisation values for the instance of the object created. paramName should map to the name of the attribute defined in the object and paramValue will be set into this attribute when the object is created.
Here is an example of the request:
This will create a new business space called IBM, load the BSV file from c:/AppDir/app.bsv, publish it, create an instance of the object SignupRequest and set its CompanyName, EmailAddress, Address and PhoneNo attributes and then call the InitApp process
How to optimise application for best performance
Out-of-the-box AwareIM offers a pretty good performance for many applications. However, it does not mean that you should always rely on AwareIM to deliver the best performance. A lot depends on how you write your application as well. The following areas are important when you write an application:
- Performance of business rules
- Performance of queries
- How quickly each request from the user is processed in your system
Below are some recommendations on how to improve performance in each of these areas:
- Check the Log Viewer for the execution of rules that refer to the object (cross reference rules). These may be expensive. Execution of many of them may be unnecessary. Turn them off by going to the Advanced tab of the rule and ticking “Do not check referred”
- Aggregate operations (
SUM,COUNTetc) can be expensive if you have lots of data. Try not to use them if you can - Unconditional rules can be expensive (especially if they use aggregate operations). Make them conditional (using
WAS CHANGEDexpression, for example) - Check for repetitive execution of rules. The rule engine can execute rules repetitively if the next rule triggers a condition that causes the previous rule to fire again. Optimise this carefully. Use rule priorities to make sure that expensive rules are only executed once
- If you need to support many concurrent users make sure that there are no CPU-extensive operations in your application. Or make sure that the CPU-extensive operations are executed at night or by a separate server.
- Add additional servers to scale up your system if necessary (AwareIM supports scaling and load balancing)