
News
ControlPro
v3.4 will be releasing Monday (11/17/2025) morning at 08:00 EST. The big-ticket
items are listed below. For a full list of what’s changed, see the release
notes below.
·
New
database option: Microsoft SQL Server Express 2022
o The most common cause for ControlPro crashes is loss of
connection with the Microsoft SQL Server LocalDB database engine.
o The SQL Server Express engine is a “beefier” engine.
o
Hopefully,
this will resolve the database connectivity issues.
o The migration is not automatic and requires installing “Microsoft
SQL Server Express 2022”. Please contact MEI support to assist in moving over:
§ ICS Help Desk: (260) 470-2752
§ ICS ControlPro Support: softwaresupport@murrayequipment.com
·
Added
Agvance SSI API interface type.
o No need for FTP or share folder; CP communicated directly
with SSI’s API.
o Originated tickets created manually in CP can also be
created in Agvance.
o
Can pull
down entire product set at once.
·
Added ERP
functionality:
o Tickets now have release dates and hold flags.
o
Parties and
equipment now have hold flags.
·
Tickets can
now have multiple same materials.
o E.g., “28%” as an aggregate of “32%” and “Water”, and also
“Water”.
o E.g., “Water” is allowed to be on each mix group.
o Only a single individual material is allowed per mix group.
o There is no limit on aliases or aggregates that map to a
single material.
·
Systems now
support manifold flushing (requires supporting PLC program):
o Automated materials can have “Buffer Flushes” to put water
between them and the next automated material injected into the manifold.
o Manifolds can have “End-of-Batch Flushes” to fill them with
water after a [sub-] batch.
o ControlPro automatically calculates the total amount of
flush water needed and deducts that amount from any water already on the blend.
o
Flush water
does not need to be added to the ticket beforehand.
·
Added
auto-rinse and auto-flush (requires supporting PLC program):
o Rinse and flush materials are automatically added to batch
tickets.
§ 3rd party tickets are not flagged as
non-exportable.
o Necessary rinse and flush amounts are added to
batch/sub-batch material requested amounts.
o Full batch/sub-batch capacity validations prevent
overfilling trucks.
o
Rinse water
does not need to be added to the ticket beforehand.
·
Reworked
the Material Search screen.
o
Added
material forecasting and dispatch logic.
o Search speed increased.
o Visually cleaned up results grid.
o Added options to extend search criteria to ingredient and
aggregate materials.
·
Added an
"Auto-Purge Tickets Before" date.
o All tickets before the selected date will be automatically
purged in all networked instances.
o Selecting this date is enabled on CHub servers or by
requesting access to the MEI Help Desk
·
The speed
of justification workflows has been increased significantly.
·
Creating or
importing tickets can now automatically send ticket summary emails to
customers.
·
Material
store transaction rework:
o Live: Transactions should be live long enough for all CP
instances to justify with each other. The current store amounts are calculated
in real-time from archived starting points, minus all live transactions.
o Archived: The amounts of archived transactions have already
been applied to store archive starting points. They no longer affect store
current amounts directly. They exist for historical reporting purposes. By
default, transactions stay live for 7 days before they’re archived.
o Purged: Transactions that fall past the purged threshold are
permanently deleted. By default, transactions stay live and archived for 45
days before they’re purged. (7 days as live, 38 days as archived.)
·
Added
Agnext sensor support.
·
Added
‘Each’ as a valid UoM option for billing-only materials.
·
Breaking up
the Details and Interfacing tabs on Originator Details screen.
·
Adding On
Hold flag to originators.
·
Capturing
gross/net weight with a scale now supports multi-ticket batches.
·
Reworked
extra columns on the Batch tab on the System Details screen.
·
Application
exceptions:
o Now have levels: error, warning, and information
o Now automatically delete themselves. (configurable on the
Settings screen)
§ Errors: 7 days
§ Warnings & information: 3 days
o Heartbeat exceptions are now warnings.
o CP now monitors hard drive space and memory usage.
·
Added
foreground latency KPIs.
·
Embedded
Murray API Key for the Agvance API into the integration.
·
Allowing
all non-in-progress loads to be adjusted.
·
Added SQL
Server Express support.
·
Scales:
o Moving the simulation controls.
o Can now optionally create dispatches.
·
Override
printers can now be scales as well as systems.
·
Scales can
now be configured to validate as unattended.
·
Mass update
of Helm Ag’s material IDs to support new SAP ERP solution.
·
Agvance API
fully implemented.
o Can create tickets in ControlPro and CP creates them in
Agvance.
·
More
terminal work.
·
System
Details screen:
o Rearranged Tickets tab columns to optimize horizontal screen
real estate.
o Ordering tickets:
§ Added order up/down action buttons.
§ Continuous processing now uses ticket order.
§ Order can now be set by drag-n-drop.
o Limiting batches to 50 tickets.
o Added validation requiring systems to have a mass capacity
unit when processing tickets with aggregates.
·
Removed
deprecated "AlwaysExportAs" KVP from originators.
·
Added a
drag-n-drop adorner to show what component(s) are being dragged.
·
All builds
now use Live wyDay product keys.
·
Ticket
Details is now tall enough to display 8 materials.
·
Gave
scanner status message and error flag a template tag.
·
Dispatch
updates:
o Added originator options to send ticket summaries on new
dispatches and release date changes.
o Renamed "XAT" to "Release (XAT).
o Systems now validate dispatch release date.
·
ERP
updates:
o Added On Hold flags to party and equipment.
o Validating all parties and equipment associated with batches
are not on hold.
·
Scales now
can detect scale head being offline.
·
Added
formatted material actuals to material details output to PLC.
·
Multiple
materials are now allowed on the same ticket, but not in the same mix group.
·
Rinsing and
flushing:
o Don't flag tickets as non-exportable when adding rinse or
flush materials.
o Added extra fields to the Batch tab to better display what’s
going on.
o Disallowing rinse/flush on MMG tickets and on all
non-automated liquid systems.
o Added manual sub-batch count.
·
Added
calculated relative density (specific gravity) to materials.
·
When
duplicating tickets/formulas, don't duplicate auto-added materials.
·
Scale
auto-capture now works for non-RFID scales.
·
3rd party interfaces
now select the instance to be active.
·
Organized
3rp party specific options.
·
Added
ullage to material stores.
·
Tickets now
have release dates and hold flags.
·
Systems now
support manifold flushing (requires supporting PLC program):
o Automated materials can have “Buffer Flushes” to put water
between them and the next automated material injected into the manifold.
o Manifolds can have “End-of-Batch Flushes” to fill them with
water after a [sub-] batch.
o ControlPro automatically calculates the total amount of
flush water needed and deducts that amount from any water already on the blend.
·
Added
auto-rinse and auto-flush (requires supporting PLC program):
o Rinse and flush materials are automatically added to batch
tickets.
o Necessary rinse and flush amounts are added to
batch/sub-batch material requested amounts.
o Full batch/sub-batch capacity validations prevent
overfilling trucks.
·
Added
option to lock materials from being updated from 3rd party interfaces.
·
Reworked
the Material Search screen:
o Added dispatches.
o Updated inventory forecasting logic.
o Search speed increased.
o Visually cleaned up results grid.
o Added options to extend search criteria to ingredient and
aggregate materials.
o Added IsLocked and IsStabilizer.
·
Renamed
"XAT" to "Release (XAT)”.
·
Added
originator options to send ticket summaries on new dispatches and release date
changes.
·
Added On
Hold flags to party and equipment.
·
Validating
all parties and equipment associated with batches are not on hold.
·
Terminal
Project (WIP):
o Added TerminalSystems.
o Added TerminalScales.
o Added Check-Ins.
o Added TerminalWorkflow.
·
Scales now
recognize loss of communication with the scale head.
·
The Smart
Ounces option is now for all originators.
·
Added more
details to duplicate load logging.
·
Reworked
the logic for how satellites request justification from servers.
o [Finished] multi-threading CHub communication update.
o Redesigned the Network Log screen.
§ Window can now be maximized.
o Added an ‘Abort Justification’ button. (MEI only)
o Removed the ‘Safety Margin’ setting for recent timestamp
justification.
·
ControlPro
no longer waits for hung up background tasks to complete before closing.
·
Added a
background task indicator to the Settings screen.
·
Added a DB
DataKey KPI.
·
Added
Sensor/Transaction Reconciliation logic.
o Added sensor read interval setting.
·
Changed
"Ounces" to be explicitly "Dry Ounces".
·
Converted ARS/SAP
to have user configurable UoM
·
Added an
"Auto-Purge Tickets Before" date.
·
Added more
justification logging.
·
Added
attempts to batch logging.
·
Logging:
o Justification logging now creates its own files.
o Logs are now hourly, not daily.
·
Streamlined
New Report Wizard.
·
Tickets
canceled from interfaces now audit the file name.
·
Added the
'Aggregate-Only" dispensing type.
·
Multi-threading
CPI and interface importing and exporting.
·
Important
email tests now show error messages.
·
Added
archiving originator to archive ticket ID.
·
Added
consignee point ticket-customer type. (Agvance)
·
Added
support for a different last load size. (Agvance & legacy text)
·
Field
images:
o Are now stored on customer components if able. (Agvance
& EFC)
o Are updated on import.
o Adjusted field image screen real estate.
·
Cleaned up
some tabs and screen real estate on various windows.
·
Added
ticket created and modified fields to the Ticket Details screen.
·
Added a
"Send New Ticket Notifications" workflow.
·
Added the
"Pushing batch material details" feature.
·
Added the
Help menu option to email the last backup to MEI.
·
Only CHub
servers now show memory management popup.
·
Multi-threading
CHub endpoint workflows.
·
Added
redundancy to material auto-justification. Added Agnext sensor support.
·
Justification:
o Reimplemented server multi-pipeline workflow.
o Cleaning up buttons on the Settings screen.
o Compressing CPI and CHub data packets to speed up
communication.
·
Printing
and reports:
o Updated Template Documentation to include modern instruction
on how templates are created and used.
o All printing activity will now happen in the background.
o Reports now email .PDF and .CSV out on a single email.
o Real numbers in print templates can now specify the decimal
precision.
o Added tags for alternate ID lists.
·
Material
store transaction rework:
o Adding transaction IDs to search and store transactions
screens.
·
Updated
EULA accepting workflow.
·
Implementing
RFC 2898 cryptography for password hashing.
·
Renaming
Party and Equipment "Unattended ID" fields and columns.
·
Settings
screen:
o Added max backup counts.
o Added log and export paths to Data tab.
o Removing duplicates from lists when sorting them.
·
Backups are
now compressed into .ZIP files.
·
Billing-only
materials:
o Added 'Each' as a UoM option.
o Can now have alternate IDs.
o Added filter options to load delivery templates to include
billing-only and/or PLC-only materials.
·
Added
"Test" buttons in-grid for contacts.
·
Added the
option to "Process Continuously".
·
All search
screens now have Created, Modified, and Modified By columns.
o Visibility controlled by the Show Extra Fields option.
·
Material
store transaction rework:
o Transactions now exist outside of material stores. Stores
link back to them. This greatly increases justification performance.
o New paradigm: transactions are now handled differently
depending on their state.
§ Live: Transactions should be live long enough for all CP
instances to justify with each other. The current store amounts are calculated
in real-time from archived starting points, minus all live transactions.
§ Archived: The amounts of archived transactions have already
been applied to store archive starting points. They no longer affect store
current amounts directly. They exist for historical reporting purposes. By
default, transactions stay live for 7 days before they’re archived.
§ Purged: Transactions that fall past the purged threshold are
permanently deleted. By default, transactions stay live and archived for 45
days before they’re purged. (7 days as live, 38 days as archived.)
o The Transactions tab has been reworked.
§ Transaction Archiver: the instance of CP that will
automatically perform the normal archiving and purging workflow during its
daily maintenance window.
§ Archive Transactions Now: performs the normal archiving and
purging workflow.
§ Archive All Transactions: immediately archives all
live transactions.
§ Purge Archived Transactions: immediately purges all
archived transactions.
o Note: If an instance of CP has not been able
to justify for some time and has transactions that fall beyond the archive cut
off, the transactions will be archived automatically without
applying their amounts to the store archive starting points.
o Archiving workflow now has a modal progress window.
o Added a “Source” field to Transaction Search screen
criteria.
o Transaction IDs now reset annually.
·
Right
clicking a checkbox now sets the value to null.
·
Search
screens will now focus on the first text box when opened.
·
Added a
“global app data modified by” field to Settings screen.
·
Beginning conversion
of combo box values. (work in progress…)
·
Fixed an
issue with adding tickets to systems that could result in zero-amount loads.
·
Fixed an
issue the was preventing transactions to be created when a material was being
used on two different batches.
·
Batch
flushing and rinsing fixes:
o Auto-rinse now adds the rinse amount to the batch requested.
o Fixed issue with simulated actual rinse amounts.
o Fixed an issue that was zeroing out rinse amounts.
o Fixed an issue with rinses that was not calculating the
total batch amount correctly.
o Fixed an issue where a rinse material would overwrite a
flush material’s requested amount.
·
Memory
management:
o Added a fail-safe to protect against multiple identical
components being added to the internal memory management lists.
o Fixed a component lookup issue that could result in
duplicate components being loaded into memory.
o Component lookups by UIDs take preference again.
·
Protected
against a possible null error in reordering tickets on the System Details
screen.
·
Protected
against a random null error when opening up the print template configuration
control.
·
Zero-load-material
amounts bug:
o Added an internal batch completion error as a sanity check
to prevent batches from completing as zero-amounts.
o Added a possible fix when assigning tickets to systems.
·
Systems no
longer try to read HMI data while in simulation mode.
·
Calculating
batches by “Remaining By Materials” will no longer request a negative batch
material amount.
·
CP_CSV will
now parse enumeration values with case insensitivity.
·
Fixed some
bugs when trying to show errors at startup.
·
Scales:
o Fixed some scale error messages from falling through the
cracks.
o Clearing ticket ID now clears the ticket.
·
Preventing
failed ticket reexporting heartbeat tasks from staking on top of each other.
·
ARS/SAP
interface:
o Export errors now show the ticket ID.
o Fixed some export errors.
·
Properly
assessing FTP error messages.
· Fixed aborting batches with Ignore Blend Ratio enabled.
· Fixed issue with importing tickets with multiple materials.
· Enabled grid row action buttons (delete buttons) while parent is not allowed to be modified.
· Protected against app crashes when clicking the Escape key while editing an ID field.
· Getting the correct manifold pulse unit.
· Fixed issues with importing/exporting CP CSV FTPS interface files.
· Multiple materials are now allowed on tickets from interfaces.
· Failsafe ID uniqueness now is case sensitive.
· Fixed memory management issues with failed imports.
·
Updated
code signing certificate.
·
Batch error
states:
o
Allowing
complete and abort workflows to proceed when in an error state.
o
Don't read
PLC configuration stuff if the PLC status is Error.
·
Material
stores:
o
Stores can
now be purged.
o
Warning and
reserve amounts are only in violation if current amount is less than.
o
Better
defaulting sensor statuses.
·
Fixing
editable number fields to better enter negative numbers.
·
Added
failsafe check to prevent duplicate components from being created in the
database.
·
Limiting
the initial size of the Network Log screen.
·
Fixed
memory leak issues when looking up components by their children. E.g.,
searching by:
o
Dispatch
o
Load
o
Store
·
When automated
materials or VARs are deleted, the Meter and VAR Total VAR/Materials columns
are updated.
· Auto-rinse/flush fixes.
o Amount field is now searchable field.
o Uncrossing pounds/amount wires for flush actuals.
o Adding flush/rinse materials with default unit.
o Account for non-rinse/flush aliases.
o Removing validation preventing multiple material transactions per load.
· When NTEP precision is applied, round numbers instead of truncating them.
·
Auto-rinse/flush
fixes:
o
Multiple
fixes with configuring batches.
o
Multiple
fixes to distributing delivered amounts back onto ticket materials.
o
Unattended
equipment with compartments now set manual sub-batch count to 2.
o
Manifold
flush EoB amount is now editable by anyone.
o
Disable
Fixed-Repeat while flushing.
o
Locking
down sub-batch recalculate to By Material when rinsing/flushing.
·
More fixes
to Material Search usage logic.
·
Fixed issue
with searching for components in memory using partial IDs.
·
More fixes
to flushing logic.
·
Fixed batch
details logic for HMI display screen.
·
Duplicate
active material VAR message now shows VAR name, not index.
·
Fixed issue
with calculating on hold from ticket release date.
·
Rinsing and
flushing:
o
Multiple
bugs cleaned up.
o
Only add
end-of-batch flush to the last sub-batch.
o
Ensuring
that the end-of-batch flush is always sent.
o
Protect
against not all meters having a manifold.
·
Allow
Break/Fix by default.
·
Batch Material
Details: send [---] for automated materials with 0 requested pulses.
·
Variables
now require a Selected System Meter.
·
Reset
current sub-batch when clearing the PLC.
·
Fixed
sanity check logic for ticket with no loads.
·
Justification:
only force NOW for ID summary discrepancies when external is newer.
·
Freeform
text containing '%' characters now work correctly when searching.
·
Correctly
reverting compound combo box fields on search criteria when reverting reports.
·
Interfaces
better translate density unit.
·
Added significantly
more logging to justification logs for debugging.
·
Fixed
interlock check for in-progress justification.
·
Fixed some
logic for justification and time stamp comparison.
·
Added
better protection against ‘unavailable’ components at the CHub endpoints for
multiple simultaneous incoming calls.
·
Ignoring
satellite readbacks when the component was ‘unavailable’.
·
Truncating
attribute values to 1024 characters.
·
Added more
logging for justification and ticket duplication.
·
Fixed SQL
issue when searching for archived tickets.
·
Added
failsafe database ID-uniqueness validation to load and dispatch creation.
·
Fixed some
possible issues with justification.
·
Added
protections to component searches to prevent duplication of components in
memory.
·
Fixed issue
preventing force retries from completing.
·
Added child
ID verification to justification.
·
Fixed
memory locking issues with print templates.
·
Search
screens now correctly display elapsed time.
·
Material
search:
o
Fixed
material usage logic to now include tickets with no loads.
o
Now
correctly limits load criteria.
·
Fixed an
issue that allowed child views to become unusable.
·
CHub
servers close details screens of views that are to be updated.
·
Added better
protection and some cleanup of duplicated components.
·
Fixed an
issue that allowed 3rd party interfaces to avoid some ticket
validations on CHub servers.
·
Fixed log
error message color.
·
Multiple
fixed to justification logic.
·
Protecting
User Unput popup to always be on the foreground thread.
·
Validating
that a system is enabled before it can start processing.
·
Only enable
the Process button if the system has control of the PLC.
·
Fixed
weekly backup logic to not backup every heartbeat.
·
Fixed
Originators tab width.
·
CPG
originator no longer shows up in the Exception Log.
·
Fixed Path
error for justification logging.
·
Fixed EULA
heartbeat threading and multiple window issues.
·
Duplicate
load ID validation only flags new loads.
·
Added
propagation logic to purge duplicate loads.
·
Ensuring
log file names are valid.
·
Protected
component purging workflow against some database issues.
·
Fixed
issues with global data not updating and not notifying listeners.
·
Protected
batch configuration workflow against dividing by zero sometimes.
·
Better
protecting client payload parsing.
·
Validating
printer name and paper source are not empty.
·
Fixed Agvance
import issue with unprotected Field reference.
·
Added
explicit duplicate load ID validation.
·
Fixed
issues with "Modify Open Tickets With New [A-C] Defaults" workflow.
·
Justification:
o
If time
stamps and modified ID match, stop justifying.
·
Combo box
fields on the Material Details now disable correctly on alias materials.
·
Aliased and
alias materials properly update their UIs when one or the other is modified.
·
Updated
originator prefix migration tool to now migrate:
o
Alternate
IDs
o
Alias
material IDs
o
Unattended
systems
·
Fixed logic
issues around VARs without an assigned meter.
·
The
external ticket logic now adjusts for offset MicroLogix PLCs.
·
Do not
force batch amounts and ticket amounts to be the same. (volumetric aggregate
densities may not line up.)
·
New report
windows now persist properly.
·
Fixed issue
with calls to a generic Report window. (These no longer exist.)
·
Fixed
issues with searching internally for components.
·
Fixed issue
with this instance of CP not being bolded in the grid.
·
Fixed issue
with AgGateway not adding materials to clean export files.
·
Removed
validation on external ticket materials.
·
Fixed the
password migration SQL.
·
Protecting
search screens against SQL errors and out of range values.
·
Fixed some
issues with accessing internal lists.
·
Fixed some
issues with exporting components via CPI.
·
Better
thread protecting database restarts.
·
Fixed issue
where ticket summaries would not email if there were no loads.
·
Popup
windows created by CP should no longer appear behind other windows.
·
Fixed
manual system originated search screen defaults for physical state.
·
Archived tickets
now release their memory when they haven’t been looked at in a while from the
UI.
·
Fixed issue
preventing printing from Ticket Details screen.
·
Fixed crash
issue with creating new reports.
·
Clients
failing to communicate with CHub server no longer show crash report tool.
·
Fixed issue
preventing tickets from being added to systems.
·
Dispatches
can now be freely added to tickets even when they're not allowed to be modified
from the originator.
·
Protecting
multiple workflows against nulls and invalid castings.
·
Multiple
fixes to multi-threading safety.
·
Put material
store current balance calculations on background threads.
·
Fixed
originator and load justification logic.
·
Fixed
issues with post-season cleanup.
·
Removing
"Any" options on details combo boxes.
·
Toning down
the progress bar opacity.
·
Added Crash
Reporting tool.
·
Protecting
system ticket amount calculations from zero batch amounts.
·
(Temporarily
including debugging symbols to help identify CHub crashes.)
·
Fixed
'State' column mappings on Create Ticket Wizard.
·
Fixed
Ticket & Formula Search screen 'Total Amount' column mapping.
·
Fixed issues
with email failing to identify the correct server.
·
Fixed
material store Type values.
·
Fixed an
issue preventing loads from being transferred.
·
Sorting
transactions when reading from the database.
·
Fixing
issues with database communication while saving parties and equipment.
·
Backfilling
missing database records that are preventing cleanup in CHub servers.
·
Addressed
multiple issues with the transaction rework.
·
Material
store "Add Transaction" button is now disabled when the store does
not use transactions.
·
So long as
the unattended ticket isn't nulled out, the requested amount will not be reset.
·
Added more
protections for interacting with grids.
·
Protecting
material alias list from invalid material ID links.
·
Fixed UoM
validation for ticket & recipe materials and material types.
o
Billing-only:
Each or None
o
PLC-only:
None
o
Normal:
valid weight or volumetric UoM.
·
Sorting
transactions before calculating the line item balances.
·
Fixed
network log issues.
o
Log line
groups now color code correctly.
o
Originator
logs no longer duplicate.
o
Mutex lines
are now gray.
· Justification:
o When a component is modified in a satellite, it is no longer read back in as a recently modified component.
·
Better
protecting modal progress popup from multiple workflows.
·
Null
protecting multi-view persistence.
·
Transaction
archiving warning logic now checks for transactions, not stores.
·
Protecting against
an edge case crash with print template managers.
·
Clients can
now update global app data.