KanoaMES v1.12
Release Date - 11/18/25
Implementation Guidance
This release package has been tested against Ignition 8.1.50.
The minimum required version of Ignition is 8.1.33
- kanoaMES_1_12_5.modl
- ApexCharts-signed 1.0.17.modl
- BIJC_Calendar_Component_v1.8.1.modl
Note...
- We have added a constraint to the mes.stateEvent table that prevents duplicates records for assetId, assetStateId and tStamp. The installer will delete any duplicate records it finds before updating the schema.
Summary
Our latest release 1.12 prepares the groundwork for adding 21CFRPart11 compliance to our Quality product. Version control and change history has been added. It also contains a slew of improvements and fixes for KanoaOPS and KanoaTrace.
In summary, we have added...
- Improved downtime editing
- Added Quality check sheet versioning, change history and optimized the database schema
- Added lot routing
Schedule
- We now default the schedule recurring option to 'This event'. This defaults to the smallest change rather than the largest change possible (same as outlook and google calendars).
- Incorrect schedule-break-ups with 'Shift Time Only' turned on. This is fixed.
- Order sidebar not showing orders with date prior to today. This is fixed.
Translations
- Translations have been added to the Hawthorn installer. Translations will now be added and updated with each release.
Performance Events
- Display error on Performance Reason Config. This is fixed.
- Cannot delete a performance state class. This is fixed.
- Performance event assignment shows all reasons when it should restrict to only those that are linked. This is fixed.
- Performance reason links would fail if you didn't select an Item. This is fixed so now you don't have to select an item.
- Current shift is not being picked up by getAssetPerformanceEventsByShift. This is fixed.
- spGetAssetPerformanceEventsByShift is getting truncated. This is fixed.
- spGetAssetPerformanceEventsByShift returns duplicate records when there are multiple mode events in the given timeframe. This is fixed.
Trace
- Added new lotTrackerUDT.
- Trace graph displays orphaned lots. This is fixed
- Lot Attribute Editor is missing from the lot Manager. This has been added back.
- Added asset and material constraints to lot operations.
- Mislabeled column in Lot Operation Configuration. 'Allow Input lots' should read 'Allow Output Lots'. This is fixed.
- Trace graph now supports multiple lot-asset nodes when an operation is repeatedly performed on a lot at the same location.
- Added routing for lot operations.
- Added lot state info to nodes in trace graph.
Documentation
- Log functions intellisense have been updated.
- Item functions intellisense have been updated.
- addItemStateClass does not work as documented. Changed documentation to itemStateClassDescription not itemClassDescription.
Downtime Editor
Asset state events are stored in the mes.stateEvent table with a tStamp. The asset is considered to be in this state until such a time as the next state event is recorded.
The downtime editor allowed a user to delete a state event record, but in doing so, the stateEvent prior to the one that was delete would now 'fill' that time period of the deleted event. This would lead to some confusion as deleting a downtime event might then be filled by a different downtime event. We have changed the logic so that the 'delete' action actually sets that stateEvent to a 'running' state with the idea that a user is trying to clear a downtime event.
Another issue that has been addressed is when a downtime event crossed multiple production modes. In the downtime table, it would look as though there were two downtime events when it was actually the same event just shown for different time periods. Editing or deleting one event, would change it for both. We have changed that logic so that editing one, will create a new state event, so only the event for the time period selected is modified.
- Updated table function mes.fnGetAssetStateEvents() to add stateStart and stateEnd times for downtime editing changes.
Quality
- We have materialized the qds.chkShtType table to optimize the database execution plans
- Added index IX_attributeTolerance_lookup
- Removed unnecessary JOIN from qds.vwCheckEventItems
- Optimized qds.fn_getAttributeTolerances() table function
- Incorrect toast message displayed when creating a new check sheet. This is fixed.
- Tree Entry Method ignores last value. This is fixed.
- Entry Option Buttons are not displayed in the order they are entered. This is fixed.
- Check entry screen does not color code pass or fail options when using string buttons. This is fixed.
- Picklist Trees do not use the order of typed list. This is fixed.
- Not all specification fields are locked when in View-Only mode. This is fixed.
- Incorrect Tolerance calculation when target was set to zero. This is fixed.
- Checks with a failed result are sometimes shown as "Check OK" in Check Table. This is fixed.
- Added a 'Quick Check' button to the notification widget.
Run Control
- Scheduled Events are not updating their 'Produced' and 'Remaining' counts as the actual outfeed increases. This is fixed.
Marquees and Dashboard Widgets
Two new views have been added that can be used to replace or build new asset card widgets.
- kanoa/mes/analytics/widgets/assetCard/assetShiftOEEGraph
View params consist of assetPath, a fontSizeMultiplier that accepts a float to increase the side of the font when scaling for a dashboard and a shiftIndex (int) where 0 is current shift, 1 is previous shift etc. This view is linked to the new [Kanoa]kanoa/timers/getAssetShiftOEETimer tag for its source of shift data.
- kanoa/mes/analytics/widgets/assetCard/assetCurrentModeInfo
View params consist of assetPath and a fontSizeMultiplier that accepts a float to increase the side of the font when scaling for a dashboard.
- Custom dropdown option in Marquee display initially showing id instead of name. This is fixed.
- Marquee Editor 'changed by' field not updated when marquee is updated. This is fixed.
Templates
- Have breadcrumb selector display items in correct sort order. This is fixed.
Security
- Updated security for editing navigation menu options. Anyone with 'configureAssets', 'configureItems', 'configureLots', 'configureQuality' or 'configureSecurity' can now modify the navigation menu.
- Updated security for Enter Checks permission role.
- Updated security for deleting roles.
1.12.2 Release - 11/5/25
Ops
- Auto-link required Modes and States to OEE Enabled Assets. When a new asset is created and set to 'OEE_enabled', require modes and states are now automatically linked.
- Added item duplication feature. You can now duplicate an item along with all its custom properties and asset links.
- Operations Schedule view is now checking for the 'scheduleOperations' role function
- Shift Schedule view is now checking for the 'scheduleShifts' role function
- "Add" button on the Production Rates screen has been changed to "Link"
- Work Orders in the Run Control screen do not show their progress or produced amount. This is fixed.
- Enable/Disable now cascades up and down the asset tree in the asset editor. If you disable or enable an asset, all children of that asset will be also be disabled or enabled.
- Table headings are incorrect for the Items table. This is fixed.
- Added an Item Units configuration tab to the Material Configuration view.
- Items do not show up in the item tree selector if they do not have an item class. This is fixed.
- assetPieChart no longer works in State Mode. This is fixed.
- Added ability to launch a marquee from the Marquee page.
- Prevent dashboard widgets being saved without a name.
- Prevent dashboard widgets being created with duplicate names.
- Added CASCADE DELETE to kanoaCore Schema for attributeEvent, attributeAssetLink, shiftEvent, stateAssetLink and lotOperationEvent tables.
- Improved warning message for unlinking asset modes.
- Fixed issues with editing performance events.
- X-Axis of OEE Bar Chart Widget repeats the date instead of showing the time when the date range is < 24 hours. This is fixed.
- Performance state link doesn't work at the class level. This is fixed.
- Performance Reason Editor doesn't clear links when a state class is deleted. This is fixed.
- Clicking close on delete still deletes the role. This is fixed.
- Update Performance Widgets with ProveIt updates.
- Scheduling doesn't work when 'ShiftTimeOnly' is set and there are no shifts set. This is fixed.
- Breadcrumb does not properly handle "0" sort order. This is fixed.
- Ops Scheduler will declare an event has been scheduled when it hasn't due to "Schedule During Shifts" being turned on and no shifts being defined. This is fixed.
- Added local calendar toggle for event overlap.
- system.kanoa.security.deleteConfig(), deleteRole() and deleteUserAssetRole() now require a userId.
- Incorrect/Odd Order Schedule Information shown while scheduling. This is fixed.
- Setting user to gateway admin fails if the user hasn't been created yet. This is fixed.
- Intermittent bug - Opening the Run Control screen resets the asset path. This is fixed.
- Page startup script missing from kanoaAPP - Marquees not working. This is fixed.
- Added license expired banner on header.
- Handle counterId and assetId of None being passed to system.kanoa.asset.getCounter(). This is fixed.
- Lost foreign characters in translation manager. This is fixed.
- AssetOEEShiftGraph widget is not taking packageCount into consideration. This is fixed.
- ActiveEventsOnly parameter not working for getCalendarEvents. This is fixed.
- OEE Refresh Tag Fails. This is fixed.
- Cannot delete shift block exceptions from the shift editor. This is fixed.
- Added ability to import/export performance state reasons.
- Getting inappropriate "No permission to schedule events" message, and the event is not getting scheduled. This is fixed.
- Items List doesn't load if you select an item class and that item class does not have a background color. This is fixed.
- Downtime editor didn't handle updating the state event properly when a user was editing the current state event and the line changed back to running. This is fixed.
- Updated kanoaAPP and kanoaMES session pageStartup script to handle existing pageID but no kanoa session properties. Session page startup Script should only exist in kanoaAPP and be removed from kanoaMES.
- Tool tip for "Overlap Events" in shift scheduling is incorrect. This is fixed.
- Editing downtime overrides operator note. This is fixed.
Trace
- Lot views are now checking for the 'configureLots' role function
- Fixed tooltips in the Lot Quantity widget.
- Added ability to export/import lot operations, states, state reasons, asset and item links and routing.
- Added uuid to lot routing table for draggable rows in table.
- Increased lotAttributeValue to VARCHAR(MAX) in lotAttribute table so route instances can be stored against a lot.
- Added Step Parameter column to Lot routing.
- Added ability to duplicate a lot route.
- Prevent creation of duplicate lotOperationNames.
- spGetLotActivity() doesn't filter on workOrderId. This is fixed.
- Lot Trace Info doesn't show itemName when item doesn't have an item class. This is fixed.
- Searching for a lotId fails in Lot Table. This is fixed.
- system.kanoa.lot.getLotEvents() fails with assetPath and dateRange. This is fixed.
- Lot functions are not checking for trace license. This is fixed.
- Added Route Event Editor. A route is now associated to a lot based on the itemId or itemClass. The route event can then be modified to add and edit steps based on the need to re-process. routeStep editor can be customized by adding a stepParamEditor attribute to the lot operation with the path to the custom view.
- Added lot operation attributes. This can be used to specify for example a specific view to be used when editing the step params of a route or routeEvent.
- Updated security for lot configuration screen to look for configureLot permissions instead of editOperations function.
Quality
- Only show proper entry options for certain quality check types.
- Check OK shown when there are failed checks in the sheet This is fixed.
- QDS Check Summary by Shift does not work. This is fixed.
- Unable to deselect an asset in Check Sheet Settings. This is fixed.
- Add Quick Check feature requires an item to be selected. This is fixed.
- Text "fluttering" when adding a Description to a Check Sheet. This is fixed.
- Tolerance visuals aren't correct for Range tolerances. This is fixed.
- Added ability to test a check sheet before it is released.
- Archived versions of check sheets continue to be triggered. This is fixed.
- Check Sheet configuration table "jumps" when a check sheet is selected. This is fixed.
- Check Sheets are now enabled automatically after they are released and it is no longer possible to schedule a disabled released check sheet.
Documentation
- Dashboard functions documentation has been updated.
- Lot functions documentation has been updated.
- Security functions documentation has been updated.
- Attribute functions documentation has been updated.
- Update intellisense for quality getSheet() functions.
- Updated all help links to point to docs.kanoa.ai.
- Help links in the Check Sheet Editor are broken. This is fixed.
1.12.3 Release - 11/11/25
Ops
- Shift event dates are off during daylight savings transition. This is fixed.
- Added try/catch block on getAssetOEEShiftTime tag script.
- Modified spDeleteAssetsWithForce to improve speed of deleting an asset with a large number of counterEvents
- Can now drag assets into other assets on the same level.
- Added fix to prevent Run Control selection from clearing the selected assetPath in the Asset operation screen.
- Removed time.sleep() from the marqueeDisplay view. This was causing multiple active scripts to be constantly spawned.
- Added try/catch bloc around the copyAssets() function.
Quality
- Fix for the Spec Indicator.
Trace
- system.kanoa.lot.executeLotOperation() now handles a number of non required parameter keys for input and output lotEvents. Function is wrapped in a try/catch block to ensure it always returns a tuple.
1.12.4 Release - 11/17/25
- Kanoa tag UDTs were not being installed correctly on a clean install. This is fixed.
- All quality functions intellisense except config have been updated.
- Config, item, event, asset, order, schedule sift date, utilities, performanceState, serial and logger functions intellisense have been updated.
- Added 'Downtime By Item' selection option to the kanoa/core/dbp/widgets/analytics/assetDowntimeBarChart view.
- Updated kanoa/mes/asset/overview/assetSummary/assetSummary to correct how weight average OEE is calculated.
1.12.5 Release - 11/18/25
- Updated quality config intellisense
- Added params for lotOperationIdList and lotOperationList to system.kanoa.lot.getLotEvents()
- Operations scheduling color coding doesn't work if config param is not set. This is fixed.