Choosing an Integration Approach
Whether you are moving from on-premise M3 to M3 Multi-Tenant (M3 MT) or building new integrations in M3 MT, the right integration approach depends on a handful of factors. This guide compares the available approaches and walks through a decision tree to help you choose.
This guide covers outbound integrations — from M3 to an external system. For the reverse direction — an M3 BOD triggering a Vince Platform workflow — see Infor ION.
Factors to consider
Selecting the "right" integration approach depends on these main factors:
- Latency — how long before the event needs to be at the target
- Throughput — what frequency of events will be generated per unit of time
- Size — how large is the event/output of the event
- Complexity — how much extra logic and lookups are required (e.g. a raw table record vs. a complete order)
In relation to cost, also consider:
- Filtering — do you need to filter the events, or send all of them? Sending all means higher egress cost.
- Cost — the cost of the service used for publishing events. Some services, such as Streaming, are a separate SKU from Infor and not included in the standard license.
Event publishing approaches
Bold types below are the most relevant/recommended. Italic types are available options too, but not recommended — they require higher maintenance and/or might not be supported going forward.
| Type | Throughput | Size | Complexity | Cost | Filtering | Latency | Comment |
|---|---|---|---|---|---|---|---|
| BOD | Low | Medium/Large | High | Low | Yes | High | Complete objects |
| CMS049/Webhook | Low/Medium | Small | Medium | Low | Yes | Low | Can use lite data, but higher load on M3 |
| ION Document Flow | High | Small | Low | Low | No | Low | |
| ION Document Flow via EA + MEC | High/Medium | Small | Low | Low | Yes | Low | Filtering done by Event Analytics; MEC is used for passthrough |
| ION Document Flow via Script | High | Small | Medium | Low | Yes | Low | Filtering done in a Python script |
| ION Data Lake Flow | High | Small | Low | Low | No | Low | Requires Streaming OFF |
| ION Data Lake Flow w/ Stream Pipelines | High | Small | Low | High | No | High | Requires Streaming ON |
| ION Data Fabric Stream Pipelines | High | Small | Low | High | No | Real time | Requires Streaming ON |
Data replication approaches
| Type | Throughput | Size | Complexity | Cost | Filtering | Latency | Comments |
|---|---|---|---|---|---|---|---|
| Delta queries to Data Lake | Medium/High | Medium | Medium | Medium | Yes | High | Egress costs only |
| Streaming | High | Small | Low | High | No | Real time | Streaming + egress costs |
Detailed flow descriptions
BOD
MEC generates the BOD XML from the raw M3 event; delivered as a complete, unfiltered business document. Throughput: Low · Size: Medium/Large · Complexity: High · Cost: Low · Filtering: Yes · Latency: High.
ION Document Flow (unfiltered events)
Every event is sent to Target as-is — simplest setup, but no filtering means higher egress and target-side load. Throughput: High · Size: Small · Complexity: Low · Cost: Low · Filtering: No · Latency: Low.
ION Document Flow via EA + MEC (filtered events)
Event Analytics performs the filtering; MEC only passes the already-filtered event through to ION Document Flow. Throughput: High/Medium · Size: Small · Complexity: Low · Cost: Low · Filtering: Yes · Latency: Low.
MEC Passthrough can become a bottleneck if volume is high.
ION Data Lake Flow (delta polling)
A scheduled SQL job polls the Data Lake for new/changed rows (delta) via JDBC — no event filtering, egress cost only. Throughput: High · Size: Small · Complexity: Low · Cost: Low · Filtering: No · Latency: Low.
ION Data Lake Flow w/ Stream Pipelines & ION Data Fabric Stream Pipelines
When Streaming is enabled, this combined flow replaces ION Data Lake Flow (delta polling) and ION Document Flow (unfiltered events) described above. With Streaming ON, events reach the target in real time via the Streamer/Streaming Receiver DB path, while DIP DB keeps a queryable copy.
- ION Data Lake Flow w/ Stream Pipelines: Cost High · Latency High
- ION Data Fabric Stream Pipelines: Cost High · Latency Real time
Decision tree
To determine the integration approach, follow this chart.
Document refers to a business document and its content, such as an Order Confirmation, Delivery Advice, or Invoice — not a literal file.
MEC mapping conversion approach
These are generic recommendations and approaches for converting MEC mappings from on-prem to cloud.
| Type | On-prem technology | Convert to cloud | Comment |
|---|---|---|---|
| Plain EDI MEC mapping / Document mapping | MEC + (s)FTP | BOD | |
| MEC mapping with custom code | MEC + Custom JARs | ION Desk + Scripting | |
| MEC mapping with REST API request + response | MEC + Custom JARs + Custom code | ION Desk (+ BOD) | Consider using only ION Desk or splitting the custom BOD into two (1: request map + 2: response map) |
| MEC mapping with custom M3 API | MEC + Custom M3 API | BOD | Consider the standard API or XtendM3 API |
| MEC mapping with SQL to M3 DB | MEC + Custom JARs + DB | BOD | Use EXPORTMI, CMS100MI, MDBREADMI |
| MEC mapping with SQL to non-M3 DB | MEC + Custom JARs + DB | ION Desk + AnySQL | Use the ION Desk AnySQL component to query non-M3 databases; the ION Mapper tool might also be relevant (not the MEC Mapper tool) |
Infor OS documentation
Some relevant documentation from Infor in relation to integration, usage limits, and technology.
| Document | URL |
|---|---|
| Infor OS User and Administration Documentation Library (Cloud) | docs.infor.com |
| Infor ION Desk User Guide | docs.infor.com |
| M3 Integrations Library (Cloud) | docs.infor.com |
| Infor OS Service Limits | docs.infor.com |
Further reading
- M3 — Connection setup for calling the M3 API from Vince Platform
- Infor ION — connect ION so an M3 BOD can trigger a Vince Platform workflow
- Data Lake Usage — build a dashboard to monitor Data Lake usage