diff --git a/content/en/docs/releasenotes/workstation/_index.md b/content/en/docs/releasenotes/workstation/_index.md index 175b6dfa2f4..fdbd37258fa 100644 --- a/content/en/docs/releasenotes/workstation/_index.md +++ b/content/en/docs/releasenotes/workstation/_index.md @@ -10,6 +10,64 @@ cascade: These release notes cover changes made to the [Mendix Workstation](/mendix-workstation/). +## 4.2.0 + +### Release date: September 10, 2026 + +### Workstation Management + +#### New Features + +* Keyboard wedge devices - We have added a new *keyboard wedge* connection type to connect with devices sending data as keyboard strokes. This connection enables basic integration with input devices like barcode scanners, RFID readers, or measurement devices. For more information, see [Configuring Devices: Keyboard Wedge](/mendix-workstation/management-devices/#keyboard-wedge). + +#### Improvements + +* Station creation - We have added the option to create a new station by copying an existing station. For more information, see [Managing Stations: Creating a New Station](/mendix-workstation/management-stations/#create-station). +* Station details - The station details now display if there is a live connection to a Workstation Client on a registered computer. +* Adding devices - We have improved the UX of the **Add Device** wizard when selecting a connection type. +* Registering computers - When clipboard permissions are disabled in the browser, the registration key is instead fully displayed in a text area. +* Private management - We have made the following improvement to Private Workstation Management: + + * We have made it easier to see if a specific SSO configuration was created at runtime or deploy time. A warning appears when editing a deploy-time configuration at runtime. + * To provide more flexibility when switching SSO protocols, we have made it possible to edit SSO users and their principal attributes. + * We have fixed some UI issues in the navigation and the SAML metadata popup window. + * We have added the missing default attribute mapping for Display Name in the SAML configuration. + * We have upgraded Private Workstation Management to Mendix 11.12.4. + +#### Bug Fixes + +* We have fixed an issue where the **Workspace Settings** page would freeze after closing the **Log Level**, **Retention Policy**, and **Client Update Check Interval** dialogs. +* We have fixed *uncontrolled input* warnings that would appear in the console. + +### Workstation Client + +#### New Features + +* Keyboard wedge connector - The Workstation Client can now receive On Event messages from input devices sending data as keystrokes wherever the current focus is, for example, in the web app or in an input field. + +#### Improvements + +* Registering computers - We have improved computer registration to prevent accidental double submissions. We have also added a **Registering...** indicator while the request is in progress. + +### Workstation Connector + +#### Improvements + +* UX improvements - We have added new toolbox icons for all exposed Javascript actions that dark-mode compatible and aligned with the icons in Studio Pro. + +### Marketplace + +#### New Modules + +* Workstation Commons - The new Workstation Commons module contains a collection of nanoflows and snippets commonly used when building an app connected to peripherals devices, including the following: + + * A high-level nanoflow to simplify the interface with smartcard readers, Bluetooth, printers and file devices + * Nanoflows to manage connecting and disconnecting to and from devices + * A logger to display the raw device messages in your app + * Snippets to display information about the station, device, and device state. + +* Private Workstation Management is now available as a [Mendix Portable Runtime](/developerportal/deploy/portable-app-distribution-deploy/) package. + ## 4.1.0 ### Release date: August 13, 2026 diff --git a/content/en/docs/workstation/management/wks-management-admin.md b/content/en/docs/workstation/management/wks-management-admin.md index 877e00890b8..19d879ce849 100644 --- a/content/en/docs/workstation/management/wks-management-admin.md +++ b/content/en/docs/workstation/management/wks-management-admin.md @@ -22,7 +22,7 @@ The overview page displays the current status of each station, helping you quick * **Unknown computer** - The Workstation Client on the registered computer is reporting an unrecognized identifier, or there's an issue with its registration. Error while registering: An error occurred during the attempt to register a Workstation Client to this station. Further investigation (for example, checking client logs) may be required. -## Creating a New Station +## Creating a New Station {#create-station} To create a new station, choose one of the following options, depending on your deployment scenario. @@ -48,6 +48,10 @@ If you have previously copied the configuration of an existing station (for exam This option allows you to import a station's configuration from a previously exported file. This is particularly useful for migrating or replicating single station configurations. +## Create Copy from Station + +This option allows you to directly copy an existing station's configuration without needing to import it from the clipboard or from file. + ## Exporting and Importing Stations Workstation Management provides robust features for managing stations in bulk, facilitating migration, backup, and replication tasks. diff --git a/content/en/docs/workstation/management/wks-management-devices.md b/content/en/docs/workstation/management/wks-management-devices.md index 29dc816376d..f7e9cd1e10c 100644 --- a/content/en/docs/workstation/management/wks-management-devices.md +++ b/content/en/docs/workstation/management/wks-management-devices.md @@ -101,6 +101,35 @@ To add a serial port device, perform the following steps: 13. In the **Encoding** field, select the message encoding. 14. Click **Add Device**. +## TCP/IP Client + +TCP/IP clients allow you to connect to remote devices over the network. + +### Configuring TCP/IP Clients + +To add a TCP/IP client, perform the following steps: + +1. In Workstation Management, navigate to the **Devices** section on the **Station Detail** page. +2. Click **Add Device**, and then select **TCP/IP Client**. +3. In the **Device Name** field, enter an identifying name for the device. +4. Optional: Select or create a class to help you manage your devices. +5. Click **Next**. +6. Configure the following connection parameters: + + * **Host** - The host to which the TCP/IP Client connects. For test scenarios, you can use `localhost` to connect to a TCP/IP server on the same machine. For production scenarios, it is usually a local IP address. + * **Port** - The port to which the TCP/IP Client connects. The value must be in the range of `0-65535`. + +7. Click **Next**. +8. In the **Split Incoming Message By** section, select one of the following options: + + * **Delimiter** - Messages received from the device are split by the specified character or characters marking the end of the message, for example, `\r\n`. + * **Time and Size** - Messages received from the device are split by time interval in milliseconds and maximum message size in bytes. + * **Do Not Split** - Messages received from the device are not automatically split. + +9. In the **Characters Added to Message** field, specify the character or characters marking the end of the message sent to the device, for example, `\r\n`. +10. In the **Encoding** field, select the message encoding. +11. Click **Add Device**. + ## Bluetooth Add Bluetooth LE (BLE) devices that use the ATT protocol by entering the exact device name as displayed in your operating system's Device Manager. @@ -131,6 +160,76 @@ This device type requires the following message and response: * `CharacteristicUUID#Response` +## Keyboard Wedge {#keyboard-wedge} + +You can configure Workstation to connect with devices that emulate a keyboard by sending data as key strokes, such as barcode scanners, RFID readers, or measurement devices. Keyboard events are captured wherever the current focus is, for example in the web app or in an input field. + +### Configuring Keyboard Wedges + +To add a keyboard emulator device, perform the following steps: + +1. In Workstation Management, navigate to the **Devices** section on the **Station Detail** page. +2. Click **Add Device**, and then select **Keyboard Wedge**. +3. In the **Device Name** field, enter an identifying name for the device. +4. Optional: Select or create a class to help you manage your devices. +5. Click **Next**. +6. Configure the following connection parameters: + + * **Inter Character Timeout (ms)** - The maximum allowed amount of time between keystrokes. + * **Keyboard Layout** - The keyboard layout of the device. To use the active keyboard layout as defined by your operating system, select **System**. + * **Suffix** - A series of characters denoting the end of a message. + * **Minimum Message Length** - The shortest message that can be sent to the Connector from this device, excluding the prefix and suffix. + * **Maximum Message Length** - The longest message that can be sent to the Connector from this device, excluding the prefix and suffix. + * **Prefix** - A series of characters denoting the start of a message. + +7. Click **Add Device**. + +## Printer + +You can integrate your Workstations with printer devices. + +### Configuring Printers + +To add a printer device, perform the following steps: + +1. In Workstation Management, navigate to the **Devices** section on the **Station Detail** page. +2. Click **Add Device**, and then select **Printer**. +3. In the **Device Name** field, enter an identifying name for the device. +4. Optional: Select or create a class to help you manage your devices. +5. Click **Next**. +6. Enter the exact device name as it is displayed in your operating system's device manager. + + Alternatively, leave the field blank and the Workstation Client will automatically connect to the default printer as defined by the operating system. + +7. Click **Add Device**. + +### Message Syntax + +This device type requires the following message and response: + +#### Message + +* `P#PrintJobDocName#Format#DataPayloadInBase64` - Submit a print job. +* `S` - Get printer status and queued jobs. +* `C#JobId` - Cancel print job. + +#### Response + +* `P#DocName#JobId` - Print job accepted by OS print interface. +* `S#State#StateReason1,...#NumJobs#JobId1:JobName1:JobState1,...` - Printer state and job list summary. +* `E#ErrorMessage` - Error. + +#### Example + +The sample print command `P#TESTHELLO#RAW#aGVsbG8=` contains the following elements: + +1. `P (command prefix)` - Tells the Workstation Client that the incoming instruction is a Print command. +2. Separator +3. `TESTHELLOFILE` (file name) - Name assigned to the print job. The client uses this to create the temporary file (for example, `TESTHELLOFILE.prn`) before sending it to the printer spooler. +4. Separator +5. `RAW` (format type) - Tells the Workstation Client that the following data is a Raw Printer Command (such as ZPL for Zebra printers, EPL, or PCL) rather than a standard document like a PDF or a Word file. Printing in RAW bypasses the standard printer drivers' formatting. It sends the exact code the printer needs to generate labels, barcodes, or specific layouts. +6. `aGVsbG8=` (payload) - A data string encoded to Base64. Base64 decoded, it translates to the text `hello`. If you are testing this and the printer is not reacting, verify that the string you are encoding in Base64 matches the specific language your printer speaks. For example, a Zebra printer cannot process a plain text `hello` unless it is wrapped in ZPL commands like `^XA^FO50,50^A0N,50,50^FDhello^FS^XZ`. + ## File Device The file device allows Mendix applications to interact with the local file system of the computer running the Workstation Client. @@ -215,35 +314,6 @@ Follow these steps to verify that your file device configuration is working corr 7. Go to *C:\MyTestFolder* and verify that it contains the text file. 8. Open the test file and verify that it contains the text *Hello from Mendix*. -## TCP/IP Client - -TCP/IP clients allow you to connect to remote devices over the network. - -### Configuring TCP/IP Clients - -To add a TCP/IP client, perform the following steps: - -1. In Workstation Management, navigate to the **Devices** section on the **Station Detail** page. -2. Click **Add Device**, and then select **TCP/IP Client**. -3. In the **Device Name** field, enter an identifying name for the device. -4. Optional: Select or create a class to help you manage your devices. -5. Click **Next**. -6. Configure the following connection parameters: - - * **Host** - The host to which the TCP/IP Client connects. For test scenarios, you can use `localhost` to connect to a TCP/IP server on the same machine. For production scenarios, it is usually a local IP address. - * **Port** - The port to which the TCP/IP Client connects. The value must be in the range of `0-65535`. - -7. Click **Next**. -8. In the **Split Incoming Message By** section, select one of the following options: - - * **Delimiter** - Messages received from the device are split by the specified character or characters marking the end of the message, for example, `\r\n`. - * **Time and Size** - Messages received from the device are split by time interval in milliseconds and maximum message size in bytes. - * **Do Not Split** - Messages received from the device are not automatically split. - -9. In the **Characters Added to Message** field, specify the character or characters marking the end of the message sent to the device, for example, `\r\n`. -10. In the **Encoding** field, select the message encoding. -11. Click **Add Device**. - ## TCP/IP Server TCP/IP clients allow you to host connections over the network. @@ -270,50 +340,4 @@ To add a TCP/IP server, perform the following steps: 9. In the **Characters Added to Message** field, specify the character or characters marking the end of the message sent to the device, for example, `\r\n`. 10. In the **Encoding** field, select the message encoding. -11. Click **Add Device**. - -## Printers - -You can integrate your Workstations with printer devices. - -### Configuring Printers - -To add a printer device, perform the following steps: - -1. In Workstation Management, navigate to the **Devices** section on the **Station Detail** page. -2. Click **Add Device**, and then select **Printer**. -3. In the **Device Name** field, enter an identifying name for the device. -4. Optional: Select or create a class to help you manage your devices. -5. Click **Next**. -6. Enter the exact device name as it is displayed in your operating system's device manager. - - Alternatively, leave the field blank and the Workstation Client will automatically connect to the default printer as defined by the operating system. - -7. Click **Add Device**. - -### Message Syntax - -This device type requires the following message and response: - -#### Message - -* `P#PrintJobDocName#Format#DataPayloadInBase64` - Submit a print job. -* `S` - Get printer status and queued jobs. -* `C#JobId` - Cancel print job. - -#### Response - -* `P#DocName#JobId` - Print job accepted by OS print interface. -* `S#State#StateReason1,...#NumJobs#JobId1:JobName1:JobState1,...` - Printer state and job list summary. -* `E#ErrorMessage` - Error. - -#### Example - -The sample print command `P#TESTHELLO#RAW#aGVsbG8=` contains the following elements: - -1. `P (command prefix)` - Tells the Workstation Client that the incoming instruction is a Print command. -2. Separator -3. `TESTHELLOFILE` (file name) - Name assigned to the print job. The client uses this to create the temporary file (for example, `TESTHELLOFILE.prn`) before sending it to the printer spooler. -4. Separator -5. `RAW` (format type) - Tells the Workstation Client that the following data is a Raw Printer Command (such as ZPL for Zebra printers, EPL, or PCL) rather than a standard document like a PDF or a Word file. Printing in RAW bypasses the standard printer drivers' formatting. It sends the exact code the printer needs to generate labels, barcodes, or specific layouts. -6. `aGVsbG8=` (payload) - A data string encoded to Base64. Base64 decoded, it translates to the text `hello`. If you are testing this and the printer is not reacting, verify that the string you are encoding in Base64 matches the specific language your printer speaks. For example, a Zebra printer cannot process a plain text `hello` unless it is wrapped in ZPL commands like `^XA^FO50,50^A0N,50,50^FDhello^FS^XZ`. +11. Click **Add Device**. \ No newline at end of file diff --git a/content/en/docs/workstation/wks-quickstart.md b/content/en/docs/workstation/wks-quickstart.md index 72ba1389333..6b69ac148e4 100644 --- a/content/en/docs/workstation/wks-quickstart.md +++ b/content/en/docs/workstation/wks-quickstart.md @@ -42,10 +42,7 @@ A *station* represents a workstation on the shop floor. It can connect to one or Environments created with the Test environment type have [developer mode](/mendix-workstation/management-stations/#developer-mode) enabled by default for easier testing. Changing the environment type after creation does not enable or disable developer mode. -4. After the workspace is created, in the **Stations** page, click **Create a New Station**. - - {{< figure src="/attachments/workstation/wks-install3.png" class="no-border" >}} - +4. After the workspace is created, in the **Stations** page, click **Create Station**. 5. Enter a name for the station, and then click **Create Station**. {{< figure src="/attachments/workstation/wks-install4.png" class="no-border" >}} diff --git a/static/attachments/workstation/wks-install4.png b/static/attachments/workstation/wks-install4.png index a883a755f71..962b84aa612 100644 Binary files a/static/attachments/workstation/wks-install4.png and b/static/attachments/workstation/wks-install4.png differ