Infor Visual Integration Guide
Connect Infor Visual to MachineMetrics for bidirectional work order and labor tracking synchronization.
| Section | Description |
|---|---|
| Overview | Integration type and data flow summary |
| How It Works | End-to-end data flow explanation |
| Requirements | Prerequisites before setup |
| Step-by-Step Setup Guide | User account, permissions, MachineMetrics API key, and connection info |
| Key Features | Indirect labor, breaks, resource group mapping, closing tickets from Visual, overlapping tickets, corrections, closed accounting periods, work order reconciliation, and read-only mode |
| After Setup | Verification steps |
| Troubleshooting | Common issues and solutions |
Overview
The MachineMetrics and Infor Visual integration enables bidirectional data flow between your ERP system and the shop floor, synchronizing work orders, labor tickets, and production data in real time.
Integration Type
| Attribute | Value |
|---|---|
| Direction | Bidirectional (with optional read-only mode) |
| Data Flow (Inbound) | Work orders, operations, employees, resources, parts, and deviation reasons from Infor Visual → MachineMetrics |
| Data Flow (Outbound) | Labor tickets and operation completion from MachineMetrics → Infor Visual |
| Runs On | MachineMetrics Edge Device (physical or virtual) |
How It Works
1. Management — Work Order Transmission
Work orders are sent from Infor Visual to MachineMetrics every 10 minutes, making them available to operators. The connector sends work orders from your Visual site that are released, plus those closed or cancelled in the last month. Older closed jobs aren't read again. Employees and resources set up at your site, parts, and deviation reasons are sent on the same schedule.
2. Tracking — Labor and Progress Reporting
As operators work on orders within MachineMetrics:
- Labor inputs generate labor tickets
- Work order progress updates in real-time
- Accurate records are maintained automatically
3. Synchronization — Real-Time Updates
Eligible labor tickets are written to Infor Visual about once a minute. The connector supports exporting eligible open tickets. Confirm export eligibility for your installation before relying on a ticket appearing in Visual before submission. When the MachineMetrics ticket closes, the connector writes its actual clock-out and quantities to Visual; the job can continue on a new ticket. Closing an operation in MachineMetrics marks it complete in Visual when its labor ticket is written.
4. Scheduling — Dynamic Visibility
Shop floor managers and production planners gain instant visibility into:
- Work in progress status
- Schedule adherence
- Required adjustments
Changes to the schedule in Visual reach operators on the next work order sync.
Requirements
Prerequisites
| Requirement | Details |
|---|---|
| MachineMetrics Edge | Physical or Virtual Edge Device |
| Infor Visual Version | 7.1.2 or higher recommended for full functionality |
| Network Access | Edge device must have direct network access to your Infor Visual database and outbound internet access to MachineMetrics APIs, including erp-api.svc.machinemetrics.com, which carries labor tickets, Timesheets and connector logs. See Network Requirements Guide for details. |
| Infor Visual User Account | Dedicated account with specific table permissions |
| MachineMetrics API Key | Created by an IT Admin in the MachineMetrics account for this site. See Step 2. |
| Site ID | Your Infor Visual site identifier (found in the SITE table). A MachineMetrics account takes its work orders from one Visual site. |
| Company Time Zone | Set on your MachineMetrics company. Visual stores clock times in plant local time, and the connector converts using this time zone. It won't start without one, and a wrong time zone shifts every ticket's times. |
Step-by-Step Setup Guide
Step 1: Create a MachineMetrics User Account in Infor Visual
Create a dedicated user account with the following table permissions.
If the connector will run in read-only mode (WRITE_TO_VISUAL set to false), the account only needs the SELECT permissions. Grant the DELETE, INSERT and UPDATE permissions before turning write-back on.
DELETE Permissions:
INDIRECT_DIST
LABOR_TICKET
LABOR_TICKET_BREAK
LABOR_TICKET_CURR
PRORATED_LABOR_TX
TRACE_LABOR_TRANS
INSERT Permissions:
INDIRECT_DIST
LABOR_TICKET
LABOR_TICKET_BREAK
LABOR_TICKET_CURR
PRORATED_LABOR_TX
UPDATE Permissions:
INDIRECT_DIST
LABOR_TICKET
LABOR_TICKET_BREAK
LABOR_TICKET_CURR
OPERATION
PRORATED_LABOR_TX
WORK_ORDER
SELECT Permissions:
ACCOUNT
ACCOUNT_PERIOD
ACCOUNTING_ENTITY
ADJ_REASON
APPLICATION_GLOBAL
CURRENCY
CURRENCY_EXCHANGE
CURRENCY_ENTITY
DEVIATION_REASON
EARNING_CODE
ECN
ECN_DETAIL
EMPLOYEE
EMPLOYEE_BINARY
EMPLOYEE_SITE
INDIRECT
INDIRECT_DETAIL
INDIRECT_DIST
ISSUE_REASON
LABOR_TICKET
LABOR_TICKET_BREAK
LABOR_TICKET_CURR
OPERATION
PART
PART_SITE
PART_UNITS_CONV
PREFERENCES
PRORATED_LABOR_TX
REQUIREMENT
REQUIREMENT_BINARY
REQUIREMENT_COST
REQUIREMENT_SCHED
REQUIREMENT_SUM
SETTINGS
SHIFT
SHIFT_DAY
SHOP_RESOURCE
SHOP_RESOURCE_SITE
SITE
SITE_VTA
TRACE
TRACE_LABOR_TRANS
TRACE_NUMBERING
TRACE_PROFILE
UNITS_CONVERSION
WIP_ISSUE_DIST
WIP_LABOR_DETAIL
WORK_ORDER
The connector's LABOR_TICKET_PRORATION_TYPE overrides Visual's proration preference and defaults to NONE. Visual preferences in SITE_VTA (VTA databases) or PREFERENCES (other databases) are a fallback only when the proration request has no override; leaving the environment variable unset still uses the connector default. It reads shift break schedules from SHIFT and SHIFT_DAY. It reads WIP_ISSUE_DIST and INDIRECT_DIST to check whether labor has been posted before changing it. When a completed labor ticket backflushes material whose issue unit differs from its stock unit, Visual reads the conversion factor from PART_UNITS_CONV or UNITS_CONVERSION.
Step 2: Create a MachineMetrics API Key
The connector uses a MachineMetrics API key to send data to your account. The key decides which MachineMetrics account receives the data and which time zone the connector uses. Without a valid key the connector stops at startup and nothing syncs.
An IT Admin creates the key:
- Sign in to MachineMetrics and make sure you're in the account for this Visual site.
- Go to Settings → API Keys and click Create API Key.
- Name it something recognizable, for example
Infor Visual connector. - Select these scopes:
erp,reporting,machine,activityanduser. - Click Save Changes and copy the key right away. It's only shown once.
You'll paste the key into API_KEY in the next step. Other connectors need a key the same way; see Create a MachineMetrics API Key. Infor Visual keys also use the machine and activity scopes.
Create the key in the same MachineMetrics account the site belongs to. A key from another account sends this site's data to that account. If more than one MachineMetrics account reads the same Visual database, each account needs its own key.
Step 3: Enter the Connection Information
An IT Admin enters the connection settings on the Edge device. The customer enters credentials directly; they are never sent to MachineMetrics staff:
- In MachineMetrics, go to Assets → Edge Devices and select the Edge device that can reach your Visual database.
- Open the Edge Services tab and add or edit the Infor Visual service.
- Fill in the values below and save.
Your MachineMetrics implementation team can walk you through the screen, but you don't need to share the password with them.
| Variable | Description | Example |
|---|---|---|
API_KEY | MachineMetrics API key created in Step 2 (required) | ******** |
VISUAL_DATABASE | Infor Visual database name (required; the same name that ends DBCFG_DATASOURCE) | VISUAL |
VISUAL_USERNAME | Infor Visual user created in Step 1 | machinemetrics |
VISUAL_PASSWORD | Password for the user | ******** |
VISUAL_SITE | Infor Visual site ID (from SITE table) | MAIN |
VISUAL_ENTITY | ID from ACCOUNTING_ENTITY table (leave blank if unknown) | 1 |
DBCFG_PROVIDER | Database type — currently only SQLSERVER is supported | SQLSERVER |
DBCFG_DATASOURCE | SQL Server connection coordinate — see format below | 192.168.1.100/VISUAL |
END_POINT and MIDDLEWARE_ENDPOINT (or ERP_API_URL, which takes priority if both are set) can be left blank. They default to https://api.machinemetrics.com and https://erp-api.svc.machinemetrics.com. For a GovCloud account, get these values from your implementation team.
OLDEST_CLOSE_DATE isn't used by the Infor Visual connector, even if the Edge service form shows it. It always reads closed work orders from the last month.
Optional Settings
These change how the connector behaves. Leave a setting out to use its default. For INDIRECT_LABOR_ID and LABOR_TICKET_PRORATION_TYPE, an empty value isn't the same as leaving the setting out: enter MISC or NONE if the field is on the form. An empty proration type stops labor from syncing. Your implementation team can help you choose.
| Variable | Default | What it does |
|---|---|---|
WRITE_TO_VISUAL | true | Set to false for read-only mode |
IMPORT_VISUAL_LABOR_TICKETS | false | In read-only mode, imports Visual's direct labor tickets from the last 14 days |
LABOR_TICKET_PRORATION_TYPE | NONE | HOURS or COST to prorate overlapping tickets. Must be in capitals. |
CREATE_INDIRECT_TICKETS | true | Creates indirect labor tickets from Timesheets |
INDIRECT_LABOR_ID | MISC | Indirect code used when the employee's shift has none |
MINS_THRESHOLD | 0 | Gaps up to this many minutes aren't written as indirect time |
CALCULATE_BREAKS_FROM_SHIFT | false | Deducts unpaid breaks from the shift schedule |
ASSIGN_TO_GROUP | false | Writes labor to the machine's group resource |
SYNC_CLOSE_FROM_VISUAL | false | Closes tickets in MachineMetrics when they're closed in Visual |
SYNC_LABOR_TICKET_DELETES | false | Deleting a ticket in MachineMetrics deletes the ticket the connector wrote in Visual, only if it's unposted and in an open accounting period. Needs write-back on. |
RECONCILE_WORK_ORDERS | true | Runs the daily work order check against Visual |
CREATE_SYSTEM_GENERATED_PARTS | true | Gives work orders with no part number a generated part in MachineMetrics so operators can still run them |
QUANTITY_PER_PART_FIELD | blank | Operation user field (USER_1 to USER_10) holding parts per cycle. Only positive numbers are used. |
OPERATION_DATE_SOURCE | SCHEDULED | WANT_DATE uses the work order's release and want dates for its operations instead of the operation's scheduled dates |
DBCFG_DATASOURCE format: <sql-host-or-ip>[\<sql-instance>]/<visual-database-name>
| Part | Description |
|---|---|
<sql-host-or-ip> | The SQL Server hosting the Visual database (IP address or hostname) |
\<sql-instance> | Named SQL Server instance, if applicable — omit for the default instance |
<visual-database-name> | The Visual database name, as shown in the Visual login dropdown |
Examples:
192.168.1.100/VISUAL
sql-server.company.local/VISUAL
sql-server.company.local\INSTANCE/VISUAL
Key Features
Indirect Labor Tracking
When CREATE_INDIRECT_TICKETS is enabled, the integration creates indirect labor tickets from MachineMetrics Timesheets for clocked-in time without a job. Automatic Timesheet creation requires a machine using ShopPulse labor mode and an operator linked to an ERP employee ID. Operators must clock in and out in MachineMetrics. This workflow does not use ERP Driven sign-ins as its Timesheet source.
- While an operator is clocked in with no job running, the connector keeps an indirect ticket open and closes it when a job starts or the operator clocks out.
- The indirect code comes from the shift assigned to the employee in Visual. If the shift has none, the default code set during setup is used (
INDIRECT_LABOR_ID,MISCunless changed). - Gaps no longer than the configured minute threshold (
MINS_THRESHOLD) aren't written as indirect time. A short gap just before a job is absorbed by moving that job's clock-in earlier. Other short gaps, such as a few minutes between the end of a job and clocking out, are left out of Visual labor totals. - When a correction in MachineMetrics changes a job's times, the connector adjusts only indirect tickets it created itself. It never changes indirect tickets someone entered in Visual, or posted ones.
Breaks from the Shift Schedule
The connector can deduct unpaid breaks using the meal and break times on the employee's shift in Visual for that day. Unpaid breaks that fall inside a ticket are recorded as break hours and taken out of hours worked. This is off by default; ask your implementation team to turn it on (CALCULATE_BREAKS_FROM_SHIFT).
Resource Group Mapping
Individual machines in MachineMetrics can be mapped to resources that represent groups in Infor Visual. To configure:
- In MachineMetrics, navigate to Settings → Machine Groups
- Find or create the group, ensuring it includes all machines that should write to this group resource
- Add the Visual Resource ID of the group to the ERP ID field and save
- In your connector configuration, set Assign Labor Tickets to Machine's Group (
ASSIGN_TO_GROUP) totrue
Both the machine and the group must be mapped in ERP Data Studio, even if the machine points to a placeholder ERP resource.
Closing Labor Tickets from Visual
By default, labor tickets flow one way once they are open: MachineMetrics creates and closes them in Infor Visual. If a ticket is instead closed directly in Visual, MachineMetrics does not know about it, so the job and the operator's run stay open in the Operator View.
The integration can be configured to detect this and mirror the closure back. When enabled, the connector watches labor tickets that are open in MachineMetrics and linked to Visual, and when one is closed in Visual it closes the matching labor ticket, activity set, and operator run in MachineMetrics, using the clock-out time recorded in Visual.
This is disabled by default. To enable it, set Close labor tickets in MM from Visual (SYNC_CLOSE_FROM_VISUAL) to true in your connector configuration. Once enabled, the connector checks for closures about once a minute.
This only closes what it can confirm belongs to the ticket. If the machine has already moved on to a different work order, the newer activity set and operator run are left alone and only the labor ticket is closed.
Overlapping Labor Tickets
When an operator runs more than one machine at a time, their labor tickets overlap. With proration turned on (LABOR_TICKET_PRORATION_TYPE set to HOURS or COST in your connector configuration), the connector prorates the overlapping tickets in Infor Visual. With HOURS, the hours worked are split across the tickets. With COST, each ticket keeps its full clock hours and the split is applied to labor cost instead. The value must be exactly HOURS, COST, or NONE in capitals; anything else stops labor from syncing.
- When every overlapping ticket is closed, the whole group is prorated.
- In
HOURSmode, while one ticket is still open, closed tickets get their share of the time so far. The group is prorated again when the last ticket closes.COSTmode waits for the group to close. - If a clock-in or clock-out is corrected later, the affected tickets are prorated again so their hours match the new times.
If a sync is interrupted partway through a proration, the connector finishes it on a later run instead of leaving the hours half updated. A proration that still can't finish after seven days (for example, because an overlapping ticket stays open) stops retrying. Contact MachineMetrics Support to review and correct those hours.
Correcting Labor Tickets
Corrections made in MachineMetrics, for example in ERP Data Studio, update the existing labor ticket in Infor Visual. The ticket keeps its Visual transaction ID.
- Clock-in, clock-out, and good and bad quantity changes are written to the ticket.
- Switching a ticket between setup and run (production) changes its type in Visual, for open and closed tickets, and its cost rates follow the new type.
Changes to the operator, machine or resource, or work order or operation aren't sent to Visual. Comments and the reject reason are sent along with a correction to times, quantities, or type, but a change to only the comment or reject reason leaves the Visual ticket as it is.
Some corrections can't be applied automatically and need to be made in Visual instead:
- Changing a ticket between direct and indirect labor.
- Switching between setup and run while also lowering the quantity, when Visual has generated backflush labor from the ticket.
If a ticket was deleted in Visual, a later correction in MachineMetrics doesn't recreate it.
Closed Accounting Periods and Posted Labor
The connector doesn't change labor in an accounting period that is closed in Infor Visual.
- If a correction would change a ticket whose date, before or after the correction, falls in a closed period, it isn't written. Make that correction in Visual.
- The one exception is a clock-out that closes a ticket still open from that period. It's applied so the ticket doesn't stay open.
- If the period hasn't been opened yet, the change waits and is applied once the period opens in Visual.
- Labor that has been posted is never deleted. Confirm posted-labor audit support in your deployed connector before relying on an audit log for corrections; contact your SDM if you need that record.
Keeping Work Orders in Step with Visual
Once a day, starting an hour after the connector starts, MachineMetrics compares its released work orders and open operations with Visual:
- A job Visual has closed becomes Completed, and a cancelled job becomes Cancelled.
- A job Visual no longer has as released at your site becomes Deleted. If Visual releases it again, it comes back.
- Visual's Inactive flag is ignored. A released work order stays released in MachineMetrics.
If a run would delete more than 10 work orders and more than 20 percent of them, it stops before changing anything. A separate guard holds back standalone operation deletions when their threshold is exceeded. That operation guard does not hold back work-order deletions or restores, operation completions, or operations deleted with their parent work order. Contact MachineMetrics Support when a guard stops reconciliation. This is on by default; ask your implementation team to turn it off if you don't want it.
Read-Only Mode
The integration can be configured to only read data from Infor Visual without writing labor tickets back (WRITE_TO_VISUAL set to false). This is useful for initial testing, compliance scenarios, or when labor is tracked in a separate system. In read-only mode the connector can also bring Visual's direct labor tickets from the last 14 days into MachineMetrics (IMPORT_VISUAL_LABOR_TICKETS set to true); indirect tickets aren't imported. The Visual user only needs the SELECT permissions from Step 1. Contact your MachineMetrics implementation team to enable this mode.
After Setup
Once the integration is configured:
- Work orders from Infor Visual appear in MachineMetrics
- Operators select and start jobs in the Operator View
- Labor data syncs back to Infor Visual
- Production Schedule Intelligence displays accurate job status
Verifying the Integration
- About 10 minutes after saving the Edge service, open the ERP Error Log and confirm it shows no errors for your site. Fix anything listed, such as a missing company time zone, a failed Visual database login, or a missing table permission, before continuing.
- Open ERP Data Studio and confirm work orders, employees and resources from your Visual site are listed. If nothing appears here and the ERP Error Log is empty too, check
API_KEY: the connector sends its log entries with that key, so a missing or invalid key leaves no entries at all. - Open Dispatch Schedule in MachineMetrics. This menu requires Production Schedule to be enabled for your account; contact your SDM if it is unavailable.
- Confirm work orders from Infor Visual are visible
- Have an operator start and submit a test labor ticket in the Operator View
- Verify the labor ticket appears in Infor Visual. Its Ticket ID in ERP Data Studio fills in once Visual accepts it.
- Check the ERP Error Log again and confirm the test ticket added no errors.
Troubleshooting
| Issue | Possible Cause | Solution |
|---|---|---|
| Nothing syncs after setup | API_KEY is missing or invalid, so the connector stops at startup | Create a key as in Step 2, enter it in API_KEY, and save the Edge service |
| Data appears in the wrong MachineMetrics account | The API key was created in a different account | Create a key in the account for this site and replace API_KEY |
| Work orders not appearing | Database connection failed | Verify credentials, datasource, and firewall rules |
| Work orders sync but labor tickets and indirect time don't, with timeout or server errors | Firewall blocks erp-api.svc.machinemetrics.com | Allow outbound HTTPS to that host. See Network Requirements |
A labor ticket is held with The SELECT permission was denied on the object '<table>' | The Visual user is missing a SELECT grant that Visual needs while saving the ticket, for example PART_UNITS_CONV when material is backflushed | Grant SELECT on that table. Held tickets keep retrying and go through on the next retry |
| Missing tables/permissions | User permissions incomplete | Add missing permissions from Step 1. When upgrading, compare the existing user's grants against Step 1. |
| Labor not syncing back | Write-back disabled | Contact your MM SDM to enable write mode |
| Connection timeout | Firewall blocking Edge | Ensure Edge can reach Infor Visual database directly |
| Wrong site data | VISUAL_SITE incorrect | Verify site ID from the SITE table |
| Indirect tickets not created | Indirect-ticket creation is disabled, or no eligible Timesheet is available | Check CREATE_INDIRECT_TICKETS, ShopPulse labor mode, and the ERP employee link. Confirm clock-in/out creates a Timesheet. If no shift code is configured, the default is MISC unless overridden |
| A labor ticket keeps failing to sync | Visual rejects it, for example an employee with no pay rate at your site, or a missing operation, resource, or employee | The ticket is retried every minute, then hourly after 120 failures; it isn't dropped. Fix the cause in Visual and it goes through on the next retry |
| No labor syncs at all | Proration setting isn't exactly HOURS, COST, or NONE | Correct LABOR_TICKET_PRORATION_TYPE (capitals) |
| Ticket times are off by a fixed number of hours | Company time zone is incorrect, or the connector does not recognize its stored value | Check Settings → Company and contact your SDM to change the time zone or investigate connector version and time-zone handling. The company screen displays the value but does not edit it. |
| A correction in MachineMetrics didn't change the Visual ticket | The ticket's date is in a closed accounting period, or the correction is one the connector can't apply (see Correcting Labor Tickets) | Check the period in Visual and make the correction there |
| Hours on overlapping tickets change after the last one closes | In HOURS mode, closed tickets get an interim share while another overlapping ticket is open | Expected: the group is prorated again when the last ticket closes |
Related Articles
- ERP Integration Guide — General ERP integration overview
- ERP Data Studio — Mapping work centers
- Production Schedule Intelligence — Using the schedule view
- Operator View Guide — How operators interact with jobs
Getting Help
- Setup Assistance: Contact your MachineMetrics Solution Delivery Manager (SDM)
- Technical Issues: Email MachineMetrics Support
- Infor Visual Configuration: Consult your Infor administrator or partner