Category: File System

A common requirement in IT shops is the ability to quickly process lots of files in a manageable and predictable manner. CSV, Excel, Access, XML, JSON are some of the file types that you may be asked to process and archive.

We recently provided a project snippet to a customer that was migrating hundreds of Excel and Access files from multiple locations into a centralized MySQL database. In this post, we will use this opportunity to discuss the project snippet and the file iteration activities in appRules.

A majority of the activities that were used in the snippet come from the appRules File System module which is shown below:
In a future post, we will discuss the activities in the appRules File System module as a group. Note that in addition to the included activities, file and directory functions can also be performed using custom functions. For this walkthrough, we will concentrate on the activities that were used in the project snippet.

Below is the project snippet:

Below is the description of the main activities used in the project to perform the iteration of the files:

DisplayName: InitializeFileInfoSource

Workflow Activity: DirectoryInitializeFileInfoSource

Description: The DirectoryInitializeFileInfoSource activity creates records for each file in a folder. The records contain information for each file and the file attributes are treated as data field values as shown below. This feature allows you to treat the file just like other records in appRules. In this example, the DirectoryInitializeFileInfoSource is the Source and upon initialization, it loads the first record.

Below are the properties of the DirectoryInitializeFileInfoSource activity.

Once configured, the record data fields can be accessed as shown below:

DisplayName: Archive File

Workflow Activity: FileMove

Description: The FileMove activity is used for moving a file from one location to another.
MoveFrom: Instead of specifying a specific file path in this property, the value used in this case is a DataFieldValue from the current file record.

MoveTo: This is the destination for the file. The file can be move to a specific file path or to a folder as specified.

DisplayName: GetNextFileInfoRecord

Workflow Activity: DirectoryGetNextFileInfoRecord

Description: This activity gets the next file info record which contains the attributes of the specific file. When the end of the records is reached, App.Result is set to false and iteration will end.

Conclusion:

The appRules File System module includes workflow activities that can be used to iterate files for large file processing projects. In this example, by using just three activities, we are able to iterate and archive the files without writing code.