I was at the M3 User Group biannual conference in Australia last month and I was told about an interesting change to how JScripts were handled.
The comment was that under the new M3 UI Adapter, copying scripts in to the mne\jscript directory no longer worked.
I was a little surprised as I hadn’t noticed anything in the documentation I’d skimmed but it was inevitable.
The user and global personalisations are now stored in a database, which was also inevitable.
This leaves a problem – how to administer it all? I had a look in the Core Admin guide and the Install Guide and couldn’t really find anything about how you were supposed to migrate existing scripts and personalisations or how to administer changes for Smart Office.
So, in Smart Office we have the Personalization Manager – seemed like a good place to start.
This will launch a browser session to the H5 Clients Admin Tools section, you will be prompted to log in.
Under the Administration Tools we have Personalisations – Personalisations representing strangely enough the personalisations, and Data files – which allows us to upload various files that were stored on the file system, including JScripts/.dlls
Under the Data Files we can change the file type to MForms Script and you can see to the right we have an Import button and an Import Zip. Import will allow us to import a single .js or .dll at a time and we will be prompted to provide a description.
NOTE: with the M3 UI Adapter 10.3.0.0.6664 you must zip your .dlls and use the Import Zip. If you click on the Import button above, your assembly will get corrupted and will not load. (see the bottom of this post for more details)
The import zip will allow us to import multiple scripts/dlls from a single zip file.
Delete will of-course allow you to delete a script and the export button allows you to export one or more scripts. When you select more than one script to export, they will be zipped in to a single file for you to download.
Figure 1 – Example zip file container two scripts
Figure 2 – zip with two scripts imported
Interestingly enough, from a file system perspective, the imported files still get dropped on to the filesystem, under the Jscript directory, and in to a new directory called Infor.
Figure 3 – JScript directory still there…but hold on…nothing there but a directory
Figure 4 – and in our directory our imported scripts
Personalisations work very similar to the scripts.
We can import an individual personalisation from a file, or a group from a zip file.
We can copy personalisations between users, roles, etc. Copying will overwrite the settings in the destination if there are any.
Merge to will merge it with the existing settings.
We can drill down to see what personalisations have been applied to a user.
So under me we can see I have a personalisation on MMS002
Drilling down further we can see that it is panel E and I have a script applied.
And drilling down still further we can see specifically what script.
As you can see, it’s pretty straight forward – just follow your nose. I have encountered a couple of situations where I got unexpected behaviour – I managed to create an empty tab order and then attempting to merge it created some errors and I didn’t appear to be able to delete things like scripts at the panel level (eg. MMS002/E) but for the later, I expect the idea is that you create your personalisations for a user and then copy it rather than trying to individually manipulate the settings.
Other things of note
Through LCM on the M3 UI Adapter there is this handy little option which looks like we can import our scripts and personlisations from a previous version. I haven’t tried this yet due to a lack of environments I’m comfortable messing around with.
And there is a bug / omission in the M3 UI Adapter 10.3 where you can’t run *.dll ‘scripts’, you get an error that “the remote server returned an error. (401) Unauthorized” as seen below
This is due to some changes in the MUA. See KB 1649295 in InforXtreme for detail.
We can fix this issue by editing the \M3_UI_Adapter\webapps\mne\WEB-INF\web.xml file and adding the highlighted line under the security-constraint -> web-resource-collection
And you’ll probably need to restart the MUA for the setting to come in to effect.
It’s also worth noting that if you get this error
“System.BadImageFormatException: Could not load file or assembly ‘52439 bytes loaded from Mango.UI, Version=10.2.10000.51, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. An attempt was made to load a program with an incorrect format.”
Then it’s because of the way the upload works – you need to zip your .dll and import it as a .zip
I’m guessing that the normal import assumes a ‘text’ upload and corrupts the assembly on upload.
Anyways, hope that provides a place to start.