Working with the Virtual File System in Recent Versions of Infor CRM SLX

When Infor segregated core files and custom files in the web portal to allow the core files to be upgraded without overwriting any customizations; they removed the ability to edit, delete, or even view core files through Application Architect. For the most part, that is fine, as there is usually no reason to touch core files. There are, however, occasions where incompatibility or some other issue will make it necessary to interact with the core files directly. When that happens, it can done directly in the virtual file system tables in the database.

In recent versions of Infor CRM SLX, the virtual file system is stored in two tables, VIRTUAL FILESYSTEM and VFSDATA. VFSDATA contains customized files, which can still be accessed through the application Architect, so there is no reason to access them through SQL. VIRTUAL FILESYSTEM contains the core files, which can no longer be accessed elsewhere, so this is the table we will be addressing here.

Because you are interacting directly with the database, you will need to use SQL queries to view or alter files in the VFS. There is an SQL tool within the Infor CRM SLX Administrator program that can be used to run SQL queries against the CRM database. Personally, I am very used to using SQL Management Studio when working with databases, so I will be using that for my examples. The queries will yield the same results regardless.

Looking at the VIRTUAL FILESYSTEM table, the two columns most likely to be of use to us are ITEMNAME and ITEMPATH. ITEMNAME is the name of the file, including suffixes. ITEMPATH is the full pathway of the file, including the name. Most of the other columns are of limited use or are in a format that is not useful in a SQL query.

Select all from VFS

To provide an example, let us say you need to know if the file Microsoft.Exchange.WebServices.dll is used in the VFS. You could use the query:

select * from sysdba.VIRTUAL FILESYSTEM where itemname=’Microsoft.Exchange.WebServices.dll ‘

This would pull all the occurrences of that file in the VFS. In the evaluation database, there are two occurrences. Looking at the ITEMPATH column, I can see that Microsoft.Exchange.WebServices.dll exists in SlxJobService\SupportFiles\Bin and SlxClient\SupportFiles\Bin.

Select from VFS

Let us further assume that, for some reason, you need to delete that DLL from SlxClient\SupportFiles\Bin. You can run the query:

delete from sysdba.VIRTUAL FILESYSTEM where itempath=’SlxClient\SupportFiles\Bin\Microsoft.Exchange.WebServices.dll’

This will permanently delete that file from the VFS, and it will no longer be deployed. If it ever comes to pass that you need to do something like this, it might be a good idea to back up the VIRTUAL FILESYSTEM table as described in my previous post, in case something unexpectedly breaks. Generally speaking, it is a bad idea to delete core files from the VFS, but I have seen compatibility issues that had no other solution.