Refreshing H5 list properly

list and grid refers to exactly the same thing: The list of records shown in an M3 B-Panel program.

H5’s list are built using the SlickGrid.js. It is an open source javascript-based grid framework. If you want to achieve something in relation to a list of an M3 program and no wrapper code is available in H5 scripting, you can rely to SlickGrid‘s documentation. One of this is how to refresh the list when you update a value.

By default if you update a value in the list programmatically, it will not automatically reflect on the view. You need to refresh the grid so that it will update what is being shown on the screen. In H5’s Script Developer’s Guide, specifically the sample script for Custom column, the way to refresh the list is by executing these codes:

let columns = list.getColumns(); 

Sure it gets what it needs to be done, but i think this is not the optimal way to do it.

Read More »

Disabling a row in H5

This one may be too simple if the question was asked to the people responsible for the code of H5 client. But as for me who is but a user of H5 I had to dig in to their minified source codes to figure out how to disable a row on a list panel.

So I start by debugging inforDataGrid‘s code to see how disabling a row is currently done. I was looking for a flag or property that is needed to be set. In my mind it should be easy to locate the correct line of code to find this since after all, inforDataGrid should hold all the things involving list panels in H5. After hours of editing grid’s column and row properties to match the code’s expectation, I was still unsuccessful in disabling a row.

Read More »

M3 Browsable Fields Via H5 Scripting

Two years ago I had a requirement to make a field in CRS624/G browsable via H5 scripting. I managed to achieve this by using an external tool called jsGrid(

Then about a week ago, i learned from a colleague that the script I created was adopted and used by other consultants, being implemented on other environments. It got me to thinking in revisiting my code see if there is anything in there that can be improved.

Read More »

MI Transaction in H5 – Part 2

Following entry was created for old versions of H5 where MIService is not yet available

In our previous post, we saw how we can execute MI transaction in H5 using the MIUtiltool utility tool we created. In this post we will be expanding on this tool to include a helper in retrieving output fields on the executed transaction.

Let’s look back on the transaction we’ve executed

let miTrans = new MIUtilTool.Transact("CRS530MI");
miTrans.set("FCOM", userContext.CONO);
miTrans.set("TCOM", userContext.CONO);
miTrans.set("FEMN", "CSANTOS");
miTrans.set("TEMN", "Y500");
miTrans.execute("LstEmployee", this.onSuccess, this.onFail);
Read More »

MI Transaction in H5 – Part 1

Following entry was created for old versions of H5 where MIService is not yet available

To perform an MI Transaction in H5, we use ScriptUtil.ApiRequest(). It accepts three parameters: the url for the transaction, the callback when transaction succeeds and the callback when it fails. A sample usage of this would be like this

let userId = userContext.USID;
let url = "/execute/MNS150MI/GetUserData?USID=" + userId;
ScriptUtil.ApiRequest(url, this.onSuccess, this.onFail);
Read More »

How to set and get field values in H5

Since H5 is based on HTML and javascript, there are a couple of  ways in getting and setting the value of a field in H5. We can do this via ScriptUtil, IInstanceController, Jquery or via plain old javascript. This is for demonstration purposes since I would assume that Infor’s Product Development team will not advise in using the other three options other than ScriptUtil.

Read More »