Skip to content

In-Depth

After understanding the basic capabilities of Informat, the in-depth stage will guide users to complete complex business development with long processes, multiple modules, and custom interaction requirements. For example, developing project management, ERP, and other comprehensive business systems.

Expressions

The expressions used by the platform adopt the JUEL standard, which is an implementation of the UEL standard, and the UEL implementation is the JSTL expression specification in J2EE development. Expression execution is divided into server-side and client-side, and context variables can be used for dynamic calculation during expression execution. In addition to basic logical calculations, the platform also provides data operations for Array (collection), Date (date), Math (mathematical calculation), String (string), User (application member), Record (data table record), Context (data context), Misc (tool set), and Encode (encoding/decoding).

Expression Capabilities

  • Collection: Creation, concatenation, element inclusion determination, summation, average, collection element retrieval, etc.
  • Date: System time, date operations, comparison calculations, etc.
  • Mathematical calculation: Absolute value, square, random, cube, rounding, etc.
  • String: Concatenation, left/right padding, interception, character replacement, etc.
  • Application member: User query, department affiliation query, etc.
  • Data table record: Record query by ID, field value, etc.
  • Data context: Get application ID, user ID, environment variable reading, permission judgment, etc.
  • Tool set: Data type conversion, call script/automation/API, SQL preprocessing, etc.
  • Encoding: MD5 calculation, URL address translation, etc.

Usage Scenarios

  • Data table permissions: Allow viewing, modifying, and deleting data when conditions are met
  • Data table fields: Conditional hiding/editing, dynamic value retrieval, etc.
  • Control permissions: Hide or disable controls when conditions are met, etc.
  • Automation: Calculate variable values based on context data, etc.
  • Module: Module name, module badge, description, etc.

Note

Therefore, ${} needs to be used to wrap parts that require logical operations, such as ${Date.sysdate()} to get the current time.

Detailed Description

Automation

The platform's automation provides a graphical functional programming feature, and an automation is equivalent to the concept of a "function" in traditional code development mode. Automation includes complete programming steps such as input, output, variable definition, loops, conditional control, and calling other automations. Users can combine the atomic steps of automation provided by the system according to their business needs to implement operations on data tables, workflows, HTTP requests, interface interactions, etc. Automation can be called in scheduled tasks, listeners, and API scenarios to achieve scene requirements.

The platform provides automated steps classified as Data Table, Control and Variable, Function, AI, Workflow, Interface Interaction, etc. In different business scenarios, it can be implemented through automation step combinations.

Detailed Description

Scripts

Platform scripts are implemented using ES6 syntax standards and are also compatible with ES5 syntax. The platform will inject the informat context into the script's running environment, which provides rich platform functions.

Server-Side Scripts

Server-Side Scripts: Scripts run on the GraalVM engine integrated by the platform, and through the combination of JS native language and the system's built-in informat Object, realize data calls to applications, data tables, workflows, automation, etc. Server-side scripts support importing third-party libraries via npm.

Server-side scripts provide rich functional modules such as aiagent (AI Assistant), app (application), bpmn (workflow), codec (data encoding), company (team), console (log), csv (CSV file operation), date (date), dept (organization structure), email (email), excel (EXCEL file operation), file (sandbox file operation), ftp (FTP tool set), sftp (SFTP operation), http (HTTP request), jdbc (database JDBC), ladp (AD domain), mpp (Project file reading), mq (message queue), notification (system notification), redis (memory cache), storage (shared storage), survey (questionnaire survey), system (system functions), table (data table), transaction (database transaction), user (application member), utils (utility functions), website (website resources), word (WORD file operation), xml (XML operation), etc. Through the combination of system-provided functional modules and native scripts, it is more practical in some complex logic scenarios.

Usage Tip

  • Server-side scripts support management using git.
  • There is overlap between server-side scripts and automation in functionality. In scenarios with complex logic and numerous automation steps, it is recommended to directly use scripts for implementation.

Client-Side Scripts

Client-Side Scripts: Scripts run in the browser runtime environment, and all functions supported by the browser environment can be used. In addition, the platform provides additional system (system), app (application), and http (network operation) functional modules, which can quickly complete system function calls through the platform functional modules.

Option Value Dictionary

The option value dictionary of the platform is equivalent to the data dictionary concept in traditional code development mode.

Option Value Dictionary Data Sources

  • Define category optional values in the designer
  • From a data table in the system. After the option value dictionary is defined, it can be used in fields such as list selection, drop-down selection, and cascading selection in data tables.

Note

The optional values defined in the designer are fixed and unchanged; if the option value dictionary items need to be added, updated, or deleted when used, the option value field needs to be modified to come from a data table

Usage Scenarios

  • Selection-type fields of multiple modules have the same option definition
  • The optional items in the selection-type field will change with business development when used

Detailed Description

Listeners

Listeners handle events dispatched within the platform in different scenarios. They support listening to events in the scope of applications, data tables, views, forms, etc., and process them by configuring calls to scripts or automation

Available Listeners

Usage Scenarios

  • Use application listeners to listen to users entering applications, modules, and make corresponding data logic
  • Use application listeners to listen to data table record creation, update, and deletion changes, and perform subsequent processing or report to third-party systems
  • Use data table listeners to listen to data table field value changes and then execute dynamic assignment of form fields or report changes
  • Use data table view listeners to listen to user click record behaviors and implement data linkage

Theme Styles

The platform supports writing CSS styles to override the page display styles of functional modules such as login pages, workbenches, applications, modules, and dashboards within the platform.

When a module is accessed, the platform will dynamically insert the CSS content into the current page, and automatically remove the inserted module styles when leaving the module, thereby solving the style conflict problem between modules.

Usage Scenarios

  • Hide system page functions
  • Override system page styles
  • Modify system page layout methods

Detailed Description

Data Query Optimization

As the business develops, the amount of data in the data table reaches a certain level, such as millions of data, the efficiency of the entire data operation will decrease. In this scenario, we can optimize the data operation efficiency by adding data table field indexes or data partitioning according to business use requirements, and improve user experience.

Field Indexes

For most fields, Informat will automatically create indexes based on actual usage scenarios. If business scenarios require it, database indexes can also be created separately for fields

  • Regular index: Indexes single or multiple fields, which can speed up query efficiency when users query data that hits the index fields
  • Unique index: Indexes single or multiple fields to ensure data uniqueness. Unique index is a native behavior of the database, which can avoid data duplication in some concurrent scenarios.

Data Table Partitioning

In some large business systems, after the amount of data in a single table reaches a certain level, the data query efficiency will decrease significantly. Optimization methods include database sharding, data table sharding, and data table partitioning.

  • Database sharding and data table sharding

    Business intrusion is too strong, requiring manual operation of database sharding and table sharding, and handling specific routing of user query behaviors to databases and data tables at the code level. In some scenarios where sharding and table sharding rules are not hit, it is necessary to scan all databases or tables, and performance will drop sharply in this scenario.

  • Data table partitioning

    Capability provided by the database underlying layer, supporting partitioning by range, value, and HASH method. When the upper-layer business performs query, add, update, and delete actions on data, the database determines the specific partition table to operate, and the business logic intrusion is low. When the partition rules are not hit, the database will also scan partitions, but compared with database sharding and table sharding, the performance is also higher.

Partition Creation and Merging

  • Create partitions

    When performing table sharding for a data table in the Informat platform, the platform will create a duplicate table containing partition rules, and use the database's automatic data insertion capability when creating tables to automatically complete the automatic merging of original data table data into partitions;

  • Merge partitions

    If a partitioned table is removed from the partitioning operation, the platform will create a duplicate table that does not contain partition rules, and use the database's automatic data insertion capability when creating tables to automatically complete the automatic merging of original data table data into partitions.

Application Dependencies

In the architectural design of Informat, applications of the same team are allocated to the same database. The platform will perform another data isolation based on applications, that is, data operations within an application are limited to data tables within the application. For this reason, the platform provides application dependency functions to realize data interaction between cross-applications. In cases where a single data table is reused by multiple applications, the data of that table can be separately created in an application as basic data.

Usage Scenarios

  • The overall application includes public data, such as personnel in OA, and member data in the OA application can be directly referenced in applications of other businesses.
  • A single application maintains externally connected data, and other applications introduce data through dependencies. Ensure the uniqueness and accuracy of data.

Detailed Description

Recycle Bin

The platform supports a recycle bin function, which supports configuring whether data is deleted from the data table and enters the recycle bin. The recycle bin will clean up deleted data for 7 days by default, and the cleanup interval can also be adjusted through the recycle bin module.

Exception

When using the recycle bin, you need to note that if the model changes and then the data before the model change is restored, the restoration may fail.

Detailed Description

Application Operation Logs

The platform supports application-level operation logs, which can record changes in data such as members, roles, and workflows.

Usage Scenarios

  • Data audit: Through the Application Operation Logs module, it provides support for data traceability and operation behavior
  • Behavior statistics: Statistics on data from the Application Operation Logs module to analyze hot modules, user behavior, etc.

Detailed Description

Application Login Page

The platform supports separate login page configuration for applications. After configuration is completed, the application will have an independent login portal. After logging in, the user will directly enter the application.

Usage Scenarios

  • Application users only need to access one application, and the application login portal can be configured to open the portal separately for relevant users
  • The application is integrated into a third-party platform, and users automatically enter the application after logging in, without jumping through the workbench

Detailed Description

Environment Variables

The platform supports environment variable configuration, which facilitates dynamic adjustment of the parameter values configured in the application when the application is deployed between different environments, such as the address of the third-party service to be called, which needs to be adjusted when running in other environments, and can be implemented by adjusting the running environment or environment variable values.

Platform environment variables support switching the environment variable values read during application runtime through configuration, or adjusting the application environment variable values separately in the Application Management of the workbench. Through these two methods, the application design does not need to be adjusted during the migration and deployment of the application between different environments.

Environment variables in the platform can be obtained through expressions or using scripts to get the runtime values of environment variables.

Usage Note

Platform environment variable values support encryption settings, and the read values will be automatically decrypted when the application is allowed, thus ensuring data security.

Detailed Description