Skip to content

Frequently Asked Questions

Does Informat generate code?

Informat uses a designer to generate configurations. Applications are dynamically rendered based on these configurations at runtime. No code is generated during the application building process.

Is there a mobile version?

Informat supports mobile access and can be embedded in WeChat Work, DingTalk, Feishu and other clients.

Data table supports exporting images from attachment fields

When using the platform's Excel export function, images from attachment fields are stored as remote image links in Excel columns.

Therefore, if the exported data contains attached images, you need to enable the Allow Public Access option in the attachment field settings.

Excel Export Settings for Attachment Fields

Informat cannot open more than 6 tabs

Informat uses EventSource technology to implement server-to-client data push. You need to enable the HTTP2 protocol to solve this issue.

For detailed instructions and configuration, please refer to the SSE Server Push section.

How to hide the menu bar, navigation bar, and history access bar

ParameterValueDescription
nonavyesHide menu bar, leave empty or omit to show
noVisitHistoryyesHide history access bar, leave empty or omit to show
noBreadcrumbNavyesHide navigation breadcrumbs, leave empty or omit to show

Example: Hide menu bar, navigation breadcrumbs, and history access bar

https://next.informat.cn/app/msucfeq7305cn/table/witt65t1er62q?nonav=yes&noVisitHistory=yes&noBreadcrumbNav=yes

Database execution is waiting indefinitely

If two database transactions update the same record simultaneously or when adding a field to a large table, lock waits can occur. lock_timeout is a parameter in PostgreSQL that controls the timeout for queries or transactions waiting for locks. If a query or transaction waits for a lock longer than the set lock_timeout, a timeout error will be thrown to avoid infinite waiting that could cause database unresponsiveness.

By default, lock_timeout=0, which means infinite waiting. You can modify the lock_timeout parameter and restart the database to solve this issue.

View current configuration

db_informat2_biz_prd_0=# SHOW lock_timeout;

lock_timeout
--------------
30s
(1 row)

How to modify:

    1. Find /data/pgsql/data/postgresql.conf
    1. Use vi to edit postgresql.conf, find the lock_timeout line, remove the #, and change it to lock_timeout = 30s
    1. Save postgresql.conf and restart the database

Application publishing process gets stuck

During publishing, database DDL statements are executed. If there are other operations involving this application's tables (such as data synchronization or other large transactions) that haven't completed before this publishing, it can cause the current application publishing to get stuck (blocked). The solution is to stop other transactions:

Steps:

  • Find running processes Execute the following SQL in the database client: SELECT * FROM pg_stat_activity where state!='idle' Locate other large transactions through the query column in the results
  • Abort processes Using the process ID (pid) obtained in the previous step, execute: select pg_terminate_backend(pid) to end the process.

Attachment and signature fields cannot be displayed when the data table data source comes from a script

Due to platform restrictions on access rules for data table attachment fields, preview images for attachment and signature fields cannot be displayed in views. In this case, we need to process the data and add the following fields to the attachment and signature fields:

Field IdentifierName
appIdApplication ID where the field value comes from
tableIdData Table Identifier where the field value comes from
fieldIdField Identifier where the field value comes from

For detailed instructions, please refer to the Issue with Attachment and Signature Fields Not Displaying When Data Table Data Source Comes from Script section.

Support for importing images or files into data tables using Excel

The platform supports importing images and files when importing Excel files.

The attachment column supports:

  • Images inserted through Excel
  • Using HTTP links

Set up the mapping between Excel columns and attachment fields in the import window.

Once mapping is complete, files will be automatically uploaded to the attachment field.

Notes

  • When using links, you can use , to separate multiple files for import
  • When using links, the links must be unauthenticated or carry authentication information
  • If the attachment field is set to single selection, the import operation will select the first successfully imported file and ignore the file size limit set for the field
  • If the attachment field is set to multiple selection, the import operation will ignore the maximum number of files and file size limit set for the attachment field
  • Issue with importing images inserted in WPS
    • You can see the WPS image cell
    • To solve this issue, simply change the embedded cell images in WPS spreadsheets to [Floating Images]. Operation method: [Select all problematic images] → [Right-click] → [Switch to floating image]
    • Re-upload the Excel file to import normally

Data precision issues

For an explanation of why precision issues occur, please refer to IEEE 754.

  • Server-side
    • Integer fields are stored using Long type Data range: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
    • Decimal fields are stored using double type Data range: -2^1024 ~ +2^1024, which is -1.79E+308 ~ +1.79E+308
  • Client-side
    • Integer type Data support range: -9007199254740991 ~ 9007199254740991
    • Floating-point type Data support range: 5e-324 ~ 1.7976931348623157e+308

In simple terms, floating-point numbers lose precision during conversion to binary, and lose precision again when converting back from binary to decimal.

Duplicate ID records appear in data table views

By default, data tables (whether in grid views or other views) do not have duplicate IDs, but duplicates may occur in the following cases:

  • When using related records where the associated field is not the ID but a field that may have duplicates
  • When using related record fields with a matching method that uses other fields for matching

How to obtain the server's MAC address

  • Log in to the server
  • Run the ifconfig command, the value of ether is the MAC address: 52:54:00:9a:c0:83

Message queue service exception

In some cases, the message queue service may fail to work properly, such as when host name is modified or data directory is accidentally cleared. In such cases, you need to manually restore the message queue data.

For specific operations, please see Message Queue Service Maintenance.

Disk space insufficient error during service operation

As the service runs, the system generates log files (which are cleaned up periodically). During periods of high business volume, disk space issues may cause service errors.

no space left on device

For specific operations, please see Insufficient Disk Space.

Management backend expression ${url.protocol} cannot obtain the correct https value

This issue is caused by an Nginx proxy problem. The solution is as follows:

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header X-Forwarded-Server $host;
  # add http request origin scheme header transport
  proxy_set_header X-Forwarded-Scheme $scheme; // [!code focus]
}

Resource and component designer modules using Git SSH key synchronization error

shell

InformatException,200037,git@example.com:example-group/example-project.git
  : invalid privatekey: [B@775bf231

The platform uses jgit for remote Git repository synchronization at the bottom. The private key must be in PEM format.

Solutions:

  • Switch to using username and password authentication
  • Add a private key in PEM format
    shell
    ssh-keygen -t rsa -m PEM -C "example@example.com"

Troubleshooting Informat service lag issues

By default, Informat Biz service log files are located at: /informat-next/log

1. Query slow SQL

shell
grep 'SlowSQL' /informat-next/log/informat-biz.log

Slow SQL queries may be one of the main causes of lag. Optimizing slow queries or adding indexes helps improve performance.

2. Query logs for requests with response time exceeding 1 second

grep 'using:[0-9]\{4,\}ms' /informat-next/log/informat-biz.log

Check all request logs with response times exceeding 1 second to help locate performance bottlenecks.

3. Query logs for requests with response time exceeding 10 seconds

grep 'using:[0-9]\{5,\}ms' /informat-next/log/informat-biz.log

If some requests have response times exceeding 10 seconds, they require special attention.

Biz service system logs use Logback, with each log line formatted as follows:

plaintext
[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-10.10(%thread{9})] %-5level [%X{appId}] [%X{requestId}-%X{ip}%X{userId}-%X{context}] [%-29.29(%logger{24} %line]) - %msg%n

Example:

plaintext
[2025-02-28 16:09:39.741] [kndp6oyjz] DEBUG [] [zcfjkndp6oyjz-183.14.135.213--] [i.c.r.RedisCacheService 78]   - redis cache hit using:2ms

RequestId location: zcfjkndp6oyjz in the log segment [zcfjkndp6oyjz-183.14.135.213--]

How to query logs by requestId

Each log line carries a requestId, which can be used to query all logs for the entire request, making it easier to locate issues.

shell
grep zcfjkndp6oyjz /informat-next/log/biz-service.log

The creation time of records in the data table is 8 hours behind the current time

  • You can access the following address to get the JVM time zone: https://next.informat.cn/web0/main/time_zone
  • If it's not Asia/Shanghai, you can set the JVM time zone in the Informat startup script: -Duser.timezone=Asia/Shanghai

Docker installation of Informat pgsql database fails to start

shell
# systemctl restart  postgresql-13.service
# ERROR:systemctl:the ExecStartPre control process exited with error code

Reason: Insufficient permissions for the host /data directory. You need to execute chmod 755 /data.

Export application error: token expire

This occurs when informat-account and informat-biz are deployed on two different servers with inaccurate dates.

How to quickly export large applications

When exporting large applications, it may take a long time. To avoid blocking other system functions, you can use the command method to export applications as follows:

  1. Write a shell script
shell
  curl -X POST \
  -F 'arg0=System token (can be obtained by capturing packets in the web page)' \
  -F 'arg1=Export application ID' \
  -F 'arg2={"exportData":true,"editable":true,"exportAllTable": true}' \
  Your domain name/web0/invoke/DesignerAction.exportApplication \
  -o /Path/to/save/file/ExportFileName.imr
  1. Execute the written script in the computer's system command line tool

The Informat platform uses Nginx as a reverse proxy. For issues related to file uploads, network request timeouts, load balancing strategies, CORS, and HTTPS certificate configuration, please refer to Nginx Related Content.

The creation time of records in the data table is 8 hours behind the current time

You can access the following address to get the JVM time zone: https://next.informat.cn/web0/main/time_zone

If it's not Asia/Shanghai, you can set the JVM time zone in the Informat startup script: -Duser.timezone=Asia/Shanghai