-
Notifications
You must be signed in to change notification settings - Fork 795
Designcenter X Cloud Services Connector #11626
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
Open
Karuna-Mendix
wants to merge
6
commits into
development
Choose a base branch
from
kv-designcenter
base: development
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
48675b4
Add new category/page - Designcenter X Cloud Services Connector
Karuna-Mendix 57f9697
Create SSO page
Karuna-Mendix 57a3265
Add 'Using Designcenter X Cloud Services Connector'
Karuna-Mendix 33eb9aa
Proofread and improve
Karuna-Mendix f776c01
Add small changes
Karuna-Mendix c64a2da
Implement feedback
Karuna-Mendix File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
61 changes: 61 additions & 0 deletions
61
...n/docs/marketplace/industry/xcelerator/siemens-supported/designcenter/_index.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| --- | ||
| title: "Designcenter X Cloud Services Connector" | ||
| url: /appstore/industry/siemens/designcenter/ | ||
| weight: 40 | ||
| description: "Describes how to install and configure the Designcenter X Cloud Services Connector in a Mendix app." | ||
| --- | ||
| ## Introduction | ||
|
|
||
| Designcenter X Cloud Services are scalable, cloud-hosted services that expose Siemens Designcenter's design intelligence and high-compute analysis capabilities on demand. Enterprise apps, dashboards, and automated workflows can all consume these capabilities. | ||
|
|
||
| ## Key Capabilities | ||
|
|
||
| The connector focuses on two high-value capabilities: | ||
|
|
||
| 1. Visual reporting data – generated from Designcenter part files in Teamcenter and available through APIs to build rich, design-aware experiences for customers. | ||
| 2. High-compute design analysis – runs assembly clearance (clash) detection in the cloud so that users can offload large assembly analysis to the cloud. | ||
|
|
||
| The [Designcenter X Cloud Services connector](placeholder) on Mendix Marketplace makes these services available in any Mendix app through ready-to-use microflows. The connector handles authentication, session management, and data exchange so developers can focus on delivering business value rather than managing infrastructure. | ||
|
|
||
| ## Typical Use Cases | ||
|
|
||
| The connector supports scenarios such as: | ||
|
|
||
| * Enterprise dashboards that correlate design data (parts, assemblies, BOM structure) with enterprise data such as cost, supplier, quality, or program status. | ||
| * Historical clash result management – store, search, and trend clearance analysis results over time across releases, programs, or product lines. | ||
| * Design analytics – run analytics over visual report data and clash history to show design quality KPIs, regression detection, and rework hotspots. | ||
| * Engineering automation – trigger high-compute analyses, such as clash detection, on entire assemblies directly from Mendix workflows, with execution governed by business rules. | ||
| * Cross-discipline collaboration – make Designcenter intelligence accessible to non-CAD users, such as program managers, quality, and manufacturing teams, within the apps they already use. | ||
|
|
||
| {{% alert color="info" %}} | ||
| The connector is licensed under the Apache 2.0 License. | ||
| {{% /alert %}} | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| * Studio Pro 10.24.2 and above | ||
| * A valid Siemens Enterprise Cloud Account (ECA) with an entitlement to a Designcenter X product tier and value-based licensing tokens | ||
| * Access to the [Siemens Admin Console](https://cloud.sws.siemens.com/admin/) to provision server users and credentials | ||
| * Built-in Data Management (Teamcenter X Essentials) or a higher Teamcenter X tier (Standard, Advanced, or Premium) | ||
|
|
||
| ## Dependencies {#dependencies} | ||
|
|
||
| You must have the following Marketplace modules installed: | ||
|
|
||
| * [Community Commons](https://marketplace.mendix.com/link/component/170) | ||
| * [Mx Model Reflection](https://marketplace.mendix.com/link/component/69) | ||
| * [Events (widget)](https://marketplace.mendix.com/link/component/224259) | ||
| * [User Commons V2.3.0 or above](https://marketplace.mendix.com/link/component/223053) | ||
| * [OIDC SSO V4.5.0 or above](https://marketplace.mendix.com/link/component/120371) | ||
|
|
||
| ## Installing the Connector | ||
|
|
||
| To install the Designcenter X Cloud Services Connector in your Mendix app, follow these steps: | ||
|
|
||
| 1. Install the modules listed in the [Dependencies](#dependencies) section. | ||
| 2. Follow the instructions in [Using Marketplace Content](/appstore/use-content/) to import the [Designcenter X Cloud Services Connector](placeholder) into your app. | ||
| 3. Configure the connector as described in the [Configuring the Connector for Single Sign-On](/appstore/industry/siemens/designcenter/sso/) document. | ||
|
|
||
| ## Read More | ||
|
|
||
| * [Using Designcenter X Cloud Services Connector](/appstore/industry/siemens/designcenter/using-designcenter/) |
118 changes: 118 additions & 0 deletions
118
...ketplace/industry/xcelerator/siemens-supported/designcenter/designcenter-sso.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,118 @@ | ||
| --- | ||
| title: "Configuring the Connector for Single Sign-On" | ||
| url: /appstore/industry/siemens/designcenter/sso/ | ||
| weight: 50 | ||
| description: "How to configure OAuth single sign-on (SSO) for the Designcenter X Cloud Services Connector in a Mendix app." | ||
| --- | ||
|
|
||
| ## Introduction | ||
|
|
||
| This page explains how to configure OAuth single sign-on (SSO) so your Mendix app can access Designcenter X Cloud Services without requiring users to sign in separately. After importing the Designcenter X Cloud Services Connector into your app, follow the steps in this document to complete the SSO configuration. | ||
|
|
||
| ## Creating a Server User | ||
|
|
||
| To create a server user and obtain client credentials, follow these steps: | ||
|
|
||
| 1. Sign in to the [Siemens Admin Console](https://cloud.sws.siemens.com/admin/) and navigate to **Designcenter X** under **Products**. | ||
| 2. Open **Server Users** and click **Create server user**. | ||
| 3. Fill in the **Name**, **Tier**, and **Role** fields. Enter *Application Owner* as the **Role** and click **Create**. | ||
| 4. Click **Download Credentials** and save the file securely. The file contains the **Client ID** and **Client Secret**. | ||
|
|
||
| ## Configuring the Mendix Application | ||
|
|
||
| ### Configuring Security | ||
|
|
||
| 1. Open **Security** from the **App Explorer**. | ||
| 2. Set the **Security level** to **Production**. | ||
| 3. In the **User roles** tab, edit the **Administrator** role and assign the OIDC, UserCommons, and Designcenter X Cloud Services Connector **Administrator** module roles. | ||
| 4. Edit the **User** role and assign the OIDC and Designcenter X Cloud Services Connector **User** module roles. | ||
|
|
||
| {{< figure src="/attachments/partners/siemens/designcenter/app-security-roles.png" alt="app security configuration" >}} | ||
|
|
||
| ### Configuring Navigation | ||
|
|
||
| 1. In **Navigation**, add a **New Menu Item** named *Designcenter Admin* and set the **On-click** action to **Show a page**. | ||
| 2. Search for and select the `ServerUserConfiguration` page under **Designcenter_Connector** > **USE_ME** > **OIDC**. | ||
| 3. Set the **Atlas ‘cog’** icon for the menu item. | ||
| 4. Add a **Sign out** menu item for the sign-out action, set the **Atlas ‘logout’** icon, and click **OK**. | ||
|
|
||
| ### Configuring Constants | ||
|
|
||
| 1. Open **Settings** from the **App Explorer** and click **Edit** on the default configuration. | ||
| 2. Go to the **Constants** tab and set the `OIDC.EncryptionKey` constant to a 32-character encryption key. For more information, see [Setting the Encryption Key](/appstore/modules/oidc/#setting-encryption-key). | ||
|
|
||
| {{% alert color="info" %}} | ||
| Keep the encryption key private and store it securely in your environment settings. | ||
| {{% /alert %}} | ||
|
|
||
| ## Configuring OIDC SSO | ||
|
|
||
| 1. Run the app locally and sign in as an administrator. For more information, see [Administrator](/refguide/administrator/). | ||
| 2. Navigate to the **Designcenter Admin** page and create a new server configuration using the following values: | ||
|
|
||
| * Client ID – the application identifier downloaded from the Siemens Admin Console. | ||
| * Client Secret – the authentication key generated from the Siemens Admin Console. For more information, see the [Creating a Server User](#creating-a-server-user) section above. | ||
| * ECA ID – your Enterprise Cloud Account identifier. | ||
| * Region – the region where your Designcenter X product was provisioned in the Siemens Admin Console. | ||
|
|
||
| {{< figure src="/attachments/partners/siemens/designcenter/configure-sso.png" alt="SSO configuration" >}} | ||
|
|
||
| 3. Save the configuration. The primary and secondary fields are now populated. Sign out of the app. | ||
|
|
||
| ## Validating the Configuration | ||
|
|
||
| 1. Run the app locally or open `http://localhost:8080/oauth/v2/login` in a browser. The sign-in page appears. Alternatively, if you want to login directly when opening the `login.html` page, follow the [Configuring Login Redirection](/appstore/modules/oidc/#configuring-login-redirection) section of the *OIDC SSO*. | ||
| 2. Sign in via SSO to verify that the app loads successfully and connector operations can establish a Teamcenter session. | ||
|
|
||
| ## Rotating the Credentials | ||
|
|
||
| Rotate credentials every six months for better security. During initial setup, the server user is provisioned with two client credentials: Primary and Secondary. By default, the Primary credential is active. To rotate credentials, follow these steps: | ||
|
|
||
| 1. Sign in as the Mendix administrator. | ||
| 2. Navigate to the **Designcenter Admin** page. The page displays the Primary and Secondary client credentials. | ||
| 3. Click **Rotate Credentials** and enter the server user details from the Siemens Admin Console. | ||
| 4. Click **Rotate**. The Secondary credential becomes active and a new Primary credential is generated. | ||
| 5. To rotate the Secondary credential, repeat the same steps. | ||
|
|
||
| ## Troubleshooting | ||
|
|
||
| If you encounter issues with the Designcenter X Cloud Services Connector, the following sections describe common errors and how to resolve them. | ||
|
|
||
| ### Application Runtime Errors | ||
|
|
||
| #### Widgets or Grid Errors | ||
|
|
||
| If Studio Pro reports widget or grid errors after importing the connector, do the following: | ||
|
|
||
| 1. Right-click the error and update all widgets. | ||
| 2. Convert the grid to Data Grid 2 to eliminate grid errors. | ||
|
|
||
| #### Invalid Client Error During SSO | ||
|
|
||
| If you receive an "Invalid client" error during SSO, the cause is one of the following: | ||
|
|
||
| * The client ID and secret pair is invalid. | ||
| * The server user has been deleted in the Admin Console. | ||
|
|
||
| To resolve this, recreate the server user and update the server configuration in your Mendix app. | ||
|
|
||
| #### No Roles from Token | ||
|
|
||
| The browser may be caching a session from another Enterprise Cloud Application (ECA). To resolve this, sign in using incognito mode or clear your browser cache and try again. | ||
|
|
||
| #### Authentication Failed | ||
|
|
||
| If you see "Authentication failed! Please check with your System Administrator," the authentication credentials are not properly configured. | ||
|
|
||
| To resolve this, go to the **Designcenter Admin** page, click **Delete Client Credentials** to remove the existing credentials, then reconfigure the server user to generate new credentials. | ||
|
|
||
| ### Mendix Studio Console Errors | ||
|
|
||
| #### Server User Is Already Configured | ||
|
|
||
| This error occurs when the same server user is already configured by another user in the same app. To resolve this, go to the **Designcenter Admin** page, click **Delete Client Credentials** to remove the existing credentials, then reconfigure the server user. | ||
|
|
||
| ## Read More | ||
|
|
||
| * [Designcenter X Cloud Services Connector](/appstore/industry/siemens/designcenter/) | ||
| * [Using Designcenter X Cloud Services Connector](/appstore/industry/siemens/designcenter/using-designcenter/) |
183 changes: 183 additions & 0 deletions
183
...tplace/industry/xcelerator/siemens-supported/designcenter/using-designcenter.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,183 @@ | ||
| --- | ||
| title: "Using Designcenter X Cloud Services Connector" | ||
| url: /appstore/industry/siemens/designcenter/using-designcenter/ | ||
| weight: 60 | ||
| description: "How to build Mendix apps using the Designcenter X Cloud Services Connector, including available microflows, inputs and outputs, and best practices." | ||
| --- | ||
|
|
||
| ## Introduction | ||
|
|
||
| This page guides you through building Mendix apps on top of the [Designcenter X Cloud Services Connector](placeholder). It covers the available microflows, their inputs and outputs, a worked end-to-end example, and best practices for production use. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| Configure the OIDC SSO and required constants in your app. For more information, see [Configuring the Connector for Single Sign-On](/appstore/industry/siemens/designcenter/sso/). | ||
|
|
||
| ## Concepts | ||
|
|
||
| * Session – a handle that ensures the same Teamcenter server is used across service calls. The `EstablishSession` microflow either creates a new session or returns an existing one, so the same handle can be reused safely across operations. | ||
| * Environment (Tenant) – the Teamcenter X environment that the session targets. A single user or ECA may have access to multiple environments. | ||
| * Job – an asynchronous unit of work (for example, a visual report run or a clearance analysis). A job returns a Job ID immediately and completes in the background. | ||
| * Domain mapping – job results are returned as JSON. The connector ships helpers that convert these JSON payloads into Mendix domain objects (`VisualReportData`) for easy querying and persistence. | ||
|
|
||
| ## Using Microflows | ||
|
|
||
| The following sections provide more information about using all operations available in the microflow toolbox and under the **USE_ME** folder of the connector module. | ||
|
|
||
| ### Session Lifecycle | ||
|
|
||
| #### `POST_EstablishSession` | ||
|
|
||
| Call `POST_EstablishSession` to create a new session or return an existing one, ensuring the same Teamcenter server is used across service calls. | ||
|
|
||
| * **Input**: Session name (string) | ||
| * **Output**: Session object | ||
|
|
||
| #### `GET_TenantEnvironments` | ||
|
|
||
| Call `GET_TenantEnvironments` to list environments the session can target. | ||
|
|
||
| * **Input**: Session | ||
| * **Output**: List of Environment | ||
|
|
||
| #### `POST_InitializeTeamcenterSession` | ||
|
|
||
| Call `POST_InitializeTeamcenterSession` to bind the session to a specific Teamcenter X environment. | ||
|
|
||
| * **Input**: Session, Environment | ||
| * **Output**: Initialized Session | ||
|
|
||
| {{% alert color="info" %}} | ||
| A session must be initialized against an environment before any data or analysis operation can be | ||
| called. | ||
| {{% /alert %}} | ||
|
|
||
| ### Query Operations | ||
|
|
||
| #### `GET_QueryPartIdFromName` | ||
|
|
||
| Call `GET_QueryPartIdFromName` to find part documents by name (supports wildcards, for example, Bracket_*). | ||
|
|
||
| * **Input**: Session, PartName (string) | ||
| * **Output**: List of PartDocument | ||
|
|
||
| ### Analysis Operations (asynchronous) | ||
|
|
||
| #### `GET_VisualReportNames_Request` | ||
|
|
||
| Call `GET_VisualReportNames_Request` to list available visual report definitions for the tenant. | ||
|
|
||
| * **Input**: Session | ||
| * **Output**: List of report IDs and display names | ||
|
|
||
| #### `POST_GenerateVisualReport_Request` | ||
|
|
||
| Call `POST_GenerateVisualReport_Request` to run one or more visual reports against a part or assembly. | ||
|
|
||
| * **Input**: Session, PartID, ReportIDs, ProcessingType | ||
| * **Output**: JobID | ||
|
|
||
| #### `POST_ClearanceAnalysisRequest` | ||
|
|
||
| Call `POST_ClearanceAnalysisRequest` to run clearance (clash) analysis. | ||
|
|
||
| * **Input**: Session, PartID, ProcessingType | ||
| * **Output**: JobID | ||
|
|
||
| {{% alert color="info" %}} | ||
| Analysis operations are asynchronous. They return a Job ID immediately; the actual computation runs | ||
| in the cloud. | ||
| {{% /alert %}} | ||
|
|
||
| ### Job Retrieval | ||
|
|
||
| #### `GET_JobsByTypes` | ||
|
|
||
| Call `GET_JobsByTypes` to list jobs the current user can see, filtered by type. | ||
|
|
||
| * **Input**: Session, Type (visualreports or clearance) | ||
| * **Output**: List of JobID | ||
|
|
||
| #### `GET_DataForJobId` | ||
|
|
||
| Call `GET_DataForJobId` to fetch the raw result payload for a job. | ||
|
|
||
| * **Input**: Session, JobID | ||
| * **Output**: JSON string | ||
|
|
||
| #### `GET_VisualReportDataListFromJobId` | ||
|
|
||
| Call `GET_VisualReportDataListFromJobId` to convert a visual report job's payload into domain objects. | ||
|
|
||
| * **Input**: Session, JobID | ||
| * **Output**: List of VisualReportData | ||
|
|
||
| ## Connector Integration Workflow | ||
|
|
||
| The diagram below shows the sequence of interactions between the Mendix app, the connector, Teamcenter, and Designcenter X Cloud Services. | ||
|
|
||
| {{< figure src="/attachments/partners/siemens/designcenter/workflow.png" alt="connector workflow" >}} | ||
|
|
||
| ### Polling vs. User-Driven Retrieval | ||
|
|
||
| The connector does not push notifications when a job finishes. You have two options: | ||
|
|
||
| * User-driven – show the user a **Refresh results** button that re-runs `GET_JobsByTypes` and `GET_VisualReportDataListFromJobId`. This is simple and adequate for most analytical workflows. | ||
|
|
||
| * Scheduled poll – use a scheduled event microflow to poll outstanding job IDs (stored in your domain) every N seconds or minutes, fetch results, and update status. This approach works best for fire-and-forget workflows where the result feeds another process. | ||
|
|
||
| ## Working with Job Results | ||
|
|
||
| `GET_DataForJobId` returns raw JSON, which is useful when you want to store the full payload (for example, for audit) or post-process it yourself. | ||
|
|
||
| For visual reports, prefer `GET_VisualReportDataListFromJobId`. It maps the payload onto the `VisualReportData` domain entity that ships with the connector. Typical attributes include: | ||
|
|
||
| * Part identifier and revision | ||
| * Report definition reference | ||
| * Aggregated metrics (counts, totals, classification) | ||
| * Component-level rows for assembly runs | ||
|
|
||
| {{% alert color="info" %}} | ||
| Persist `VisualReportData` into your own domain entities if you intend to run analytics across many runs. The Connector's domain is best used as a landing zone, not the long-term system of record. | ||
| {{% /alert %}} | ||
|
|
||
| ## Troubleshooting | ||
|
|
||
| This section describes the most common failure modes and their solutions. | ||
|
|
||
| ### Session Expired | ||
|
|
||
| If any operation fails after `POST_InitializeTeamcenterSession`, the session may have expired. Call `POST_EstablishSession` again and retry the failed call. | ||
|
|
||
| ### Environment Not Authorized | ||
|
|
||
| If `POST_InitializeTeamcenterSession` fails with an authorization error, have the user select a different environment and verify the Enterprise Cloud Account (ECA) entitlement in the Siemens Admin Console. | ||
|
|
||
| ### Invalid Part ID | ||
|
|
||
| If `POST_GenerateVisualReport_Request` or `POST_ClearanceAnalysisRequest` fails due to an invalid part ID, validate the part ID against the result of `GET_QueryPartIdFromName` before submitting the request. | ||
|
|
||
| ### Job Not Found or Not Ready | ||
|
|
||
| If `GET_DataForJobId` or `GET_VisualReportDataListFromJobId` returns a job-not-found error, the job may still be running. Treat the response as in-progress, wait, and retry. | ||
|
|
||
| ### Authentication Error | ||
|
|
||
| If any operation returns an authentication error, confirm that the `OIDC.EncryptionKey` constant and connector constants are correctly set, and verify that the server user is still active in the Siemens Admin Console. | ||
|
|
||
| A small reusable sub-microflow that centralizes "re-establish session and retry once" pays for itself quickly. | ||
|
|
||
| ## Best Practices | ||
|
|
||
| * Always pass `ProcessingType` explicitly. For assemblies, use `ProcessComponentsInAssembly` in most cases. | ||
|
|
||
| * Cache report definitions: `GET_VisualReportNames_Request` results change infrequently. Cache them for the duration of the user's app session to avoid unnecessary calls. | ||
|
|
||
| * Page large result sets: Visual reports on large assemblies can return thousands of rows. Page or stream results into your domain model rather than loading the full list into memory at once. | ||
|
|
||
| * Isolate connector calls in a service layer: Wrap each connector microflow in a thin custom microflow (for example, `SUB_RunVisualReport`) so that future connector upgrades only affect one layer of your app. | ||
|
|
||
| ## Read More | ||
|
|
||
| * [Designcenter X Cloud Services Connector](/appstore/industry/siemens/designcenter/) | ||
| * [Configuring the Connector for Single Sign-On](/appstore/industry/siemens/designcenter/sso/) | ||
Binary file added
BIN
+56.2 KB
static/attachments/partners/siemens/designcenter/app-security-roles.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.