Tag Archives: M3

Infor M3 EventAnalytics

Harnessing the Power of Events

This is my second post on this subject, but I think it’s worth mentioning again, because still when I speak to many of my clients they have not yet realized the potential of using the EventHub and EventAnalytics modules in Infor M3. This post will be more focused on different use cases for Events.

I’ll begin with a short explanation of the EventHub and EventAnalytics for those who missed my previous post.

The EventHub is part of Infor M3 and is basically listening for changes to any field in the Infor M3 database and triggers events, similar to a database trigger. It can also be setup to trigger events on batch programs, when it is started, exits, fails etc.

EventAnalytics works as a filter to analyze these events and lets you decide what specific events you are interested in. This could be a combination of multiple field values, to target a specific state and you can make it as granular as you wish with logical expressions. It also allows you to capture the field value before it was changed for even more precision.

An example could be to capture the event of an order allocation for a specific item. Perhaps for some reason you would want to log whenever item “ABC123” is allocated in warehouse 200. Then a rule could be defined in EventAnalytics to fire an event when the Item equals “ABC123”, Warehouse equals 200 and the order line status goes from 22->33 (allocated).

The next step is to define a subscriber to handle this event, and that is where M3 Enterprise Collaborator (MEC) comes in. EventAnalytics will produce an XML file containing Event Data. In this case the values of all the fields for the specific M3 file and record in which the change took place, including their values prior to the change. MEC can easily be configured to pick up this message and use these values to accomplish whatever tasks you wish to happen. Needless to say this opens up a host of opportunities and I’ll mention a few below, but only your own imagination sets the limits.

Automation

Anything that does not need any human intervention or evaluation could be automatically entered updated using the data supplied by an event.
If you for example enter an order for a specific customer, you could automatically populate any customer specific fields in the order and extract that information from the customer master file.

Integration

I always found that one of the limiting factors of creating integrations in M3 to be the reliance of the Media Management and the responsibility of the user to print a document to generate an MBM initiator message to MEC, which then triggers the outbound document.
With the EventHub you now have an alternative, and if you wish you can make the outbound message trigger by a specific field update, such as a status change. An invoice could be sent automatically when an order reaches status 66 (invoiced), and you could also log the information in a separate file of when, what and by whom the invoice was created.

Logging/Traceability

A few customers have asked me how they could easily log a change in a specific M3 field, without turning on the audit functionality in M3.
One example could be an address change for a customer, to log what the address was changed from and to, what date and time and by whom.
This is easily accomplished by setting an EventAnalytics filter on the Customer address lines and trigger whenever any are changed, then use a map in MEC to log this information in a database table.

Approval

Perhaps you wish to extend the approval functionality in M3 and you need a Manager to approve any purchases from a specific supplier, group of suppliers or a specific item. Using EventAnalytics to define this rule, you can setup MEC to put a hold on the order, then send an email message to the person responsible with an external link to M3 to complete the approval.
These were just some applications that I can think of right now, but hopefully by reading these you can come up with many more and I would love to hear about them. Please share how you have made use of EventHub in your enterprise.

If you need any help or assistance we are always willing to help. We work on Infor M3 EDI and integration projects around the world. Contact Mathias or visit us at www.integrationwizards.com.

Two happy mature businessman celebrating their success

10 simple ways to ensure your integration projects run on time and budget

 

In this article I will present 10 easy points to keep in mind to ensure that your integration project is a success. There is no research, statistics or other metrics behind this list. Just my personal experience after 15+ years of integration work with Infor M3 and MEC (M3 Enterprise Collaborator). The list is in no particular order.
Please feel free to leave a comment if you think I have missed something.

Let’s get started.

1. Write a detailed project specification

This may seem like common sense, but often as an integration consultant you are left with very little information to start with and you are expected to fill in the blanks. However, the fact is that as an integration consultant you work with all the different processes in the ERP system and it is impossible to be an expert in everything. Besides, every company have different process flows and configurations, making this task even harder. The integration will get done…eventually, after a lot of questions and requests for clarifications, which could have been avoided if the information in the initial specification had been more detailed.

2. Define the roles and responsibilities of the people in the integration project

Usually there is a person in every company that is responsible for the EDI and integration maintenace and might have been so for many, many years. This person may even have developed some of the interfaces way back.
Naturally this person will feel threatened by an external consultant coming along and proposing changes to his or her domain. He or she may even in extreme cases act as a gatekeeper to critical information, thus working against the success of the integration project.
It is important that the roles and expectations of the different people in the project are well-defined by the project leader or the project sponsor.
Everyone needs to pull in the same direction and in most cases all it takes is re-assurance that no ones job is on the line and that the change is ultimately for the better.

3. Provide support to the project from the top level management

Sometimes there is a lack of support by the business and the top level management. Although the integrations may have significant impact on how the business is run, it has quite low priority from management and may even be pushed aside or postponed due to the need to put out fires or to attend to tasks that are quite insignificant.

4. Prepare your IT infrastructure before the project

This is something that should really not be a problem, but sometimes it still is. Some common interuptions to an integration project is integration software which has not been properly installed. Consultant user profiles without the required permissions, unplanned restoring of test systems, wiping all the integration configurations or VPN services that are not working properly.
Individually these may not have a big impact on the project time frame, but many small streams make great rivers (swedish proverb).

5. Try to limit changes during the course of the project

Sometimes you realize things during the project you were not aware of when starting out, therefore it may have been impossible to plan for it. However, these changes can have significant impact on the time frame of the project. As an integration consultant, when reviewing a project specification, you have a general idea of how long time things will take. Especially if you have been doing
it for a while. You know what API’s are available and where you may need to create a web service or make a database call.
However, if these conditions change it is like trying to hit a moving target, and your initial estimate may need to be complete thrown out the window.

6. Clean up your data prior to the project

It is important to understand that garbage in, garbage out also applies in a B2B integration. There is no magical AI (not yet!) that will automatically clean and make sense of the data if it was entered inconsistently or incorrect. A common example are addresses, which can be entered in many different ways, but may have to be in specific defined fields in your B2B transaction. Often causing the transaction to fail at the other end and initially the interface is blamed for not “working” as it is supposed to. Other examples are when reserved fields in the ERP are used for something else than their intended purpose, and suddenly all sorts of strange information is sent in the interface.

7. Prepare for business process change

Often a B2B integration will have significant impact on the business process it supports and sometimes there has not been enough planning ahead for these changes. When it is close to go-live the roles within the process flow and who is responsible for what is still not clear. Even in a fully automated process, there is still potential for errors and exceptions, and it is important that someone is monitoring and taking care of these from day one. This person may not be the one taking action, but is responsible that action is being taken.

8. Provide resources and relevant test data for testing

This is quite common and is always time consuming. You may have finished the integration coding in a day or two, but there is no one available to help with the testing and no relevant data. Often a specific business process flow that needs to be followed (and as mentioned in the first point, every business is different), no one has the time to assist, because they are to busy with their day-to-day tasks. This is where you need the support of the top level management to free up the relevant process owners who understands the business process 100%, knows what to test, how to test it and what results to expect. These people will also play a crucial part in defining the test cases in the test specification and ensure that as many issues as possible are captured before going live.

9. Ask your business partners to respond in a timely manner

This is probably the most common cause of delayed integration projects, which is frustrating, because it is also the point which is the hardest to do something about. You are dealing with people outside the company you are working for, and although the business top-level management may still be able to put some pressure on their B2B partner (depending who the partner is of course) it is still very much out of your hands.
Sometimes it could take days or in extreme cases even weeks before you get a response from a business partner after submitting test data. This can have significant impact on the project time line and also means that everyone involved is getting increasingly disconnected with the project, making it even harder to pick it up again where it was left off.

10.  Keep it simple!

I’ve seen many examples when far too much business logic has been implemented in interfaces. Especially when the functionality is missing in the ERP and it is faster and cheaper to develop it as part of the interface. This is dangerous and after a while the integration becomes a black box and no one really knows what it does.  So my advice is to keep it simple and it’s also good practice to insist on keeping up-to-date documentation on your integrations, so you know down the track what they do, without having to call in external consultants everytime to find out.

I hope you enjoyed reading this article and please feel free to share it if you like it.

If you would like more information or want to discuss an upcoming Infor M3 EDI or integration project, please contact us at Integration Wizards or get in touch with me directly on Mathias Wallgren.
We can assist you at any stage of your integration project, from planning and execution to training and documentation.

Infor MEC - 15 years 0n

Infor MEC – 15 Years on

In this article I am going to talk about Infor M3 Enterprise Collaborator (MEC), an integration platform that has survived for over 15 years and is still as relevant as ever.
It all started at a Swedish software company called Intentia R&D around the turn of the century. As you might remember, this was just about the time when business’ were starting to see the benefits of Internet for more than just static web pages.
At the time I was part of the e-Business team, and it was an exciting period with many new products in the pipeline, such as webshops, e-procurement, web portals and of course M3 Enterprise Collaborator, or Movex e-Collaborator as it was called then.

Our mission was, taken from the original marketing presentation, “to create a solution that enables business-to-business (B2B) e-collaboration in terms of both intra-enterprise and inter-enterprise through Application-to-Application (A2A) integration.

We needed something that were flexible enough to both support traditional EDI based B2B transactions, but would also be able to handle XML (eXtensible Markup Language), which was the new document format that everyone was talking about. A separate project was launched to develop business documents for different business processes and these where initially called MBD (Movex Business Documents), but later renamed MBM (Movex Business Message). The rumour was that MBD abbreviation had the unfortunate association with “Minor Brain Damage”, but I’m not sure if that was true or not.

The MBM documents where initially meant to be generic business documents, based on an open standard such as OAG or RosettaNet, since these were thought to gradually replace traditional text based EDI files. However, later they became based on traditional EDI in an XML format, since it appeared EDI was going to stick around for a while. Interestingly the recently launched BOD’s (Business Object Documents) are back on track with Business Process oriented documents, so perhaps we were just ahead of our time?

Although the original MEC was limited in functionality, most of the components were still the same as they are today. There was a Partner Admin tool, a Mapper and of course the runtime server. The server was running in a command window and not as a service, so someone had to always be logged in and he or she better not close that window.
The Flatfile conversion tool was the only part missing, but the functionality was still there. However, you had to manually define the XML files for each XML to flat translation.

I often hear criticism of MEC, but the fact that it is still around 15 years on, must mean that we did something right.
I think it is important to understand what MEC is and what it isn’t. The most common argument is that it is overly complicated and time consuming and that if you are a programmer you could easily write code to connect to any of the available Interfaces directly. However, I think that then you are missing the point. MEC is more than just an IDE for developing an interface.
It is the sum of its parts that makes it so powerful, and if you wanted to add the same functionality in your custom interface, you would essentially need to build another MEC.

I’m going to list some of the benefits of MEC to a custom interface and I am expecting to get some comments in line with  “you can do that with a custom interface too”, but be aware that MEC is meant to be maintained by business people, not programmers, so if it is not intuitive it is not an option.

  • Graphical mapper IDE in Eclipse, with a palette of drag-and-drop functions, such as all the available APIs (Application Programming Interface).
  • Full version control and simple process to switch between different versions of an interface (also referred to as a maps). Unlimited flexibility, since user-defined java-functions can be created within your maps.
  • Re-usable maps, which are independent of M3 ERP version and can be imported/Exported to multiple environments.
  • Complete Administration, Maintenance and Monitoring platform, where the status and content of each transaction can be easily viewed and appropriate action taken if necessary.
  • A Partner Agreement tool that allows you to define specific workflows and communication requirements for individual partners. It also helps you organize and group all your different integrations in a logical manner.
  • A full set of predefined process steps at your fingertips, including but not limited to ION integration, a Document Asset Management integration, XSL transformations as well as multiple communication protocols for receiving and sending.
  • Already used successfully by a large customer base and developed over 15 years for stable and secure High-Availability, High-Performance and High-Throughput.

The list could go on, but I think the benefits above is enough to expected MEC to be here for some time to come.

Hope you enjoyed reading this article and please feel free to comment or contact me if you have any questions.

Infor M3 Integration alternatives

Infor M3 Integration Toolkit. What to use and when?

If you are planning a new integration project with Infor M3, there are a lot of different options available and in some cases it can be difficult to select the best option. In this article I aim to give some direction and hopefully make the decision easier. Let’s have a look at each of the options and provide some examples of use cases for each.

Infor M3 API’s

Infor Application Program Interfaces (API) have grown significantly in numbers over the past 10 years.
They provide the same business logic as the interactive programs, but as a set of functions, which vary by M3 program. These functions can be called programmatically and include Add, Delete, Update, Get and List functionality.
The M3 API’s are the preferred way to interact with M3, as the business logic is followed and the database is not exposed in any way. That is why most of the other methods I will discuss later use these API’s internally for invoking M3 functions.
The downside with the API’s is that they are quite cumbersome to connect to directly, unless you use propriety classes, and are not well suited for calling M3 remotely over the web.
If you have a local application, which needs to be very tightly connected to M3, and performance is extremely important, then perhaps you could consider building an interface directly to the API’s. This approach would most likely cost more to develop, test and maintain than using any of the standard methods below. Also be aware that the API’s may change between M3 versions, which could easily break the interface.

Infor MEC

M3 Enterprise Collaborator (MEC) was developed as a response to the increase of B2B transactions over the internet about 15 years ago. I was on the first development team and later Product manager for this application, when it was still owned by Intentia in Sweden.
I am very excited that it is still around, and although there has been a lot of improvements over the years, the basic functionality is still very much the same.
MEC allows any application to securely communicate with Infor M3 via XML messages over a range of different protocols.
The M3 Enterprise Collaborator uses API’s to safely update data in M3, but with the ability to write custom java-functions, you can call web services, extract data from other sources or anything else you wish to do.
MEC comes with a complete framework, which includes the ability to setup Partner Agreements for individual configurations by the partner or application with which you wish to integrate. It also comes with a flat-file parser to process text-based files.
An extensive admin interface includes the ability monitor each message and a has a full range of other useful functions to maintain your transactions.
If you have a B2B/EDI type integration, typically over the internet, where visibility and control is important, then MEC is the preferred alternative. It can also be used for A2A integrations and is particularly useful to replicate reference data between disperse systems.

Infor M3 Web Services

Infor M3 Web Services uses the traditional web services SOAP protocol and allows for synchronous communication with Infor M3 over http. Web services methods can be based on API transactions, but can also be based directly on most interactive programs, which makes it very useful for updating data when a suitable API function is missing.
Infor M3 Web Services makes sense for A2A integration, when a remote application, which also supports web services, is pulling the strings and controlling M3.
This could be a web shop which is calling a web service to retrieve information about whether an item is in stock or not.

Infor M3 REST interface

The Infor REST interface is a fairly new development and allows M3 API’s to be called remotely by virtually any programming language, without using the propriety classes required when calling the APIs directly. Compared with Web Services, REST is much more light-weight, can be called from pretty much any tool. It is a great for loosely coupled applications with a many-to-1 connection, where updates on the server side should not break the client.
It is a welcome addition to expose the API functionality to a greater range of possible integration scenarios.

M3 ION/EventHub

M3 ION and EventHub are also relatively new additions and are based on an event driven publish and subscribe service based communication. Infor M3 produces events for any type of update in the database and other applications can subscribe to specifically defined events and retrieve data from the files producing these events.
This type of integration is typically used for internal applications where M3 is the master. However, it can also be used to trigger MEC transactions, that could forward the information to external destinations.

Direct Access via ODBC or OLE/DB

It comes without saying, but if you decide to access Infor M3 directly via ODBC, it should only be to extract data, and NEVER to update data. Being a relational database, the tables in the M3 database have a lot of interconnected records and unless you know exactly what you are doing, it would be very easy to jeopardize the integrity of the database by removing or adding data.
However, there are still applications where direct access makes sense. I am thinking of data warehousing(ETL) and business intelligence tools for example, such as QlikView or Cognos where you need to extract large amounts of data.
There are also situations where none of the previous methods are available, and there is no other option than to extract the data directly.

If you would like more information, please contact us at Integration Wizards or get in touch with me directly (Mathias Wallgren). We can assist you at any stage of your integration project, from planning and execution to training and documentation.