Friday, August 12, 2016

Windows 10 patch MS16-072 / 3163622 / 3163018 can break Smart Office *WORKAROUND*

A couple of months ago I logged an issue with Xtreme regarding Smart Office client being unable to communicate with the Smart Office server.  This has become a more significant issue with the Windows 10 anniversary edition also breaking JScripts running within Smart Office.

Today I have received a suggested workaround from Infor now to resolve the issue of windows updates stopping Smart Office loading.  I've tried this on a couple of sites and it appears to address the issue.  The workaround is:

1. Download IIS Crypto 2.0 from Nartac.
2. Install this on the PC
3. In IIS Crypto 2.0 on the Cipher Suite tab (1), untick the TLS_DHE_RSA_WITH_AES_128_CBC_SHA Cipher (2) then click Apply (3):

4. Reboot the PC.

Smart Office should now load correctly.  I've tested this against multiple sites and multiple versions of Smart Office and all the Smart Office instances that were not working now do work.

Unfortunately this does not resolve the JScript issue :(

Thursday, August 4, 2016

Windows 10 Anniversary edition stops JScripts from loading in Smart Office

The Windows 10 Anniversary update has just rolled out and with it has come more problems for Infor's Smart Office.

When using a panel that has a JScript attached to it, the JScript does not load and an error message is logged within the Smart Office log e.g.

5/05/2016 9:29:30 PM ERROR MForms.Render.RenderEngine.PostRender Failed to run scripts
System.IO.FileNotFoundException: Could not load file or assembly 'file:///C:\Users\user\AppData\Local\Temp\aibwfam0.dll' or one of its dependencies. The system cannot find the file specified.
File name: 'file:///C:\Users\user\AppData\Local\Temp\aibwfam0.dll'

Infor don't have a resolution to this yet, much like the problem with the Microsoft patch that on certain configurations broke Smart Office altogether, the current recommendation from IRD is to not install the Anniversary update.

Monday, July 18, 2016

Simple event-driven automations with Event hub and MEC - overview

At Inforum 2016 this year I presented a simple pattern we'd developed across multiple projects to automate and apply business rules when transactions occur in the M3 business engine.

Historically we have used JScripts to achieve this within Smart Office, but a number of factors have driven us away from this approach.  These include:
  • the increased maturity of the H5 client;
  • the inclusion of the H5 enterprise features within the foundation client as of Infor Xi;
  • an increasing diversity of data input mechanisms across our customer base (M3WM, custom applications, data feeds from PLCs etc.); and 
  • the problems inherent to applying business rules at the UI level that could be bypassed by users.
While JScripts still have their place, for set and forget application of business rules along the lines of "if this then that", there are better approaches now available.

We first investigated Infor's Ming.le a couple of years back, but when we started looking into Ming.le our assessment was that it was not mature enough to meet out needs.  Note that this has now changed, we have used Ming.le on a few projects and we are very excited by the possibilities offered by Ming.le within the Infor Xi stack.

Nonetheless, while at the time we were not convinced that Ming.le was appropriate for our needs, the technology underpinning Ming.le was of interest.  Specifically Event hub which monitors all transactions within M3 and allowed us to capture:
  • Start and stop of M3 programs including batch programs;
  • Create, Update and Delete transactions on M3 tables; and
  • Current and Prior values of records in M3 tables.
Many, if not most, of the processes we wished to automate occur when one of the transactions above occurs.  For example we wanted to:
  • Notify upstream planners for supply chain order connected orders when requested delivery date on CO, MO, PO line changes;
  • Update customer agreement / bulk order when quote changed;
  • Reclassify, move, or write off balance ID when goods were received into a location;
  • Load payment when a POS sale is invoiced;
  • Write to a log when a M3 program is started;
  • Export planned orders when the MRP run completed.
What we found was that Event hub existed within the M3 ecosystem as shown below:

Event hub is one of the technologies underpinning the M3 ION BODs and is responsible for creating the initiator message, much like a MBM, that instructs MEC to create the BOD and pass to ION for action.

One of the great things about Event hub is that it is available in all M3 10.1+ installations that have the business engine on the Grid.  So for sites that are on the Grid, but don't yet have ION, we can still leverage the functionality that Infor has delivered to support ION to build automations as described here.

The pattern we developed for creating a simple automation has three main parts:
  1. Create the Event hub subscription;
  2. Create the MEC subscription to Event hub; and
  3. Build the automation in MEC.
Over the next few days I'll detail how each of these steps work and how, with minimal MEC skills, simple event-driven automations can be built.

Saturday, July 16, 2016

Inforum 2016

Inforum 2016 in New York was a great opportunity to meet colleagues and friends, learn what's coming in the new versions of the Infor product suite, hear from thought leaders in a number of areas and enjoy the Maroon 5 concert :)

Friday, June 17, 2016

Windows 10 patch MS16-072 / 3163622 / 3163018 can break Smart Office

Microsoft released patch MS16-072 / 3163622 / 3163018 for Windows 10 this week and it's causing communications issues between some Smart Office clients and servers:

Looking at the server installation point - https is inaccessible from Internet Explorer and Edge, while it works fine from Chrome:


The Microsoft fix is impacting other areas of infrastructure as well.  The immediate workaround is to uninstall KB 3163622 / 3163018 from affected PCs until either Microsoft resolves the issue or Infor provides an official mitigation.  It also appears that there may be group policy changes that can be made to address this, but I haven't tested these yet:

"MS16-072 changes the security context with which user group policies are retrieved. This by-design behavior change protects customers' computers from a security vulnerability. Before MS16-072 is installed, user group policies were retrieved by using the user's security context. After MS16-072 is installed, user group policies are retrieved by using the machines security context. This issue is applicable for the following KB articles:
3159398 MS16-072: Description of the security update for Group Policy: June 14, 2016
3163017 Cumulative update for Windows 10: June 14, 2016
3163018 Cumulative update for Windows 10 Version 1511 and Windows Server 2016 Technical Preview 4: June 14, 2016
3163016 Cumulative Update for Windows Server 2016 Technical Preview 5: June 14 2016
Symptoms
All user Group Policy, including those that have been security filtered on user accounts or security groups, or both, may fail to apply on domain joined computers.
Cause
This issue may occur if the Group Policy Object is missing the Read permissions for the Authenticated Users group or if you are using security filtering and are missing Read permissions for the domain computers group.
Resolution
To resolve this issue, use the Group Policy Management Console (GPMC.MSC) and follow one of the following steps:
Add the Authenticated Users group with Read Permissions on the Group Policy Object (GPO).
If you are using security filtering, add the Domain Computers group with read permission."

Monday, June 1, 2015

Upgrading M3 to 13.3

I've been looking at the M3 13.3 installation, and while the documentation is a little unclear on the process to upgrade from 13.2 to 13.3, there is a video that provides a little more information.  After working my way through this, my quick notes on the process I followed are below:

Step 1 - Upgrade the technology stack

  • Download Lifecycle Manager Server, Core technology package and Session provider package;
  • Update Lifecycle Manager Server from the command prompt.  This is similar to the initial install process, however we select the Upgrade path and upgrade the existing Server instance; 
  • Start Lifecycle Manager - we are prompted to restart and LCM will then be upgraded;
  • Upload the core technology package and restart LCM when prompted;
  • Upload the session provider package and restart LCM when prompted;
  • Upgrade the Grid;
  • Upgrade GDBC;
  • Upgrade Event analytics and Event hub;

Step 2 - Upgrade the business engine

  • Apply a major upgrade to the BE instance;
  • On the BE, upload the FP3 feature pack for MVX and the country variant;
  • On the BE, apply the feature pack and select FP3;
  • Run upgrade database with fix/feature pack for MVX and the country variant;
  • Run import database data for MVX and the country variant;
  • Run apply MI metadata;

Step 3 - Apply MCP1 for 15.1.3 and then run fix programs

  • The documentation suggests that the next step would be to run the fix programs, but I found these failed to start.  So I downloaded and applied MCP1 (including apply feature pack, upgrade database and import database data for this).  Once MCP1 was installed the fix programs would start;
  • Run fix programs.  This is a new function that replaces the process where these were previously applied one by one from Serverview;

At this stage the "M3 Core" applications have been updated to 13.3 levels.  We still however need to upgrade the other components:

Step 4 - Upgrade other components

  • Download Smart Office and H5 packages;
  • Upload Smart Office and H5 packages;
  • Upgrade UI Adapter;
  • Upgrade Mango server (includes upgrade, installation point export, sign and import);
  • etc.

In general the 13.3 upgrade process is a massive improvement, in particular for the BE and core M3 components.  The complexity of upgrading the add-on components hasn't really changed though and these still vary from a simple right-click upgrade, through complexity approaching that of the initial install.


Thursday, May 28, 2015

M3 13.3 (BE 15.1.3) and M3 on Linux

Infor has just released to GA M3 13.3 (BE 15.1.3) along with a day 1 mandatory MCP.

On InforXtreme there is the M3 13.3 release summary, what's new and BE release notes.

A highlight for me from 13.3 is the increase to 10 character dimension field.  Many sites I work with struggle to fit the information they want to store into the space available in the dimensions, so this is a great improvement.  A minor niggle is given we were looking at a fairly significant database change for this, it would have been nice to have moved to 15 characters for each dimension so we could post large item codes directly into the GL without using surrogate keys, but this is still a massive improvement.

The grower contract management module, discussed in its early stages of development at Inforum 2014, is also of interest.  This leverages purchase agreements and the QMS module for testing while the product is growing.  It also allows for provisional payments to suppliers and final payments based on receipt and testing.

A minor but very nice change is price list identifiers are increased from 2 to 10 characters.  This is a very welcome change.

There's a lot of good changes in this release, as there were in 13.1 and 13.2 before it, way too many to list here.

M3 on Linux
At Inforum last year, M3 running on Linux with PostgreSQL as a back-end was promised.  With M3 13.3 Infor have met this promise for the core M3 application.  The M3/Linux installation guide is up on InforXtreme for this.  This requires RHEL and Postgres Plus Advanced Server.  CentOS is likely compatible, if unsupported, and there is a 60 day trial available for Postgres Plus.  Time to fire up a VM and take a look.


With the 13.x series Infor continues to demonstrate its willingness and capability to invest in M3 to deliver new functionality to published and predictable schedules.