Maintenance

To change a personalization, either I use the Personalization Manager (for that I need the administrator role), or I change the file with a text editor directly in the MNEDATA folder (for that I need read/write access to the MNEDATA folder):

Clear customization cache

To clear the global customization cache, I use the Net Extension Manager > Clear customization cache (for that I need to be administrator):

Non-administrators

There is another environment where I am not administrator, there is no Net Extension Manager, and yet I need to clear the global customization cache. I realized I can simply execute the clear command, and it will clear the global customization anyway:

mforms://_command/?value=clear custcache

That’s the actual command behind the Clear button.

I traced the calls, from the Smart Office Dlls, to the MNE server Java classes, and it seems to really do a global clear, even without being administrator:

Note: this personalization will not apply to other entry points such as M3 API or M3 Web Services (MWS) of type M3 Display Program (MDP). If you need to enforce the constraint there, you must do an M3 Java modification.

Somehow I am doing a lot of maintenance and troubleshooting of Infor Smart Office Mashups these days.

Missing columns

Today I had the unusual case of a user that was missing many columns in a list. The list is an <m3:ListPanel> of STS300/B1 in a Mashup. The problem did not occur when running STS300 directly, it did not occur for other users, and it did not occur with his userid on another computer. The problem occurred only with the specific combination of his userid, on his computer, on that M3 program, in that Mashup. Good luck troubleshooting that.

Here is an illustration of missing columns, shown here simply with CRS046/B:

Troubleshooting in vain

We wasted time troubleshooting in vain: the XAML source code, the sorting order, the view, personal views. the filters, the personalizations, the Bookmark in MTS043, the M3 program Java source code, the interactive subsystem, and we uninstalled/re-installed Smart Office, without progress.

Duh, restore the columns

Then, the user selected right-click > Restore Columns in the list, and that fixed the problem [FACEPALM] It is one of those little things that are easy to forget. We do not know how 32 columns accidentally went missing in the first place, it is not something one does by mistake without remembering. That is still a mystery.

Anyway, here is the reminder for next time:

User specific data storage

Where are those settings stored you ask? They are stored in the file MFormsColumnDefinitions.xml in the user specific data storage path, and are persisted to disk when the user logs out of Smart Office:

And those settings are loaded and saved in MForms.List.ListColumnManager:

Here is a tool that generates Smart Office URI to execute MForms Automation. The tool is interesting to launch M3 programs with parameters from third-party applications. For example, I could have an email message with a link in that launches OIS300/B to list the Orders of a specific Customer number, in one click, without having to type any Customer number or Sorting order; the URI would switch to Smart Office if it’s already open, or it would launch it and ask for user/password otherwise.

Thanks to Scott’s PotatoIT blog post Trace in Smart Office for re-discovering the great Smart Office Trace tool. The Trace tool is useful for introspecting fields and values of a panel, and to determine the database tables used by an M3 program. It’s sort of a dynamic MetaData Publisher. Here is my screenshot: