Acuit Pinpoint 7 Change History
7.11.3-alpha - 2024-09-04
Workstation
- Change: Now the unit display areas of the user interface are not explicitly disabled while the UnitLoaded workflow is running. This allows custom views to add buttons to the MannedUnitButtonPlugInRegion region that can work while the UnitLoaded workflow is running. Note that the MannedUnitSinglePlugInRegion and MannedUnitPlugInRegion plug-in regions were not previously being disabled while the UnitLoaded workflow is running.
7.11.2-alpha - 2024-08-31
Workstation
- New: Now custom views can bind to UnitLoaded workflows.
7.11.1-alpha - 2024-08-29
- Fix: Across all products: Fixed problem where version numbers started including a fourth version number (since v7.11.0-alpha).
Workstation
- New: Added the ability to configure custom views via WPF XAML files, via the Workstation:Views key/value configuration settings.
Developer API
Acuit.Pinpoint.Common Package
- Change:
AssemblyAttributes
.Version
now strips out any fourth version number from the version string from anAssemblyInformationalVersionAttribute
.
7.11.0-alpha - 2024-08-28
Workstation
- New: There is now a
Unit
parameter available for workflow event handlers when a unit is active at the station. - Fix: Fixed an obscure crash that can occur when the Configure Server Connection dialog box is
opened and canceled multiple times in quick succession, resulting in an "An unhandled exception
occurred" log entry with an exception message like (since v7.8.101-alpha):
System.NullReferenceException: Object reference not set to an instance of an object.
- Some internal components were updated: CommunityToolkit.Mvvm 8.3.0, Telerik.Windows.Controls 2024.3.821, WpfScreenHelper 2.1.1.
7.10.0 - 2024-08-21
Server
- BREAKING CHANGE: Removed support for the deprecated station type configuration setting
autoLogOnWorkerId
.autoLogOnBadgeNumber
should be used instead. - Some internal components were updated: Quartz 3.13.0.
Web
- Some internal components were updated: .NET Runtime/ASP.NET Core/Entity Framework Core 8.0.8, Telerik.UI.for.Blazor 6.2.0.
Workstation
- Fix: Fixed a crash that can occur when a component button is quickly clicked multiple times
(which can also be caused by a touchscreen or touchscreen driver not behaving correctly),
resulting in an "An unhandled exception occurred" log entry with an exception message like (since
v6.212.41-alpha):
System.InvalidOperationException: A component scan is already active.
- Fix: Added a missing Spanish translation.
- Some internal components were updated: Microsoft.CodeAnalysis.CSharp.Scripting 4.11.0, Microsoft.Data.Sqlite 8.0.8.
Reporting
- Some internal components were updated: .NET Runtime/ASP.NET Core 8.0.8.
Developer API
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 8.0.8.
Acuit.Pinpoint.Server.Configuration
- BREAKING CHANGE: Removed support for the deprecated station type setting
autoLogOnWorkerId
in line configuration XML.autoLogOnBadgeNumber
should be used instead. - BREAKING CHANGE: Removed the
AutoLogOnWorker
andAutoLogOnWorkerId
properties fromStationTypeSettings
andEffectiveStationTypeSettings
.
Acuit.Pinpoint.Workflows Package
- Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.11.0.
7.9.0 - 2024-08-09
Server
- Some internal components were updated: Quartz 3.12.0.
Web
- Change: Minor UI improvements.
- Fix: Fixed errors that can occur when using the Component Verification Tester, where the connection to the server is lost, with an "Attempting to reconnect to the server" message appearing on the page that does not recover. The web browser console log will show errors like "Error: Connection disconnected with error 'Error: Server timeout elapsed without receiving a message from the server.'" or "Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 (no reason given).'"
- Some internal components were updated: codemirror 5.65.17, jquery-validate 1.21.0, LigerShark.WebOptimizer.Core 3.0.426, Serilog.AspNetCore 8.0.2, Telerik.UI.for.Blazor 6.1.0.
Workstation
Change: Added context to error messages when attempting to look up a workflow parameter from a table fails. Instead of a vague error like:
The workflow event handler for event "NewTestRequested/Run Test" failed execution: An unhandled error occurred in the workflow. Multiple column headers in the table match.
Now the error message will be something like:
The workflow event handler for event "NewTestRequested/Run Test" failed execution: An unhandled error occurred in the workflow. Attempting to look up the parameter "TargetCurrent" from the "RunTestParameters" table failed. Multiple column headers in the table match "TargetCurrent".
Some internal components were updated: SQLitePCLRaw.bundle_e_sqlite3 2.1.9, Telerik.Windows.Controls 2024.3.806.
Reporting
- Some internal components were updated: jquery-validate 1.21.0, Serilog.AspNetCore 8.0.2, Telerik.Reporting 18.2.24.806.
Developer API
Acuit.Pinpoint.Common Package
- Change: Now the
MessagesHierarchyAsSingleLine
andMessagesHierarchyAsMultipleLines
extension methods omit repeated exception messages (inExceptionExtensions
).
Acuit.Pinpoint.Tables Package
- Change: Added Spanish translations.
- Change: Improved the exception error message when the
Table.FindHeaderIndex
method finds multiple columns to include the searched-for column header name.
Acuit.Pinpoint.ResourceManagement Package
- Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.9
7.8.119 - 2024-07-29
Server
- POTENTIAL BREAKING CHANGE: Server now references CsvHelper 33.* with breaking changes, so Server plug-ins that reference CsvHelper might need to be updated.
- Change: Minor performance enhancements.
- Fix: Fixed a potential crash upon service startup, with a fatal error similar to (since
v7.0.59):
ERROR Acuit.Pinpoint.Server.PinpointServerService - Service failed to start System.AggregateException: One or more errors occurred. ---> Unity.ResolutionFailedException: Resolution failed with error: Exception has been thrown by the target of an invocation. For more detailed information run Unity in debug mode: new UnityContainer().AddExtension(new Diagnostic()) ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeLoadException: Could not load type 'Acuit.Pinpoint.Common.Configuration.AllUsersFileSettingsProvider' from assembly 'Acuit.Pinpoint.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null'.
- Some internal components were updated: CsvHelper 33.0.1, ExcelDataReader 3.7.0, Quartz 3.11.0.
Web
- Fix: Fixed a bug where some edit forms (like Edit Security Group) will not allow blank entries for fields that should accept them, showing a "The field is required" validation error when it should not (since v7.7.12).
- Some internal components were updated: .NET Runtime/ASP.NET Core/Entity Framework Core 8.0.7, CsvHelper 33.0.1, ExcelDataReader 3.7.0, LigerShark.WebOptimizer.Core 3.0.418, Microsoft.TypeScript.MSBuild 5.4.5, Serilog 4.0.1, Serilog.Enrichers.Thread 4.0.0, Telerik.UI.for.Blazor 6.0.2.
Workstation
- BREAKING CHANGE: Potential breaking changes that could affect plug-ins. See the Acuit.Pinpoint.Workstation.Interfaces Package (Workstation Plug-in API) section below for details.
- POTENTIAL BREAKING CHANGE: Workstation now references CsvHelper 33.* with breaking changes, so Workstation plug-ins that reference CsvHelper might need to be updated.
- Fix: Limited defect and repair note input window width so that longer note content is not pushed off the screen horizontally.
- Fix: Fixed a potential crash when attempting to load types from Acuit.Pinpoint.Common (since v7.0.59).
- Some internal components were updated: CsvHelper 33.0.1, ExcelDataReader 3.7.0, Microsoft.CodeAnalysis.CSharp.Scripting 4.10.0, Microsoft.Data.Sqlite 8.0.7, System.Reactive 6.0.1, System.Text.Json 8.0.4, Telerik.Windows.Controls 2024.2.514.
Reporting
- Some internal components were updated: .NET Runtime/ASP.NET Core 8.0.7, CronExpressionDescriptor 2.36.0, CsvHelper 33.0.1, EntityFramework 6.5.1, Hangfire 1.8.14, Serilog 4.0.1, Serilog.Enrichers.Thread 4.0.0, Telerik.Reporting 18.1.24.709.
Developer API
Acuit.Pinpoint.Common Package
- New: Added the
SafeFileWriter
helper class.
Acuit.Pinpoint.Configuration
- Change: Added a .NET 4.7.2 target.
Acuit.Pinpoint.Data Package
- Now references EntityFramework 6.5.1.
Acuit.Pinpoint.HealthChecks
- Change: Added a .NET 4.7.2 target.
Acuit.Pinpoint.IO.Abstractions Package
- BREAKING CHANGE: Removed the .NET Standard 2.0 target to be consistent with all other workflow/IO-related packages for Acuit Pinpoint Workstation that target .NET 4.7.2 only.
Acuit.Pinpoint.IO.Testing.Abstractions Package
- BREAKING CHANGE: Removed the
IDataValue
extension methodTimestampedDataValueExtensions.GetTimestampOrNull
, replacing it withTimestampedDataValueExtensions.TryGetTimestamp
. - Now references System.Reactive 6.0.1.
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 8.0.7.
Acuit.Pinpoint.Server.Client Package
- Fix: Add missing
BusinessLogicFaultReason.MultipleWorkersMatchedCredentials
enum value (since v7.3.2).
Acuit.Pinpoint.Server.Configuration
- Change: Added a .NET 4.7.2 target.
Acuit.Pinpoint.Tables Package
- Now references CsvHelper 33.0.1.
- Now references ExcelDataReader 3.7.0.
Acuit.Pinpoint.Windows Package
- New: Now the
IUserInterfaceService.ShowDialog
methods check the dialog view and its view model object for an implementation of the newIWithDialogResult
interface to determine the dialog result return value. This allows plug-ins to implement dialog view models that do not derive fromDialogViewModel
. - Change:
DefaultErrorHandler.SetUpUnhandledExceptionHandling
now throwsInvalidOperationException
if it has already been called before.
Acuit.Pinpoint.Workflows Package
- Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.10.0.
Acuit.Pinpoint.Workstation.Interfaces Package (Workstation Plug-in API)
- BREAKING CHANGE:
IItemScannerNumber.SubmitNumber(string)
now throwsArgumentNullException
if the provided number isnull
. - BREAKING CHANGE:
IWorkstationService.EnqueueTypedNumber(string)
now throwsArgumentNullException
if the provided number isnull
.
7.7.12 - 2024-04-27
Server
- POTENTIAL BREAKING CHANGE: Server now references CsvHelper 32.* with breaking changes, so Server plug-ins that reference CsvHelper might need to be updated.
- New: Added new
UnitIsProduced
alert condition to allow showing an alert if a scanned unit is in a state that is considered produced. - Some internal components were updated: CsvHelper 32.0.1, log4net 2.0.17.
Web
- Some internal components were updated: .NET Runtime/ASP.NET Core/Entity Framework Core 8.0.4, CsvHelper 32.0.1.
Workstation
- POTENTIAL BREAKING CHANGE: Workstation now references CsvHelper 32.* with breaking changes, so Workstation plug-ins that reference CsvHelper might need to be updated.
- New capabilities in Acuit Pinpoint Server emulation via "ServerEmulation" config section:
- New: Now supports adding unit defects and repairs.
- Some internal components were updated: CsvHelper 32.0.1, log4net 2.0.17, Microsoft.Data.Sqlite 8.0.4, Telerik.Windows.Controls 2024.1.423.
Reporting
- Some internal components were updated: .NET Runtime/ASP.NET Core 8.0.4, CronExpressionDescriptor 2.33.0, CsvHelper 32.0.1, Hangfire 1.8.12.
Developer API
Acuit.Pinpoint.Common Package
- BREAKING CHANGE: Removed
ConfigurationFileCorruptionCleaner
class. - BREAKING CHANGE: Removed deprecated
ServiceModel
types:International
,InternationalBehavior
,InternationalizationAttribute
, andWSI18N
.
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 8.0.4.
Acuit.Pinpoint.Tables Package
- Now references CsvHelper 32.0.1.
Acuit.Pinpoint.Windows Package
- Now references log4net 2.0.17.
7.6.0 - 2024-03-12
Server
- POTENTIAL BREAKING CHANGE: Server now references CsvHelper 31.* with breaking changes, so Server plug-ins that reference CsvHelper might need to be updated.
- Some internal components were updated: CsvHelper 31.0.2, Quartz 3.8.1.
Web
- Some internal components were updated: .NET Runtime/ASP.NET Core/Entity Framework Core 8.0.3, CsvHelper 31.0.2, LigerShark.WebOptimizer.Core 3.0.405, Telerik.UI.for.Blazor 5.1.1, twitter-bootstrap 5.3.3.
Workstation
- POTENTIAL BREAKING CHANGE: Workstation now references CsvHelper 31.* with breaking changes, so Workstation plug-ins that reference CsvHelper might need to be updated.
- Fix: Problem where sometimes plug-ins cannot load dependencies, resulting in crashes upon
startup or in runtime errors, with exceptions like
FileNotFoundException
orReflectionTypeLoadException
and with messages like "Could not load file or assembly." Now the Acuit Pinpoint Workstation application directory along with all plug-in directories are probed for assemblies that cannot be loaded automatically. - Some internal components were updated: CsvHelper 31.0.2, Microsoft.CodeAnalysis.CSharp.Scripting 4.9.2, Microsoft.Data.Sqlite 8.0.3, Microsoft.Extensions.Logging.Abstractions 8.0.1, SQLitePCLRaw.bundle_e_sqlite3 2.1.8, System.Text.Json 8.0.3, Telerik.Windows.Controls 2024.1.130.
Reporting
- Some internal components were updated: .NET Runtime/ASP.NET Core 8.0.3, CsvHelper 31.0.2, Hangfire 1.8.11, Telerik.Reporting 18.0.24.305, twitter-bootstrap 5.3.3.
Developer API
Acuit.Pinpoint.BarCodeScanning Package
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.1.
Acuit.Pinpoint.Common Package
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.1.
Acuit.Pinpoint.Modbus Package
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.1.
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 8.0.3.
- Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.8.
Acuit.Pinpoint.Tables Package
- Now references CsvHelper 31.0.2.
Acuit.Pinpoint.Workflows Package
- Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.9.2.
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.1.
7.5.0 - 2024-01-20
Server
- Fix: Fixed a typo in admin email notifications when reference content cannot be retrieved due to an external data error (since v6.96.0).
- Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Serilog.AspNetCore
Workstation
- New: See the "Acuit.Pinpoint.Workflows.Workstation Package" section below for changes that affect plug-ins or custom workflows.
- Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Data.Sqlite, System.Text.Json
Reporting
- Some internal components were upgraded for incremental performance and reliability improvements: Hangfire, Microsoft.AspNetCore.Authentication.Negotiate, Serilog.AspNetCore
Developer API
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 8.0.1
Acuit.Pinpoint.Workflows.Workstation Package
- New: Added the new
ITestingCoordinator
service, which allows plug-ins to set the view content for test strips programmatically.
7.4.43 - 2023-12-11
Server
- Some internal components were upgraded for incremental performance and reliability improvements: codemirror, Microsoft.Bcl.AsyncInterfaces, Microsoft.Extensions.Logging.Abstractions, Microsoft.TypeScript.MSBuild, .NET 8, Quartz, Serilog, System.Configuration.ConfigurationManager, System.Text.Encoding.CodePages, Telerik.UI.for.Blazor
Workstation
- New: See the "Acuit.Pinpoint.Workflows.Testing Package" section below for changes that affect plug-ins or custom workflows.
- Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Bcl.AsyncInterfaces, Microsoft.CodeAnalysis.CSharp.Scripting, Microsoft.Data.Sqlite, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Primitives, SQLitePCLRaw.bundle_e_sqlite3, System.Configuration.ConfigurationManager, System.Text.Encoding.CodePages, System.Text.Json, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml
Reporting
- Some internal components were upgraded for incremental performance and reliability improvements: CronExpressionDescriptor, Microsoft.Bcl.AsyncInterfaces, Microsoft.Extensions.Logging.Abstractions, .NET 8, Serilog, System.Text.Encoding.CodePages, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore
Developer API
Acuit.Pinpoint.BarCodeScanning Package
- Now this package is published to NuGet (previously was only published to Acuit private feed).
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.0
Acuit.Pinpoint.Common Package
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.0
Acuit.Pinpoint.Configuration Package
- Now references System.Configuration.ConfigurationManager 8.0.0
Acuit.Pinpoint.IO.Abstractions Package
- Now references Microsoft.Bcl.AsyncInterfaces 8.0.0
Acuit.Pinpoint.Modbus Package
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.0
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 8.0.0
- Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.7
Acuit.Pinpoint.ResourceManagement.Abstractions Package
- Now references Microsoft.Extensions.Primitives 8.0.0
Acuit.Pinpoint.Tables Package
- Now references System.Text.Encoding.CodePages 8.0.0
Acuit.Pinpoint.Workflows Package
- Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.8.0
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.0
Acuit.Pinpoint.Workflows.Testing Package
- New: Added the
LogIfNotLoggedYet
method toTestFailedException
. - New: Added the
ValidationComparer
class (previously was internal). - Change: The
RecordTest
activity now uses an arrow symbol ("→
") instead of "->
" to separate exception messages in the "UnexpectedError" test data item value that gets added when a test fails due to an unexpected error. - Change: Now when the
RecordTest
activity is handling a failed test, if theReason
property of a thrownTestFailedException
exceeds the maximum length for test fail reasons (50 characters), a warning will be logged to the application log that the reason was truncated. - Fix: The
RecordTest
activity no longer duplicates the unexpected exception message in the "The test failed" test log entry when a test fails due to an unexpected error. For example:- Old: "The test failed due to an unexpected error: A communication error occurred. → A communication error occurred."
- New: "The test failed: Unexpected error → A communication error occurred."
- Now references Microsoft.Extensions.Logging.Abstractions 8.0.0
7.3.2 - 2023-10-31
Server
- Change: Now validates that worker passwords are unique when editing workers if any line is configured to allow authentication via a password only.
- Change: No longer records error details to "Acuit.Pinpoint.Web_Error" in the user's temporary folder when an error occurs while the web service is starting before application logging is initialized. The Windows Application event log should be referenced for error details.
- Fix: Now if a worker attempts to log in at a station using credentials that select multiple
workers (e.g., because they have the same password and only a password was provided), a
BusinessLogicFault
will occur, which will result in a friendlier "Multiple workers matched the supplied credentials" message in Acuit Pinpoint Workstation instead of "An internal error occurred in Acuit Pinpoint Server"). - Some internal components were upgraded for incremental performance and reliability improvements: CodeMirror, jquery, jquery-validate, LigerShark.WebOptimizer.Core, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Quartz, Telerik.UI.for.Blazor, twitter-bootstrap
Workstation
- Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.CodeAnalysis.CSharp.Scripting, Microsoft.Data.Sqlite, SQLitePCLRaw.bundle_e_sqlite3, System.ServiceModel.NetTcp, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml
Reporting
- Change: No longer records error details to "Acuit.Pinpoint.Reporting_Error.txt" in the user's temporary folder when an error occurs while the service is starting before application logging is initialized. The Windows Application event log should be referenced for error details.
- Some internal components were upgraded for incremental performance and reliability improvements: CronExpressionDescriptor, Hangfire, jquery, jquery-validate, Microsoft.AspNetCore.Authentication.Negotiate, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore, twitter-bootstrap
Developer API
Server API
- Fix: Now if the credentials provided to
AuthenticateWorker
orAuthenticateWorker2
select multiple workers (e.g., because they share the same password and only a password was provided), aBusinessLogicFault
will occur with an appropriate reason and message instead of an unhandled exception: System.InvalidOperationException: Sequence contains more than one element.
Acuit.Pinpoint.Configuration Package
- Now references System.ServiceModel.Primitives 4.10.3
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 7.0.13
- Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.6
Acuit.Pinpoint.Server.Client Package
- Now references System.ServiceModel.NetTcp 4.10.3
Acuit.Pinpoint.Workflows Package
- Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.7.0
7.2.51 - 2023-07-13
Server
- New: Now can configure authorization for setting and clearing buyoffs.
- Change: Authorization permission names are now case-insensitive.
- Changes to the installer:
- Change: The default installation folder is now "C:\Program Files\Acuit Pinpoint Server 7" (previously was "C:\Program Files (x86)\Acuit Pinpoint Server 7").
- Now creates a link to the Pinpoint web page on the desktop.
- Fix: Installer not using install folder customized via bootstrapper, and removed feature selection screen.
- Some internal components were upgraded for incremental performance and reliability improvements: CodeMirror, jquery, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Microsoft.Extensions.Hosting.WindowsServices, Microsoft.Extensions.Logging.Abstractions, Quartz, Serilog, Serilog.AspNetCore, Telerik.UI.for.Blazor, twitter-bootstrap
Workstation
- New: See the "Acuit.Pinpoint.Workflows.Testing Package" section below for changes that affect plug-ins or custom workflows.
- New capabilities in Acuit Pinpoint Server emulation via "ServerEmulation" config section:
- New: Can now configure ExtendedData to return with unit scan status.
- New: Now will not throw exception when plug-in adds a test result using the overload that takes an extended data dictionary.
- Fix: Null reference exception that can happen when
ITestViewModel.WorkflowData
is referenced (e.g., from a workflow view) before a test has started (since v7.1.87). - Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.CodeAnalysis.CSharp.Scripting, Microsoft.Data.Sqlite, Microsoft.Extensions.Logging.Abstractions, SQLitePCLRaw.bundle_e_sqlite3, System.Reactive, System.Text.Json, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml
Reporting
- Changes to the installer:
- Change: The default installation folder is now "C:\Program Files\Acuit Pinpoint Reporting" (previously was "C:\Program Files (x86)\Acuit Pinpoint Reporting").
- Fix: Installer not using install folder customized via bootstrapper, and removed feature selection screen.
- Some internal components were upgraded for incremental performance and reliability improvements: CronExpressionDescriptor, Hangfire, jquery, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.Extensions.Hosting.WindowsServices, Microsoft.Extensions.Logging.Abstractions, Serilog, Serilog.AspNetCore, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore, twitter-bootstrap
Developer API
Server API
- Change: Now if an unknown buyoff name is provided to
SetBuyOff
,SetBuyoff2
,ClearBuyOff
, orClearBuyoff2
, aBusinessLogicFault
will occur instead of throwingConfigurationException
. This will result in a friendlier "The buyoff ... is not a buyoff that is configured for the line" message in Acuit Pinpoint Workstation instead of "An internal error occurred in Acuit Pinpoint Server").
Acuit.Pinpoint.BarCodeScanning Package
- Now references Microsoft.Extensions.Logging.Abstractions 7.0.1
Acuit.Pinpoint.Common Package
- Now references Microsoft.Extensions.Logging.Abstractions 7.0.1
Acuit.Pinpoint.IO.Testing.Abstractions Package
- Now references System.Reactive 6.0.0
Acuit.Pinpoint.Modbus Package
- Now references Microsoft.Extensions.Logging.Abstractions 7.0.1
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 7.0.9
- Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.5
Acuit.Pinpoint.Server.Configuration
- Change: Authorization permission names are now case-insensitive.
Acuit.Pinpoint.Workflows Package
- Change: Changed guidance for activity implementations to not check cancellation token before doing anything else. Workflow engine now checks it before creating a new activity context within which to execute the activity.
- Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.6.0
- Now references Microsoft.Extensions.Logging.Abstractions 7.0.1
Acuit.Pinpoint.Workflows.Testing Package
- New: Added
IsTrueValidator
andIsFalseValidator
validators. - New: Added
{IsTrue}
and{IsFalse}
markup extensions. - Now references Microsoft.Extensions.Logging.Abstractions 7.0.1
7.1.94 - 2023-05-02
Workstation
- Change: The message added to the test log when a test being performed within a test workflow fails now includes right-arrow separators between the various detail messages to make them easier to read.
Developer API
Acuit.Pinpoint.Workflows Package
- New: Added
NullExtensions.IsNotNull
overload for nullable value type arguments.
Acuit.Pinpoint.Workflows.Testing Package
- Change: Added right-arrow separators between inner exceptions shown in test log via
TestFailedException
CreateLogged
andCreateLoggedFromReason
methods.
7.1.91 - 2023-05-01
Workstation
- Change: Now when a test being performed within a test workflow fails, the message logged to the test log will include all details about the error (i.e., inner exception messages).
Developer API
Acuit.Pinpoint.Workflows.Testing Package
- Change:
TestFailedException
CreateLogged
andCreateLoggedFromReason
methods now include messages from inner exceptions in the log message.
7.1.89 - 2023-04-30
Developer API
Acuit.Pinpoint.Workflows.Testing Package
- Change:
TestFailedException
now derives fromWorkflowException
.
7.1.87 - 2023-04-30
Major Workflows Update
This version includes a major update to Acuit Pinpoint Workflows that brings these major new enhancements:
- Built-in, standardized support for readings from devices that can be used by a new suite of built-in workflow activities that can be used to easily create test workflows.
- A new standardized way to track data values with metadata describing units, precision, etc.
- Improved workflow activity input arguments design, including support for asynchronous value sources (including other activities) and for data sources that stream a series of values asynchronously.
- Standardized support for activities that produce a result, with a new
IActivity
abstraction for executable activities. This replaces the old "OutputVariableName" method of producing output values.
BREAKING CHANGES:
- The XAML for some workflows will require updates due to a few breaking changes to built-in activities. Changes are detailed below.
- All Acuit Pinpoint Workstation plug-ins that reference any workflows NuGet packages (such as Acuit.Pinpoint.Workflows) to do things like provide custom activities for workflows must be recompiled against this new version, updating as needed to support the breaking changes.
Server
- New: Can now configure rejected parts for component types via the
<rejectParts>
element. - New:
Acuit.Pinpoint:PlugIns:SearchPaths
key/value setting, to make configuring line plug-in search paths easier than with the existingAcuit.Pinpoint:PlugIns:SearchPath
setting. - New: The
Acuit.Pinpoint:PlugIns:SearchPath
key/value setting (and the newAcuit.Pinpoint:PlugIns:SearchPaths
setting) can now contain environment variables quoted with the percent sign character (%). - New: Now key/value configuration settings that specify paths to files that will be retrieved
by Acuit Pinpoint Workstation (e.g., plug-ins referenced via line configuration or files like
images used by certain plug-ins) can contain environment variables quoted with the percent sign
character (%).
Settings defined on Acuit Pinpoint Server with environment variables will work even with older versions of Acuit Pinpoint Workstation that retrieve these files. - Change: Now logs warnings to the application log for configured plug-in search paths that don't exist.
- Fix: Grammer error in a component scan tester logic details message.
- Some internal components were upgraded for incremental performance and reliability improvements: jquery, LigerShark.WebOptimizer.Core, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Newtonsoft.Json, Telerik.UI.for.Blazor
Workstation
- BREAKING CHANGES: See the "Acuit.Pinpoint.Workflows Package", "Acuit.Pinpoint.Workflows.Testing Package", and "Acuit.Pinpoint.Workflows.Workstation Package" sections below for changes that affect plug-ins or custom workflows.
- BREAKING CHANGES: Test workflows will no longer be provided a
Tester
parameter. - New: Now provides an
IReadingsRegistry
service that plug-ins can easily use to provide readings for use by workflows, including with automatic polling. - New: Now configuration settings defined in local configuration sources (e.g., settings.json) that specify paths to files that are retrieved by Acuit Pinpoint Workstation (e.g., plug-ins referenced via line configuration or files like images used by certain plug-ins) can contain environment variables quoted with the percent sign character (%).
- Change: The alarm message and error log entries that occur when an error occurs in a unit workflow or in a test workflow due to parameter errors have changed wording slightly.
- Fix: Now when a test workflow fails due to an unhandled error, the application will not crash, but instead will log an error and show an alarm message. If the test type was configured to use a view that required navigation (e.g., MainView), then the test view will be closed.
- Fix: Bug where
ITestViewModel.WorkflowData
would clear as soon as a test workflow completed, which would cause test views that continued to display data from the workflow to stop working. - Fix: Crash when a plug-in attempts to display a message box (which can happen indirectly via an interactive alarm) after the main window has closed.
- Fix: Shows incorrect "The method or operation is not implemented." alarm message and error log entry when configuration settings cannot be initialized due to some conditions.
- Fix: Installer not using install folder customized via bootstrapper, and removed feature selection screen.
- New capabilities in Acuit Pinpoint Server emulation via "ServerEmulation" config section:
- New: Can now configure component scans with which to initially populate test units.
- New: Can now emulate responding to invoked server plug-in methods.
- Change: Table source file paths can now include environment variables.
- Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Data.Sqlite, Newtonsoft.Json, System.ServiceModel.NetTcp, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml
Reporting
- Some internal components were upgraded for incremental performance and reliability improvements: Hangfire, jquery, Microsoft.AspNetCore.Authentication.Negotiate, Newtonsoft.Json, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore
Developer API
Server API
- New: Now paths to files retrieved via the PinpointFileService API can contain environment variables quoted with the percent sign character (%).
- Change: Now the
ComponentScanTest
method does not include a line feed at the end of each step result.
Acuit.Pinpoint.Configuration Package
- Fix:
NotImplementedException
thrown when a file configuration source uses a relative path. - Now references Newtonsoft.Json 13.0.3
- Now references System.ServiceModel.Primitives 4.10.2
Acuit.Pinpoint.IO.Abstractions Package
- New: Added
OptionalSingleConfiguredDeviceEnumerator
. - New: Added
PolledConnectedDevice
. - Change: Now depends on Acuit.Pinpoint.ErrorHandling.Abstractions and Acuit.Pinpoint.Timing.Abstractions.
- Added separate .NET 4.7.2 target.
Acuit.Pinpoint.IO.Testing.Abstractions Package
- New: Initial version of this new package, which provides a new standardized way for plug-ins
to provide data readings from devices that can be consumed via standard workflow activities.
Primary types include
IDataValue
,IDataValueDescriptor
, andIReadingsRegistry
.
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 7.0.5
Acuit.Pinpoint.Server.Client Package
- Now references System.ServiceModel.NetTcp 4.10.2
Acuit.Pinpoint.Timing.Abstractions Package
- New: Timeout timers, via
ITimeService.StartNewTimeoutTimer
extension method that returns anITimeoutTimer
.
Acuit.Pinpoint.Windows Package
- Fix: "Cannot set Owner property to a Window that has not been shown previously"
InvalidOperationException
inBaseUserInterfaceService
when it attempts to display a message box with no visible application window.
Acuit.Pinpoint.Workflows Package
The following changes to this package affect workflows (i.e., XAML workflow definitions):
- BREAKING CHANGE: The syntax used to escape a string value in XAML that would normally be interpreted as a code expression (e.g., "[...]") has changed. To specify the string literal of "[Literal]", this should be used: "%[Literal]" (the old method used "[][Literal]").
- BREAKING CHANGE: Removed support for workflows that used the old
http://schemas.acuit.com/pinpoint/2020/xaml/testing
namespace.http://schemas.acuit.com/pinpoint/2020/xaml/workflows
should be used instead. - New: Added the following new workflow activity:
DoWithCleanup
- Changes to existing workflow activities include:
ExecuteWorkflow
- Change: The
ParameterValue
item'sValue
property can now be set via content.
- Change: The
SetVariable
- Change: The
Value
property can now be set via content.
- Change: The
- Change: All workflow activities with input arguments that are collections now use collection types recognized by the Visual Studio XAML editor, reducing nuisance errors in the editor.
The following changes to this package affect plug-ins that reference this package (i.e., code):
- BREAKING CHANGE: The
Expression<TValue>
expression type and the obsolete non-generic expression types (e.g.,StringExpression
), have been removed and replaced by the new, more generalValueSource
/ValueSource<T>
types that support asynchronous evaluation. - BREAKING CHANGE: Removed
ActivityWithOutput<TOutput>
, replacing withActivity<TResult>
that allows activities that produce result values to do so in a standard way that can be consumed by other activities, including in workflow XAML as values for activity input arguments. Custom activities should derive from eitherActivity
(if they do not produce a result value) orActivity<TResult>
(if they do produce a result value). BecauseActivity<TResult>
does not derive fromActivity
, properties and parameters that accept any activity for execution now useIActivity
so that any executable activity can be provided, whether or not it produces a result value.ActivityContext
,WorkflowHost
, andWorkflowInvoker
all have added support for obtaining result values from activities that produce them. - BREAKING CHANGE: The old expression validation helpers have been replaced with new
ActivityContext
extension methods for evaluating and validating value sources that support fluent validation (inAcuit.Pinpoint.Workflows.Validation.ValidationExtensions
). - BREAKING CHANGE: Activities and other types that have optional input arguments now all use
nullable types for their values (e.g.,
Transition.Condition
now yields abool?
instead ofbool
). - BREAKING CHANGE: Workflow execution errors will now always yield a
WorkflowException
(or derived). Unhandled exceptions thrown by the workflow will be wrapped in aWorkflowException
. This changes the exceptions that can be produced from:WorkflowHost.Task
- All of the
WorkflowInvoker.InvokeAsync
methods IWorkflowEventManager.RaiseEventAsync
- BREAKING CHANGE: In the
TypeConverterHelper
static class, theConvert
,ConvertValueFromInvariantString
, andTryConvertValueFromInvariantString
methods have been replaced by newConvert
andInvariantConvert
methods with different signatures and expanded capabilities. - BREAKING CHANGE: Removed the
XamlLoader
andXamlParser
helper classes.WorkflowXamlServices
should be used instead. - Change:
WorkflowParameterException
now derives fromWorkflowException
and has a newParameterName
property. - Change:
WorkflowHost
methods can now throwObjectDisposedException
.
Acuit.Pinpoint.Workflows.Testing Package
The following changes to this package affect workflows (i.e., XAML workflow definitions):
- BREAKING CHANGE: Removed the following workflow activities and types:
AggregateMaximum
,AggregateMinimum
,AggregateReadings
,BooleanTestDataValidator
,MinMaxTestDataValidator
,PowerOff
,PowerOn
,ReadingMonitor
,TargetToleranceTestDataValidator
,ThermostatClear
,ThermostatSet
(these used the old tester registry and have been replaced by new activities listed below)PerformTest
(obsolete, replaced byRecordTest
)
- New: Added the following new workflow activities and types:
MonitorData
TakeValue
- Readings markup extensions:
{Reading ...}
,{ReadingNow ...}
- Data value samplers:
SampleAfterDelay
,SampleAverageOverTime
,SampleMinimumOverTime
,SampleValidOverSlidingWindow
,SampleValidOverTime
,SampleWhenAny
,SampleWhenBecomesValid
- Validators:
EqualToValidator
,GreaterThanOrEqualToValidator
,GreaterThanValidator
,LessThanOrEqualToValidator
,LessThanValidator
,MinMaxValidator
,NotEqualToValidator
,TargetToleranceValidator
- Change: All activities that can fail the active test now use the
ITestLog
service (if available) to first log a test failure message before throwing the exception, and then theRecordTest
activity will not log the test failure message when handling the exception (if already logged). This improves the test logs, ensuring that (1) the sequence of events in the test log is accurate, since cleanup actions that perform their own logging can occur in response to the test failure, and (2) the time stamp for the test failure event is accurate. - Changes to existing workflow activities include:
FailTest
- Change: The test failure message will be logged before failing the test.
FailTestIfTestDataItemBad
- Change: When failing the test, the test failure message will be logged first.
Log
- Change: Now supports other activities redirecting logging from the active test log, and will now not fail if it executes when there is no active test.
SetTestDataItem
- Change: When failing the test, the test failure message will be logged first.
- Change: Now supports other activities redirecting logging from the active test log.
RecordTest
- Change: If another activity emits a test failure log entry before failing the test, the
test failure log entry will not be added again by
RecordTest
.
- Change: If another activity emits a test failure log entry before failing the test, the
test failure log entry will not be added again by
SetTestDataItem
- BREAKING CHANGE: The
Validator
property was removed, replaced by theIsGood
property from which the good/bad status is determined directly. - Change: When failing the test, the test failure message will be logged first.
- Change: Now automatically uses all available information about a data value (e.g., validation status, units, formatting).
- Change: The
Value
property can now be set via content.
- BREAKING CHANGE: The
TakeValue
- BREAKING CHANGE: The
Sampler
property has been replaced byValue
that accepts any type of value. The new sampler activities can be used to obtain sampled readings.
- BREAKING CHANGE: The
The following changes to this package affect plug-ins that reference this package (i.e., code):
- BREAKING CHANGE: All types in the package have been updated to be consistent with the changes in the Acuit.Pinpoint.Workflows package, as listed above.
- BREAKING CHANGE: Removed the types related to the obsolete tester registry (e.g.,
ITester
,ITesterReading
,ITesterRegistry
), replacing them with services in the new Acuit.Pinpoint.IO.Testing.Abstractions package. Plug-ins can no longer registerITester
instances; they should instead register readings providers viaIReadingsRegistry
. - BREAKING CHANGE: Data value validators have been redesigned to work with the new data value types provided by the Acuit.Pinpoint.IO.Testing.Abstractions package.
- BREAKING CHANGE: Added
StartDateTime
andEndDateTime
toIActiveTest
, andCompleteTest
will now throwInvalidOperationException
if the test has already been completed. - New: Now the
RecordTest
activity provides anITestLog
service to child activities.
Acuit.Pinpoint.Workflows.Workstation Package
The following changes to this package affect workflows (i.e., XAML workflow definitions):
- BREAKING CHANGE: The
Tester
property on the test view model (ITestViewModel
) has been removed. - New: Added
LatestReadings
to the test view model (ITestViewModel
). - Changes to existing workflow activities include:
AddPreassembly
- BREAKING CHANGE: Removed the
OutputVariableName
andOutput
properties; its output value is now available via a returned value from the activity.
- BREAKING CHANGE: Removed the
RemoveComponent
- BREAKING CHANGE: Removed the
OutputVariableName
andOutput
properties; its output value is now available via a returned value from the activity.
- BREAKING CHANGE: Removed the
RemovePreassembly
- BREAKING CHANGE: Removed the
OutputVariableName
andOutput
properties; its output value is now available via a returned value from the activity.
- BREAKING CHANGE: Removed the
ScanItem
- BREAKING CHANGE: Removed the
OutputVariableName
andOutput
properties; its output value is now available via a returned value from the activity.
- BREAKING CHANGE: Removed the
ShowMessageBox
- BREAKING CHANGE: Removed the
OutputVariableName
andOutput
properties; its output value is now available via a returned value from the activity.
- BREAKING CHANGE: Removed the
VerifyAndAddComponentScan
- BREAKING CHANGE: Removed the
OutputVariableName
andOutput
properties; its output value is now available via a returned value from the activity.
- BREAKING CHANGE: Removed the
The following changes to this package affect plug-ins that reference this package (i.e., code):
- BREAKING CHANGE: All types in the package have been updated to be consistent with the changes in the Acuit.Pinpoint.Workflows package, as listed above.
- New: Added
IWorkflowEventManager.HandleWorkflowEventHandlerError
. - Change: Added a new
IWorkflowEventManager.RaiseEventAsync
overload that takes aRaisedWorkflowEventOptions
containing all of the options. Deprecated the oldRaiseEventAsync
overload. - Change: Now
UnitWorkflowCanceledException
derives fromWorkflowException
.
Acuit.Pinpoint.Workstation.Interfaces Package (Workstation Plug-in API)
- New:
SimpleDeviceTester<TDevice>
added to make it easier to create simple device testers.
7.0.148 - 2023-02-27
Server
- Change: Make Monitor line index page more responsive.
- Fix: "An error has occurred. This application may no longer respond until reloaded." errors that can intermittently occur on the Monitor, View/Search, Admin, and Component Verification Tester pages (since v7.0.59).
- Fix: Incorrect line configuration editor autofill suggestions (e.g., "buyoff" instead of "buyOff") (since v7.0.59).
- Some internal components were upgraded for incremental performance and reliability improvements: CodeMirror, LigerShark.WebOptimizer.Core, Microsoft.AspNetCore.Authentication.Negotiate, Microsoft.EntityFrameworkCore.SqlServer, Quartz
Workstation
- Change: Pinpoint Server emulation via "ServerEmulation" config section by adding emulation of normal error handling when plug-in tries to invoke a server plug-in method.
- Fix: Crash in Tools, Configure Local Hardware when using a registered custom device that does not use any configuration settings (since v6.220.172).
- Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.CodeAnalysis.CSharp.Scripting
- Fix: Unexpected error that can happen when certain plug-ins are being closed, with an error in
the app log similar to (since v6.227.120-alpha):
System.AggregateException: One or more errors occurred. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Acuit.Pinpoint.Workstation.ResourceManagement.TableCsvReferencedResource'. - Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Data.Sqlite, System.Text.Json
Reporting
- Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.AspNetCore.Authentication.Negotiate
Developer API
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 7.0.3
Acuit.Pinpoint.Workflows Package
- Now references Microsoft.CodeAnalysis.CSharp.Scripting 4.5.0
7.0.112 - 2023-02-12
Server
- Change: Monitor, Admin, and Component Verification Tester page responsiveness has been improved.
- Change: View/Search page now supports proper web navigation and linking.
- Change: Component Verification Tester web page is now cleaner and supports proper web navigation and linking.
- Change: Minor improvements to Component Verification Tester page messages.
- Change: The Production Monitor page URLs have changed, so saved links may not work (since v7.0.59).
- Fix: Edit links on Edit Security Group page result int 404 page not found (since v7.0.67).
- Fix: Custom test data added by a server plug-in is not included in the View Unit History page (since v7.0.59).
- Fix: Broken unit details links in Monitor Latest Defects page (since v7.0.59).
- Fix: Broken Acuit Pinpoint Workstation installer link on About page (since v7.0.59).
- Fix: Incorrect page titles for admin and monitor pages (since v7.0.59).
- Fix: Help, Check for Update broken from Acuit Pinpoint Workstation v6 (since v7.0.59).
- Fix: When quickly navigating between web pages, sometimes the Monitor, View, or Admin pages
will show an unexpected error with an app log error entry like (since v7.0.59):
Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost: Unhandled exception in circuit.
Microsoft.JSInterop.JSException: Could not find 'TelerikBlazor.initMediaQuery' ('TelerikBlazor' was undefined). - Fix: Change language selector does not work sometimes from Monitor and other pages (since v7.0.59).
- Fix: Monitor page not showing any content when query parameters are formatted improperly or an internal error occurs (since v7.0.59).
7.0.75 - 2023-02-05
Server
- Fix: Bug where switching between Monitor tabs doesn't work when the line name has a space (since v7.0.74).
7.0.74 - 2023-02-05
Server
- Fix: Bug where switching between Monitor tabs doesn't work (since v7.0.59).
7.0.72 - 2023-02-05
Server
- Fix: Bug where Monitor and Admin page links are incorrect (since v7.0.59).
7.0.70 - 2023-02-05
Server
- Fix:
ExceptionHandlerMiddleware
unhandled exception in web app (since v7.0.59):System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Acuit Pinpoint Server 7\Web\obj\WebOptimizerCache' is denied.
7.0.67 - 2023-02-05
Server
- Change: Web app URLs are now lowercase.
- Change: "index" removed from web app URLs.
- Fix: Cleaned up some items when printing pages from web app.
- Fix: Crash in web app maintenance/productionqueuesender page when a line has a configuration error.
7.0.59 - 2023-02-04
Server
- BREAKING CHANGE: New Acuit Pinpoint web application with these main improvements (along
with many minor improvements):
- Modern web interface that no longer uses Microsoft Silverlight.
- Built-in web server; Microsoft Internet Information Services (IIS) is no longer used.
- Note that some page addresses have changed, so some saved shortcuts will need to be changed.
- Some internal components were upgraded for incremental performance and reliability improvements: Quartz
Server Console
- BREAKING CHANGE: This application has been removed. The Acuit Pinpoint services should now be managed via standard Windows services management facilities.
Workstation
- Some internal components were upgraded for incremental performance and reliability improvements: Microsoft.Data.Sqlite, SQLitePCLRaw.bundle_e_sqlite3, Telerik.Windows.Controls.Data.for.Wpf.Xaml, Telerik.Windows.Controls.FixedDocumentViewers.for.Wpf.Xaml
Reporting
- Fix: Report parameters does not indicate current selection.
- Fix: Missing thread identifier in application log file.
- Some internal components were upgraded for incremental performance and reliability improvements: Hangfire, jquery, Microsoft.AspNetCore.Authentication.Negotiate, Telerik.Reporting.OpenXmlRendering, Telerik.Reporting.Services.AspNetCore
Developer API
Acuit.Pinpoint.Configuration Package
- Now targets .NET Standard 2.0.
Acuit.Pinpoint.HealthChecks Package
- Now targets .NET Standard 2.0.
Acuit.Pinpoint.IO.Abstractions Package
- Now targets .NET Standard 2.0.
Acuit.Pinpoint.ResourceManagement Package
- Now references Microsoft.Data.Sqlite 7.0.2
- Now references SQLitePCLRaw.bundle_e_sqlite3 2.1.4