Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| docs:3400_how_to:1100_miscellaneous [2022/08/25 07:00] – ↷ Page moved and renamed from docs:3400_how_to:1100_miscellaneous:0000_start to docs:3400_how_to:1100_miscellaneous administrator | docs:3400_how_to:1100_miscellaneous [2026/02/04 06:01] (current) – aware_support3 | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| {{simplenavi> | {{simplenavi> | ||
| + | |||
| + | < | ||
| + | <panel type=" | ||
| + | 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 “[[docs: | ||
| + | - Import the configuration you want to re-use from a BSV file – see the “[[docs: | ||
| + | - Copy and paste the elements you want to re-use into your system (see the “[[docs: | ||
| + | - Make the necessary adjustments to the copied elements if required. | ||
| + | - Check integrity of the version to make sure that it remains consistent – see the “[[docs: | ||
| + | </ | ||
| + | <panel type=" | ||
| + | |||
| + | This is explained in detail in the “[[docs: | ||
| + | |||
| + | </ | ||
| + | |||
| + | <panel type=" | ||
| + | You can get end users to define their own import and export templates that describe data mapping between their data files and // | ||
| + | |||
| + | See [[..: | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | <panel type=" | ||
| + | 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 “[[docs: | ||
| + | |||
| + | 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. | ||
| + | |||
| + | </ | ||
| + | <panel type=" | ||
| + | |||
| + | If you are a programmer then you can easily write programming components that can extend the functionality of your // | ||
| + | |||
| + | </ | ||
| + | |||
| + | <panel type=" | ||
| + | |Sometimes developers who configure applications cannot predict how their customers will use the system – some of them may have unique requirements, | ||
| + | |||
| + | See [[..: | ||
| + | |||
| + | </ | ||
| + | |||
| + | <panel type=" | ||
| + | < | ||
| + | |||
| + | “Offline mode” is when users work with an application without Internet connection. | ||
| + | |||
| + | See [[..: | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | </ | ||
| + | <panel type=" | ||
| + | Whenever a new user logs into the system // | ||
| + | |||
| + | </ | ||
| + | |||
| + | <panel type=" | ||
| + | This is explained in the “[[docs: | ||
| + | |||
| + | - 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 '' | ||
| + | - Define a locale. When creating a locale // | ||
| + | - 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 // | ||
| + | - 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 '' | ||
| + | <code aim>IF RegularUser.Country = ' | ||
| + | | ||
| + | See [[..: | ||
| + | |||
| + | </ | ||
| + | |||
| + | <panel type=" | ||
| + | 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:// | ||
| + | |||
| + | 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: | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | This will create a new business space called IBM, load the BSV file from '' | ||
| + | </ | ||
| + | |||
| + | <panel type=" | ||
| + | Out-of-the-box // | ||
| + | |||
| + | * 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 ('' | ||
| + | - Unconditional rules can be expensive (especially if they use aggregate operations). Make them conditional (using '' | ||
| + | - 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 find that a particular query does not perform well replace it with a stored procedure (// | ||
| + | - 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 (// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | </ | ||
| + | </ | ||