Infor Process Designer - How Common

It may just be my OCD, but I like straight lines in my flow. One easy way to make this happen is to click over to the Common tab on your nodes and set the X and Y coordinates for where it is positioned on your canvas.

Another feature of the Common tab is the Description text area. This is useful if you like to comment the use of the node. I've heard people complain that you can't add comments to your 'programming' in IPA and I simply point them to the Description area on both the canvas (white space) properties and within each node.

Not just answers, providing solutions

Infor Process Designer - Did you get my Message?

The Message Builder node is used to build a string variable (which is declared within the MsgBuilder) and allows you to append to that same variable with another MsgBuilder using the same variable name.

You can also use the MsgBuilder within a query loop to build a larger message which contains your query results. The data automatically appends to the declared variable.

You don't have to define the variable on the Start node since it is created once the MsgBuilder is used.

If you use the MsgBuilder within a query loop to build it but the query returns zero records, the variable isn't declared and reference to it later in the flow will return an error.

Not just answers, providing solutions

Infor Process Designer - Say My Name

Each node contains two properties we haven't discussed previously - the ID and Name.

Each ID must be unique and no spacing or special characters are allowed. It is system generated but in many cases can be over written to make it more meaningful to you when you later reference it within the flow or log.

The Name doesn't have to be unique and, although it defaults depending upon the node type, it can also be overwritten. This can be helpful during the design of your flow as the name of the node is what is displayed within the designer.

Unlike the ID, the Name can contain spaces. The ID is the node's address while the Name is cosmetic.

Not just answers, providing solutions

Infor Process Designer - The DataIterator (say that 3 times fast)

The definition of iterate is to 'perform repeatedly' and this looping node repeatedly performs a data read of either a file or data variable. The loop continues until it reaches the end of the file or the end of the data. You can set a maximum read iteration value.

The Input method is either a File where you enter the file path and name to iterate (loop) through, or Data where you enter the variable that contains your data. You can load a file into memory using a File Access, assign that output data to a variable and then loop through the variable using the Data Iterator.

You can Parse by Line, Delimiter String, or Length

Parsing by line will load the entire line of data during each iterative loop. You need to do something with that data so an Assign is usually used within the loop. If your line of data requires additional parsing (perhaps by comma separated fields), you can nest another Data Iterator within the first to parse the fields within your line.

Parsing by delimiter string (you have to specify the delimiter value), like a comma or pipe, will load each data value within the delimiter during each iterative loop. This means that if I have 20 comma separated fields, each field is processed individually. This is not a fast process.

Parsing by length will load set bytes of data during each iterative loop. I have never used this method.

The Ignore trailing delimiter checkbox is useful if your delimited data has a null value after the last delimiter value. For example if my data looks like David,Williams,Consultant, and there isn't any data after the last comma, the Data Iterator won't try to process that null value.

Regardless of the parsing method, the data within each loop will be referenced the same way - DataIterator8800_outputData

My recommendation is to load your file into memory using a File Access and then to set your Data Iterator to parse the Data. 

Not just answers, providing solutions

Infor Process Designer - File Away with Me

The FileAccess node allows you to interact with files on the server; either reading, writing, appending, checking, deleting, or listing the files available.

The Connection information (for the server) is setup in the Landmark Configuration settings. Depending upon whether you are on premise, single tenant or multi tenant, you may access the Landmark server (only) or the Lawson server.

When you Read from file, you are reading the file into memory and you would reference that data with a variable like FileAccess8200_outputData. You must specify the file path and name to be read (variables are permitted).

When you Write to file, you are writing data to a file on the server and must specify the file path and name to write to (variables are permitted). When writing, you must specify the Input data that contains the information you are writing. You can enter the data in this field or reference a variable which contains your data.

When you Write to file you are either creating a new file or overwriting an existing file.

When you Append to file, you are adding data to an existing file on the server. This mode is just like using Write to file except you are not overwriting the existing file.

When you Append to file and the file doesn't already exist, the system will create it for you.

Using Check file exists allows you to verify that a file exists on the server. You may want to check that the file exists before trying to read it in order to avoid an error.

You would use Delete file to delete an existing file on the server. If you Ftp a file onto the server before reading it (or Ftp it after writing it), you will want to delete it from the server once you're done with it.

Using List files allows you to return a comma separated listing of files within the file path you specify. You may use wildcards (*, ?) with partial file names as well to limit the files returned in your list.

Not just answers, providing solutions

Infor Process Designer - You've got Issues

You may notice these pesky error messages in the Process Issues listing or see the warnings on the properties of your nodes.

These signify that you need to take corrective action to eliminate potential issues. I say potential issues because there are two types of warnings. The red circle warnings are serious while the yellow triangle warnings are not.

We used to call these 'hard errors' and 'soft errors' and you can usually ignore the soft errors - in fact you may have a reason for them. The soft errors usually occur if you add an Assign node but don't use it to do anything - No assignments were made.

I've used the Assign node (and have seen others do the same, so don't judge me) as simple placeholders or as a connection point pass thru. If you added an Assign and meant to actually assign a value to a variable, this warning lets you know you may have an issue.

Hard errors, however, should be taken seriously. As shown above, you may have placed a node in your flow but didn't connect to it, or from it. This 'orphan' node could cause your flow to fail because it won't know where it should go next.

You may have missing values in your node (like a File name) that are required for it to function correctly.

You also might not have completed your Error Condition steps by setting it up to notify or log potential errors.

So, don't ignore the warning signs. They're included to let you know you've got issues.

Not just answers, providing solutions

Infor Process Designer - To Err is Human

'I know there's a proverb which says 'To err is human' but a human error is nothing to what a computer can do if it tries.' - Agatha Christie

From time to time an error will occur in the processing of your flow; for example, if you try to read a file that doesn't exist using a FileAccess you will get an error. What options do you have when that occurs?

Depending upon the type of node and possible error, you have three options in your flow.

1. If you determine that the error is critical to the operation of your flow, you can set it to Stop process and the flow will stop and report out as a Failed WorkUnit.
2. If the error isn't critical - the flow can still accomplish what it's designed to do - then you can set the error handling to Continue process. The flow will move forward in spite of the error and either Notify (send an email with the error) or create a Custom log entry on the WorkUnit.
3. The Go to error handler option allows you to add a new connection from your node to route for special handling. The Error Connection is represented with a red connection.

Regardless of the error handling option you can still set the node to either Notify or create a Custom log entry (or both).

Not just answers, providing solutions

Infor Process Designer - My Pal Trigger

The Trigger node allows you to kick off another flow by selecting either another Process or Service.

Select the Trigger Type - Process or Service
If Process, select the Process name or if Service, select the Service name
Enter the User ID to be tied to the WorkUnit (variables are permitted)
Enter the Work title (variables are permitted)

You can even select specific (or All) variables to pass from your current flow to the new one.

Unlike a SubProcess, when you use the Trigger, your current flow continues on and the new flow is treated as an independent process.

Not just answers, providing solutions

Infor Process Designer - I'll Wait for you

When you need to build a pause or delay within your flow, you can use the Wait node.

Set the length of time for the flow to wait by Days, Hours, Minutes or Seconds by either entering direct values or using a variable.

You can set it to Keep Workunit active but doing so will tie up the IPA Grid Node - keeping it active will prevent another WorkUnit from being able to process during this time - and I would advice against doing so unless your wait is for a short time frame.

WARNING - Non persistent variables will be dropped from memory during a Wait. 
Non persistent variables include variables updated using the JavaScript Expression Builder in an Assign node as well as any looping node (Lawson Query, Landmark Transaction, For Each). The record count within a looping node will forget the counter value and not remember where to pick back up once the wait is over.

Not just answers, providing solutions

Infor Process Designer - Your word is my SysCommand

The System Command node allows you to send Windows or Unix (depending upon your environment) commands to your operating system.

This is not allowed in multi-tenant environment.

The SysCommand requires the server connection to be defined on the IPA Configuration menu.

Not just answers, providing solutions