Infor Process Designer - Another way to look at Files


In Landmark, click Start - Data - pfi - Business Classes and then select PfiFileStorage

You will actually see a listing of the files you've written to, or FTP'd to, the Landmark server. You can view the files and copy and paste the contents to your notes application. It is another way to 'look at your files.'

Not just answers, providing solutions

Infor Process Designer - What the FTP

We've covered the File Access, reading and writing to files on the Landmark server, but what do you do when the file is on another server? You can transfer a file from or to another server using the FTP node.


First set the source and destination file path and name (you can use a variable) and select whether the source file is on a remote server or the local server. If it is on a remote server, click the Is source remote? checkbox.

For remote servers you will also have to select the Configuration which contains the connection information (IP address, User, Password & Protocol).

The non-remote server side of the transfer only needs the file path and name. You can actually initiate a file transfer between two remote servers, one to the other. In that case, both sides of the transfer would be flagged as remote and both would require the Configuration to be selected.

Like with other configurations, you can only set one FTP connection so if you have more than one FTP site you need to connect to, you will need to create multiple configurations.


Give your configuration a meaningful name and set the Host. If you are connecting to an Infor server, the IP address will be configured behind the scenes and you can just reference the address. Otherwise, you will enter an IP address for the Host.

Set the Protocol - either FTP or SFTP. 

Multi-tenant Landmark environments only allow connections to SFTP sites.

Enter the User and Password for the site you're connecting to. Some remote servers have already assigned your user with a default directory so you may only need to enter the file name, and not the full path as well.

If you're transferring to/from the local Landmark server you don't need to configure the server, you will just not check the Is Remote checkbox on the IPA node.

Not just answers, providing solutions

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