-
Notifications
You must be signed in to change notification settings - Fork 791
Draft Workstation updates #10643
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft Workstation updates #10643
Changes from 12 commits
228c1d6
d17225d
7a8ce79
c099509
d78e071
124d504
bb30017
a8bda76
c85e9b1
897be0a
37e59b6
8236bff
267d3ed
6470347
44c99b8
65ac4ac
adc9d02
f8b3258
3cbe39f
32fba41
fd65988
8102993
25a36f7
7da4090
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,31 +11,20 @@ cascade: | |
|
|
||
| ## Introduction | ||
|
|
||
| Mendix Workstation is designed to help you build smarter, faster, and more operator-friendly applications for shop floor operators. It enables Mendix cloud applications to directly interact with peripheral devices on a local workstation, without relying on intermediate servers or heavy network traffic. | ||
| Mendix Workstation helps you build applications for shop floor operators. It enables Mendix applications to directly interact with peripheral devices on a local workstation, without relying on intermediate servers or heavy network traffic. | ||
|
|
||
| By connecting applications directly to the PC's local resources, Workstation allows for near real-time communication with devices like printers, barcode scanners, smart card readers, and industrial scales, all from within a Mendix app. This setup ensures low-latency performance and reduces infrastructure complexity. | ||
| By connecting applications directly to the PC's local resources, Workstation allows Mendix apps to communicate in near real-time with devices like printers, barcode scanners, smart card readers, and industrial scales. This setup ensures low-latency performance and reduces infrastructure complexity. | ||
|
|
||
| Workstation is especially valuable in manufacturing and industrial environments where precision, speed, and reliability are key to operator efficiency. | ||
|
|
||
| In addition to connectivity features, Workstation supports enterprise-grade deployment of projects across multiple environments and sites. It enables distributed teams to collaborate effectively and centrally manage connections to a wide range of heterogeneous equipment assets in a controlled and secure manner. | ||
| In addition to connectivity features, Workstation supports enterprise-grade deployment of projects across multiple environments and sites. It enables distributed teams to collaborate effectively and centrally manage connections to a wide range of equipment in a controlled and secure manner. | ||
|
|
||
| ## Licensing Mendix Workstation | ||
|
|
||
| Mendix Workstation is [Limited Availability](https://docs.mendix.com/releasenotes/release-status/#limited-availability) for production use. Support is provided according to your Mendix SLA if you purchased a Workstation license. If you want to take Mendix Workstation into production, contact your CSM to see what arrangements are possible. Without a license you can use Mendix Workstation for development, but workspaces are individual and cannot be shared. | ||
|
|
||
| The following functionalities are only available with a license: | ||
|
|
||
| * [Bulk import of stations](/mendix-workstation/import-export/) | ||
| * [Bulk registration of Workstation Clients](/mendix-workstation/register/) | ||
| * [Inviting users](/mendix-workstation/build-app/#invite-users) | ||
|
|
||
| ## Features of Mendix Workstation | ||
| ## Capabilities Overview | ||
|
|
||
| Mendix Workstation has the following features: | ||
|
|
||
| * Direct local device access - Mendix Workstation allows Mendix client applications to send and receive messages directly from the PC's local hardware. | ||
| * No server detour - Communication happens between the client app and local devices — without routing through a central server, network overload, or any additional intermediate systems. | ||
| * Interactions with the local PC, such as sending and receiving on-event messages, are handled with Mendix nanoflows. | ||
| * Enables Mendix applications to communicate with local devices without routing through a central server, network overload, or any additional intermediate systems. | ||
| * Uses Mendix nanoflows to handle interactions with the local PC, such as sending and receiving on-event messages. | ||
| * Supports multiple interfaces: | ||
|
|
||
| * PCSC (smart card Reader) - APDU protocol | ||
|
|
@@ -46,58 +35,34 @@ Mendix Workstation has the following features: | |
|
|
||
| * Can emulate and simulate interfaces. | ||
|
|
||
| ## Benefits of Using Mendix Workstation | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why we deleting the part of the benefits? Or is it moved somewhere? |
||
| ### Use Cases | ||
|
|
||
| * Improve operator user experience and efficiency. | ||
| * Renovate home-grown application and get control of legacy systems. | ||
| * Keep core systems clean. | ||
| * Create apps adapted to the operator's job, instead of forcing the operator to adapt their job to the software. | ||
| * Compose new forms of user experience tailored to manufacturing processes, equipment and environment. | ||
| * Expand to adjacent users and domains of your core systems and cross boundaries between silos. | ||
|
|
||
| ## Use Cases | ||
|
|
||
| Mendix Workstation can be used to create apps that handle use cases such as the following: | ||
| You can use Mendix Workstation to create apps that handle use cases such as the following: | ||
|
|
||
| * Printing labels on an industrial thermal label printer (for example, a Zebra printer) | ||
| * Badge operators with an NFC smart card reader and PC/SC specification | ||
| * Scanning and parsing barcodes (for example, GS1 specifications) | ||
| * Weighing materials with an industrial scale (for example, a Mettler Toledo SICS-compatible scale) | ||
| * Connected smart tools (for example, screwdrivers with torque control) | ||
|
|
||
| ## Components of Mendix Workstation | ||
| ## Key Components | ||
|
|
||
| Mendix Workstation consists of the following components: | ||
|
|
||
| * [Workstation Management](https://workstation.home.mendix.com/) - Allows centralized configuration. | ||
| * [Workstation Client](https://marketplace.mendix.com/link/component/247448) - Allows real-time communication with local hardware. | ||
| * [Workstation Connector](https://marketplace.mendix.com/link/component/247460) - Allows app integration. | ||
|
|
||
| Together, these components enable Mendix applications to securely and efficiently integrate with local devices, bridging the gap between digital workflows and physical operations. | ||
|
|
||
| ### Architecture Diagram | ||
| * [Workstation Management](/mendix-workstation/management/) - Allows centralized configuration. | ||
| * [Workstation Client](/mendix-workstation/client/) - Allows real-time communication with local hardware. | ||
| * [Workstation Connector](/mendix-workstation/connector/) - Allows app integration. | ||
|
|
||
| {{< figure src="/attachments/workstation/WorkstationDiagram.png" class="no-border" >}} | ||
|
|
||
| ### Workstation Management (Mendix Service) | ||
|
|
||
| Used by central IT and application support teams. Workstation Management is a Mendix Platform application which provides a centralized interface to configure and monitor all workstations and devices across the organization. Whether managing a few stations or hundreds across multiple global sites, administrators can register computers, assign devices, group them into workspaces, and remotely troubleshoot connection issues. | ||
|
|
||
| This makes it easier to manage a large, diverse fleet of devices without the need for manual setup or on-site support. | ||
|
|
||
| ### Workstation Client (Native Application) | ||
|
|
||
| Used by central IT, support teams, operators, and supervisors. Installed on each local workstation, the Workstation Client acts as a bridge between the Mendix client app and local hardware. It handles the traffic between connected devices and the client application using the configurations provided by the Workstation Management. | ||
|
|
||
| ### Workstation Connector (Mendix Module) | ||
| ## Licensing Mendix Workstation | ||
|
|
||
| Used by Mendix developers. The App Connector is a plug-and-play Mendix module that allows developers to connect their apps to local devices using nanoflows. It establishes a connection with the Workstation Client, which acts as the intermediary between the Mendix app and the local devices. Once this connection is established, the module facilitates seamless data exchange by routing messages and events back and forth between the app and the devices. | ||
| Mendix Workstation is [Limited Availability](https://docs.mendix.com/releasenotes/release-status/#limited-availability) for production use. Support is provided according to your Mendix SLA if you purchased a Workstation license. If you want to take Mendix Workstation into production, contact your CSM to see what arrangements are possible. Without a license you can use Mendix Workstation for development, but workspaces are individual and cannot be shared. | ||
|
|
||
| The connector handles the following tasks: | ||
| The following functionalities are only available with a license: | ||
|
|
||
| * Retrieving local station configuration (name and device list) | ||
| * Connecting and disconnecting devices | ||
| * Exchanging messages with devices | ||
| * Subscribing for triggering app logic on event when receiving messages from a device | ||
| * [Bulk import of stations](/mendix-workstation/import-export/) | ||
| * [Bulk registration of Workstation Clients](/mendix-workstation/register/) | ||
| * [Inviting users](/mendix-workstation/build-app/#invite-users) | ||
|
|
||
| ## Read More | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,138 @@ | ||
| --- | ||
| title: "Mendix Workstation Management" | ||
| linktitle: "Workstation Management" | ||
| url: /mendix-workstation/management/ | ||
| description: "Describes how to set up and administer Mendix Workstation Management." | ||
| weight: 30 | ||
| --- | ||
|
|
||
| ## Introduction | ||
|
|
||
| After you have [installed the Workstation Client](/mendix-workstation/installation/), you must either build a Mendix application that will send data or commands to your devices, or extend an existing app accordingly. In order to do that, you must download, install, and configure the [Mendix Workstation Connector](https://marketplace.mendix.com/link/component/247460) from the Mendix Marketplace. | ||
|
|
||
| ### How the Connection Works | ||
|
|
||
| The Workstation Connector must authenticate itself to the Workstation Client so that the Client trusts the app using the Connector and establishes a connection. To achieve this, a key pair has to be generated by the Workstation Connector. The public key must be configured in the corresponding app in the Workstation Management. Workstation Client configuration must be up-to-date so that the public key can be verified. | ||
|
|
||
| The Workstation Connector establishes connection with the Device through the Workstation Client when it is needed. The connection is closed when it is not required anymore. | ||
|
|
||
| When a client browser or tab instance tries to connect to a device, previously connected browser or tab instances are disconnected from the device. | ||
|
|
||
| The Workstation Connector connects with Workstation Client using a local WebSocket on port 8094. Communication with each configured device uses another WebSocket on port 8095 for the first device, 8096 for the second, and so on, so that the range of ports used is port *8094* to *8094+n*, where *n* is the number of devices you have. Make sure that the Runtime or Admin port of your local development server in Studio Pro (**App Settings** > **Configurations** > **Server**) is not configured on a port greater or equal to 8094. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| * Mendix Workstation 3.0.0 | ||
| * Mendix Studio Pro 9.24.11 or newer | ||
|
|
||
| ## Installing and Configuring the Workstation Connector | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should that part not be moved to the workstation connector section?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Or at least the part that is happening not in the management? |
||
|
|
||
| To install and configure the Workstation Connector, perform the following steps: | ||
|
|
||
| 1. Open an existing app to extend with Workstation functionality in Mendix Studio Pro, or create a new app. | ||
| 2. Import the [Mendix Workstation Connector](https://marketplace.mendix.com/link/component/247460) from the Mendix Marketplace. | ||
| 3. Configure the station in Workstation Management by performing the following steps: | ||
|
|
||
| 1. Navigate to the **Workspaces** page in [Workstation Management](https://workstation.home.mendix.com/). | ||
| 2. Click **Create Workspace**, or select an existing workspace from the overview. | ||
| 3. Click **Create Station**. | ||
| 4. Enter a name for the station and optionally select or create a group to categorize it, such as *Assembly*. | ||
| 5. Add devices in the **Devices** section. | ||
| 6. Click **Register Computer** to register your computer. | ||
| 7. Click **Download** to navigate to the Workstation Client listing in the Marketplace, download the Client installer for Windows, install it, and launch it. | ||
| 8. Copy the registration token and paste it into the [Workstation Client](/mendix-workstation/installation/) registration field. | ||
|
|
||
| 4. Configure your app as an allowed app by performing the following steps: | ||
|
|
||
| 1. In your app go to [App Security](/refguide/app-security/#user-roles) and assign the module role **StationConnector.Administrator** to the Administrator user role. | ||
| 2. In your app add the page **StationConnector_Security** to your navigation or link to it from an **Open page** button. Alternatively, place the snippet **SNIPPET_StationAdminPage** on a page available to the Adminstrator user role. | ||
| 3. Run the app. | ||
| 4. Log in as an Administrator, navigate to the page you added in step 2 and copy the shown public key. | ||
| 5. Go back to the [Workstation Management](https://workstation.home.mendix.com/) and navigate to the workspace you created in step 3.2. | ||
| 6. Go to the **Apps** page in your workspace and click **Create App**. | ||
| 7. Enter your app's URL (for example, `http://localhost:8080`, which is the default when running an app locally) and paste the copied public key into the **Public Key** field. | ||
| 8. Perform one of the following actions: | ||
| * To enable the app for all stations, select **Enable in all stations** | ||
| * To enable it for a specific station, go to **Stations** and navigate to your station. You will find the created app under the **Apps** section. Here you can enable the application just for this station by pressing the toggle. | ||
| 9. Refresh the Workstation Client. | ||
| 10. Optional: To recreate the key pair, additionally assign the module role **StationConnector.SecurityAdministrator** to your Administrator role. This adds a **Regenerate KeyPair** button to the **StationConnector_Security** page. Use caution when using this button in a production scenario to avoid the need to reconfigure the app in the Management, and refresh all Workstation Clients. | ||
|
|
||
| ## Managing Apps | ||
|
|
||
| The app that you created in the previous section is available on the **Apps** page that you can access through the left navigation menu. To enable or disable the app for all your stations or groups of stations, click the icon in the right column of the app list, and then click **Manage App**. | ||
|
|
||
| ## Managing Users | ||
|
|
||
| You can invite other Workstation Management users to your workspace to share configurations and collaborate. This feature requires a Workstation license. | ||
|
|
||
| To invite a user, click **Team** in the left navigation menu, then click **Invite Team Member**. Enter the user's email address and select a role. For more information about the available roles, see [Workspace Team and Collaboration](/mendix-workstation/installation/#collaboration). | ||
|
|
||
| To change a user's role or remove them from the workspace, click the three-dot icon in the right column of the user list. This action requires the Owner or Workspace Admin role. | ||
|
|
||
| ## Getting Started with Custom Logic for Device Interaction | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This and the following parts we need to update based on the changes Liam did and we will publish in release 3.6 |
||
|
|
||
| Now that you are ready to start using Mendix Workstation, you can implement your own custom logic for interacting with devices. The following nanoflows and Java actions are essential for establishing connections, sending or receiving messages, and managing device interactions: | ||
|
|
||
| * **GetStation** - Retrieves the computer information connected to the Client. | ||
| * **SendMessage** - Sends data or commands to the connected device. For more information about the supported message syntax, see [Message Syntax for File, Smart Card, and Bluetooth Devices](/mendix-workstation/device-syntax/). | ||
| * **SubscribeToMessages** - Subscribes to device messages and triggers a nanoflow when messages are received. | ||
| * **SubscribeToErrors** - Subscribes to device connection errors and triggers a nanoflow when errors occur. | ||
| * **Unsubscribe** - End the subscription to device messages or errors. | ||
| * **UnsubscribeByContext** - End all subscriptions related to a context object. | ||
| * **UnsubscribeByDevice** - End all subscriptions related to a specific device. | ||
| * **DisconnectDevice** - Unsubscribe and completely disconnect from a specific device. | ||
|
|
||
| These nanoflows and actions serve as the core building blocks for integrating devices into your Mendix applications and tailoring the functionality to your specific requirements. | ||
|
|
||
| ### Understanding the Domain Model | ||
|
|
||
| The domain model contains the following entities: | ||
|
|
||
| * **Station** - Includes the station name, computer name, the workspace name and the client version (non-persistent entities). | ||
| * **Device** - A list of devices associated with the station; includes device names and properties required to achieve a connection (non-persistent entities). | ||
| * **AppKeyPair** - A persistent entity to store the app's key pair. The public key needs to be entered in the corresponding app in the Workstation Management. | ||
|
|
||
| ### Using the Nanoflows and Actions | ||
|
|
||
| The following section provides more information about using the nanoflows and Java actions in your Mendix application. | ||
|
|
||
| #### GetStation | ||
|
|
||
| Call `GetStation` to retrieve configuration of the current Client computer by using the Workstation Client. `GetStation` can be used multiple times, but it queries the Workstation Client only the first time. The following calls return the current object loaded in the session. If connection with Workstation Client does not work, `GetStation` returns an empty object. | ||
|
|
||
| #### SendMessage | ||
|
|
||
| Call `SendMessage` to send a message to a device. `SendMessage` includes the option to wait for the response of the device in the current nanoflow. | ||
|
|
||
| #### SubscribeToMessages | ||
|
|
||
| Call `SubscribeToMessages` to trigger a nanoflow when a message is received from a device. `SubscribeToMessages` provides an option to specify a context object that will be passed to the callback nanoflow whenever a message is received. | ||
|
|
||
| The callback nanoflow must have the following parameters: | ||
|
|
||
| * `Device` (object) | ||
| * `Message` (String) | ||
| * `Context object` (same as the name used when subscribing) | ||
|
|
||
| #### SubscribeToErrors | ||
|
|
||
| Call `SubscribeToErrors` to trigger a nanoflow on device connection error. | ||
|
|
||
| The callback nanoflow must have the following parameters: | ||
|
|
||
| * `Device` (object) | ||
| * `ErrorMessage` (String) | ||
| * `ErrorCode` (Integer) | ||
| * `Context object` (same as the name used when subscribing) | ||
|
|
||
| #### Unsubscribe | ||
|
|
||
| Call `Unsubscribe` to end a subscription. | ||
|
|
||
| #### UnsubscribeByContext | ||
|
|
||
| Call `UnsubscribeByContext` to end all subscriptions related to a context object. | ||
|
|
||
| ## Error Logs | ||
|
|
||
| Logs for the Workstation Management, Client, and Connector are available in case of issues. For more information about accessing the logs, see [Troubleshooting Mendix Workstation](/mendix-workstation/troubleshooting/). | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| --- | ||
| title: "Mendix Workstation Client" | ||
| linktitle: "Workstation Client" | ||
| url: /mendix-workstation/client/ | ||
| description: "Describes how to set up and administer the Mendix Workstation Client." | ||
| weight: 30 | ||
| --- | ||
|
|
||
| ## Introduction | ||
|
|
||
| Installed on each local workstation, the [Workstation Client](https://marketplace.mendix.com/link/component/247448) acts as a bridge between the Mendix client app and local hardware. It handles the traffic between connected devices and the client application using the configurations provided by the Workstation Management. | ||
|
|
||
| ### Users | ||
|
|
||
| Workstation Client is used by central IT, support teams, operators, and supervisors. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| --- | ||
| title: "Mendix Workstation Connector" | ||
| linktitle: "Workstation Connector" | ||
| url: /mendix-workstation/connector/ | ||
| description: "Describes how to set up and administer Mendix Workstation Connector." | ||
| weight: 30 | ||
| --- | ||
|
|
||
| ## Introduction | ||
|
|
||
| The [Workstation Connector](https://marketplace.mendix.com/link/component/247460) is a Mendix module that allows developers to connect their apps to local devices using nanoflows. It establishes a connection with the Workstation Client, which acts as the intermediary between the Mendix app and the local devices. Once this connection is established, the module facilitates seamless data exchange by routing messages and events back and forth between the app and the devices. | ||
|
|
||
| The connector handles the following tasks: | ||
|
|
||
| * Retrieving local station configuration (name and device list) | ||
| * Connecting and disconnecting devices | ||
| * Exchanging messages with devices | ||
| * Subscribing for triggering app logic on event when receiving messages from a device | ||
|
|
||
| ### Users | ||
|
|
||
| The Workstation Connector is used by Mendix developers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Merged in #11455, adjusted a little in the Key Components section