5 min read

H5 scripting - Free up time when entering data and improve your business quality

Infor M3 usability optimisation with scripting

Have you ever observed your users entering customer, purchase, distribution, or return orders in their daily operations? Do you know your benchmark numbers compared to your competitors in executing these business processes in your ERP?

What about user errors? Have you thought about the cause of those? Could this happen because your users don’t have enough time or training to navigate the Infor M3 system? Or gather enough information to make good process execution decisions?

Do your workers have enough time to focus on qualitative instead of quantitative tasks? For instance, they could be spending more time talking and guiding your customers instead of executing repetitive quantitative tasks, like entering orders.

If so, H5 Scripting might be the answer you’re looking for! However, you’ll also need to free up some management time to improve your business processes and benchmark continuously.

First, let’s take a quick look at the complexity of Infor M3 before digging into the details:

Infor M3 Magic Quadrant for Cloud ERP for Product-Centric Enterprises

(Picture: https://www.infor.com/resources/gartner-names-cloudsuite-solutions-as-leader )

Infor M3:

"Support for multiple and highly complex manufacturing scenarios: Infor CloudSuites provides strong ability to support process, project, “X-to-order”, and asset-intensive manufacturing styles within a single ERP suite.

Industry-specific capabilities: Infor has demonstrated the ability to provide functionality to support complex industries, such as the industrial equipment, automotive, aerospace and defense, food and beverage, fashion, and wholesale distribution sectors."

(Source quote)

From reading this statement, we can determine that Infor M3 is quite a complex and function-rich ERP system.

The ERP application structure and our challenges

Infor M3 data is stored in multiple database tables, with many columns and dedicated programs developed to handle the data for several Industries. As a result, this causes increased workloads for your users to find and enter data. Each day they need to sift through a vast amount of program panels, plus many jump-outs to related tables and functions, to gather information and execute a workflow.

Another challenge is that many program views are not configurable without some scripting or Java modifications. The latter is not preferable, as it may make Infor M3 upgrades more complicated, especially for customers who want to migrate to the Cloud soon. And you cannot make modifications in Infor M3 CloudSuites since all tenants share the same source base.

A further consideration is how to guide the users to execute the best process according to your company standards. Since Infor M3 is designed to support different industry-specific capabilities in the same interface, there’s no “out of the box” solution either. You can also use scripting here to provide suggestions or instructions in panel fields, combined with other personalisation, such as renaming the name of the panel field to a specific industry or company standard or making a field mandatory.

Infor is progressively moving to its industry-specific Infor M3 CloudSuite solutions and introducing its new user interface (UI). Infor M3 programs are being rewritten incrementally to the latest Angular web interface and, combined with scripting, will be more configurable.

Since most Infor M3 customers are still using an On-Premises version, this could be a topic for a later blog. So, this blog will focus primarily on what you can do in the On-Premises version of Infor M3. (We’ll advise you if you can only do something in the Cloud version explicitly.)

(You might also want to read: Improve Infor M3 with H5 Scripting)

Optimise process and task information given

In Infor M3 version 13.1, Infor introduced the new list standard program, CMS010. (For use in Mashup.) In version 13.2, some programs like MMS001 – Item Master, MMS002 – Item/Warehouse Master, and CRS610 – Customer Master used the new list standard, CMS005, as shown below:

Picture3 (1)

However, in version 13.4 and the latest MCE, many programs in M3 do not support the new list standard. For example, OIS002 – Customer Addresses has 3 new columns to fetch data from the customer-specific table CUGEX1:

H5 scripting:Free up time when entering data and improve your business quality

(inside Infor M3) 

H5 scripting possibilities

So, let’s take a deep dive into what you can potentially achieve with an H5 script in an Infor M3 program that doesn’t support the new list standard:

H5 script in an Infor M3 program

One master table

Many programs contain more than one master table. That may be a reason why it takes time for Infor to rewrite to the new list standard. But our script does not have such a limitation. And as long as we have an API, we can gather any information to display.

Filter & selection

The H5 script can provide default values per user, warehouse or facility from the user settings or remember the last values using the program panel caching functionality.

Sorting orders

Our script can override the sorting order by using dynamic searching instead.

Note: The sorting order table requires a search index.

The script can add an input box for the search query and a button to execute it. In addition to the user query, the script can add user search variables like facility or warehouse and dynamic dates, such as today or the last 5 days.

View definition

Many Infor M3 programs do not have configurable view definitions. And those that do only have limited predefined rows. Our H5 script can add more columns with a customer-specific heading name and fetch data from the original table, another table, or the customer extended tables using an Infor M3 API.

In Infor M3 CloudSuite, the H5 script can also use the ION Gateway. As a result, users can see data from Vince Live integrated with Infor M3 data. This can have huge benefits since the data from Vince Live can be analysed, processed, and calculated beforehand and come from another On-Premises or Cloud system.


The H5 script can add a new field and accumulate the value downwards or make a textbox showing the visible rows’ total. To make totals for non-visible rows is more complicated, and it’s worth considering if the program is an essential part of the predefined Infor M3 process flow that does not support the new list standard. Remember, in version 13.3, you can still make an API that aggregates and subtotals a dataset using CMS010 and CMS015 and publishes it to CMS100MI. The script can call our CMS100MI API transaction and display the subtotal in the panel.


You can either use the standard heading for the new field or give it a name based on the user language setting.

Logical formula

With H5 scripting, you’re not limited to only three conditions without complex sequencing joins, like the new list standard. Plus, you can control the order and grouping of conditions using brackets.

You need to think of H5 scripting written in Typescript and compiled down to JavaScript – the programming language most internet browsers run. Using JavaScript means there are almost unlimited possibilities when it comes to logical conditions and looping.

The key factor here is to structure the code with classes and functional parts, so you don’t lose control of the scripts and make them less maintainable. That’s why Infor recommends the TypeScript programming language in H5 script development.


Like the new list standard, it’s possible to perform date calculations in the script-added column. You can also use the CRS900 System Calendar data through an API to refine the calculation, for example, to operate on working days only.


If the necessary information is present, our script can also convert currencies in the new column.

Calculated fields

H5 Scripting works like the new list standard but has even more operators and conditions available.

Related tables

If you have an API and an available key in the panel, you can fetch information to the new column. If there’s no API available, you can create one (without any Java modification) in version 13.1 and 13.3 using BREADMI and CMS015, respectively.

In Infor M3 CloudSuite, it’s possible to fetch information from external systems or Infor OS by making a definition in ION Gateway.


You can add a column for any data field from an API or panel data processed by the script.


Our script cannot modify the detail level shown in the list, but it’s possible to display an extra accumulation field and a subtotal field for each row, which can be helpful in planning.

Contact us 

Improve Infor M3 with H5 scripting

Improve Infor M3 with H5 scripting

Many customers aim to migrate to the Infor Multi-tenant cloud in the future. To do so, all customer-specific On-Premise Java modifications must be...

Read More
Infor M3 – Custom fields are here to help

Infor M3 – Custom fields are here to help

How custom fields can extend your M3-tables Have you ever been annoyed that you only have 10 user-defined fields available in...

Read More
Event based master data management - Infor M3

Event based master data management - Infor M3

Introduction Many Infor M3 customers aim to get more control of their Master data: Items, prices, warehouse, sourcing setup, and so on....

Read More