Infor Process Automation (IPA) Best Practices and Performance Improvement Tips

Since Infor Process Designer is an open-ended visual design tool, different users can achieve the same end goal but in many different ways. While the flow might technically “work”, this level of design freedom usually leads to processes that are not as efficient as they could potentially be.

Here are some tips to keep in mind as you design your next flow:

  1. Use a MsgBuilder node instead of writing to file for each record


    By using a MsgBuilder node, we can append all found records to a String in memory. We can then call the string when we need to write the records. This is much faster than individually writing each line, each time through the FileAccess node.

  2. Merge Assign Nodes

    This is a common mistake in many processes. There is no reason two Assign nodes would have to line up one after another in a flow. You can simply use one Assign node for all your variables/javascript. More nodes in your flow results in slower speeds so you should always try to use as few nodes as possible.
  3. Remove Unnecessary Assign Nodes

    When a value is returned from a query or processing node, it is automatically assigned an internal variable name.

    In the screenshot above, we see the values pulled from my SQL query have already been automatically assigned a variable. Therefore, there would be no point in having an Assign node to set SQL ADDRESS to my custom variable <!ADDRESS>. It would be better to simply call <!SQLQuery1080_ADDRESS> when needed as the variable has already been created for me.

  4. Remote File Access
    When the Infor Lawson business applications and ProcessFlow are on the same server, file access is blazing fast since all the files are local. However, when IPA is on a separate server, the process slows down since the flow must now access the file across the network and not locally.

    To mitigate this issue, make sure file access is done as efficiently as possible. Perhaps reach out to those in charge of network IT to see about reducing network lag.

  5. Upload the Process with Logging Off
    Process logging can negatively affect performance. Unless you are troubleshooting a problem, processes should be uploaded with Log Level: No debug

How to tune the performance of a Lawson 4GL program

Lawson programs, especially batch jobs, can sometimes take hours to complete. In rare instances, a badly written 4GL batch job can even take days to complete depending on the number of records it has to process and how it goes about doing so. Depending on your skill set, you may be able to optimize the code directly and use a debugger to find out how to speed things up. But if you want some statistics about what the program is doing and a quick shortcut, then there’s a utility for that.

The utility is actually several different utilities wrapped into one.

dbadmin utility to set some parameters. The main parameter you want to set is the TIMESTATS parameter. The timestats function is activated using the dbadmin utility.

Before you go changing stuff, to show current settings, run ‘dbadmin get’ from a LID command prompt or a qsh command prompt in System i.

dbadmin get
Current Value for REUSE=ON
Current Value for DEBUG=OFF
Current Value for DBAPIERRORS=ON
Current Value for TIMESTATS=OFF
Current Value for USERFILTER=
Current Value for PROGRAMFILTER=
Current Value for DATAREAFILTER=
Current Value for TIMESTATSDIR=/tmp
Current Value for IDLETIME=1

Save this off for future reference.

#To enable timestats, run the following commands:

dbadmin set timestats on
dbadmin set programfilter programcode   (optional, specify a program code. e.g. AP175.  The default is all programs)
dbadmin set timestatsdir pathname  (optional, ex. /home/username or C:\timestats.  If not specified, stats files are created in /tmp or %TMPDIR% for Windows)
dbadmin set dataareafilter productline  (optional, specify a productline name.  The default is all productlines)
dbadmin set userfilter username   (optional, the default is all users)
dbadmin set reuse off

#Clear the active database drivers so that the changes become effective
dbadmin idleall
tmcontrol -rp productline programcode  (For online programs only)

#Run ‘dbadmin get’ after setting the options to check that the desired options are enabled.

#After should look like this:

Current Value for REUSE=OFF
Current Value for DEBUG=OFF
Current Value for DBAPIERRORS=ON
Current Value for TIMESTATS=ON
Current Value for USERFILTER=
Current Value for PROGRAMFILTER=HR211
Current Value for DATAREAFILTER=test
Current Value for TIMESTATSDIR=d:\lawson\temp\timstats
Current Value for IDLETIME=1

Now you’re ready to submit your job again. Once the job is submitted, you should be able to see the stat files get created in the timestatsdir directory.
Wait until the job has completed before viewing the file(s).

You can view the files after the job is complete but they aren’t all that easy to understand. To make them easier to digest:

Go to the stats directory and run:
analyze_stats -o > stats.out

You’ll notice that you now have two new files in this directory.

stats.out and a cfg file.

The stats.out file will give you a really great view of what’s going on with your program while the cfg file can be place in the xxsrc directory of your code and compiled with the program to optimize it based on the timestats results.

After you’re done:

To turn disable timestats and re-enable driver re-use:

dbadmin set timestats off
dbadmin set reuse on


Business application performance issues are becoming an increasing strain on IT departments

SolarWinds surveyed over 300 business application end-users across various sized UK companies finding that IT departments are feeling under pressure when it comes to maintaining app performance and availability. Ninety four percent of respondents said that application performance and availability affect their ability to do their job, 44 per cent claiming that these are “critical” factors. Additionally, one in five indicated that slow or unavailable applications meant a “significant” loss in financial terms for their organization.

Dependence on business applications is key, but end-user expectations are vital. When a performance issue occurs, users expect quick solutions.

Suaad Sait, executive vice president, products and markets, SolarWinds, observes that “it’s no longer just about if an application is working; it’s about that application working to end-user expectations. These survey results should be a wakeup call for IT Pros everywhere.”


For the full article, click here