Skip to content

Commit d4d29dd

Browse files
committed
TW review
1 parent aa9760e commit d4d29dd

3 files changed

Lines changed: 106 additions & 85 deletions

File tree

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,38 @@
11
---
2-
title: "Teamcenter BOM component"
3-
url: /partners/siemens/teamcenter-bom-component/
2+
title: "Teamcenter BOM Widget"
3+
url: /partners/siemens/teamcenter-bom-widget/
44
weight: 20
5-
description: "Describes Teamcenter BOM component, which enables out of the box visualization of large Bill Of Material (BOM) data sets similar to what's available in Teamcenter's Active Workspace."
5+
description: "Describes the Teamcenter BOM widget, which enables out-of-the-box visualization of large Bill Of Material (BOM) data sets similar to what is available in Teamcenter's Active Workspace."
66
---
77

88
## Introduction
9-
The Teamcenter BOM Widget brings **Teamcenter Bill of Materials (BOM)** capabilities into Mendix applications. Use it to view, edit, configure, and perform property updates on Teamcenter BOM structures directly in Mendix, reducing context switches and simplifying product structure tasks.
9+
10+
The Teamcenter BOM widget brings Teamcenter Bill of Materials (BOM) capabilities into Mendix apps. You can use it to view, edit, configure, and perform property updates on Teamcenter BOM structures directly in Mendix, thus reducing context switches and simplifying product structure tasks.
1011

1112
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/bom-widget-studio-pro.png">}}
1213

13-
### Key Capabilities
14-
* Display Teamcenter BOMs: render complex product structures within Mendix pages.
15-
* Edit BOM properties: update BOM line properties from Mendix.
16-
* Apply Teamcenter configuration: use revision rules and effectivities (date/unit), variants.
17-
* Augment with Mendix data: inject custom **Client Columns** alongside Teamcenter properties.
14+
## Key Capabilities
15+
16+
* Display Teamcenter BOMs – Render complex product structures within Mendix pages.
17+
* Edit BOM properties – Update BOM line properties from Mendix.
18+
* Apply a Teamcenter configuration – Use revision rules, effectivities (date/unit), and product variants.
19+
* Augment with Mendix data – Inject custom client columns alongside Teamcenter properties.
1820

1921
## Prerequisites
20-
* Teamcenter Connector version 2512.0.0 or higher (the widget depends on its request handler).
21-
* Access to a Teamcenter environment 2512 or above with appropriate credentials/permissions. The widget utilizes new APIs introduced in Teamcenter 2512 and hence cannot be used with older versions of Teamcenter.
22+
23+
* Teamcenter Connector version 2512.0.0 or above. The widget depends on its request handler.
24+
* Access to a Teamcenter environment in version 2512.0.0 or above with appropriate credentials and permissions. The widget utilizes new APIs introduced in Teamcenter 2512.0.0, hence cannot be used with older versions of Teamcenter.
2225
* Teamcenter base platform and Structure Management modules installed.
23-
* Mendix 10.24.12 or higher.
24-
* A Mendix application with the TcConnector module added and configured.
26+
* Mendix Studio Pro 10.24.12 or above.
27+
* A Mendix app with the `TcConnector` module added and configured.
28+
29+
## Persistence and Propagation
30+
31+
Edits made through the widget invoke Teamcenter services via `TcConnector`. Changes to BOM line properties are propagated to Teamcenter when the operation is committed and accepted by the server. You must ensure that users have appropriate permissions, and consider requiring explicit save/commit actions through the user interface.
32+
33+
## Best Practices
2534

26-
## Persistence & Propagation
27-
Edits made through the widget invoke Teamcenter services via `TcConnector`. Changes to BOM line properties are propagated to Teamcenter when the operation is committed and accepted by the server. Ensure users have appropriate permissions, and consider requiring explicit save/commit actions in your UI.
35+
Mendix recommends applying these best practices to ensure proper performance:
2836

29-
## Notes & Best Practices
30-
* Keep titles and headers concise and technical; avoid marketing language in developer documentation.
31-
* Use unique `WidgetIDs` per page to avoid collisions.
37+
* Keep titles and headers concise and technical. Avoid marketing language in developer documentation.
38+
* Use unique `WidgetIDs` per page to avoid collisions.
Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,48 @@
11
---
2-
title: "BOM component configuration"
3-
url: /partners/siemens/bom-component-configuration/
2+
title: "Teamcenter BOM Widget Configuration"
3+
url: /partners/siemens/bom-widget-configuration/
44
weight: 2
5-
description: "Configuration instructions and explanation for the usage of the Teamcenter BOM component."
5+
description: "Configuration instructions and explanation for the usage of the Teamcenter BOM widget."
66
---
77

8-
## After-startup
9-
The BOM component relies on specific connections to and from your Teamcenter instance.
8+
## After Startup
109

11-
To ensure this is properly setup, you must add the `Startup` microflow that is provided by the `TcConnector` module to your project's [After startup settings](/refguide/runtime-tab/#after-startup). This microflow registers the required request handlers used by the **TcBOM widget**.
10+
The Teamcenter BOM widget relies on specific connections to and from your Teamcenter instance.
11+
To ensure that everything is properly set up, you must add the `Startup` microflow that is provided by the `TcConnector` module to your project's [After startup settings](/refguide/runtime-tab/#after-startup). This microflow registers the required request handlers used by the Teamcenter BOM widget.
12+
13+
## Teamcenter BOM Widget Tabs
14+
15+
The following sections describe the tabs of the Teamcenter BOM widget.
16+
17+
### General Tab
1218

13-
## BOM Component
14-
### General tab
1519
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/bom-widget-configuration-general.png">}}
1620

1721
Configure the following properties on the widget:
18-
* `Widget identifier`: Unique identifier for this instance of the widget. This is useful if you have multiple **TcBOM widgets** in your application that need to display different data. You can use this ID to discriminate and return the appropriate data.
19-
* `Product UID`: Teamcenter UID of the product (item or assembly) whose BOM will be displayed.
20-
* `Configuration settings`: Comma-separated options to control BOM loading and display (see below).
21-
* `Revision rule UID`: Teamcenter UID of the revision rule to apply when loading the BOM.
2222

23-
#### Configuration settings
24-
When leaving the configuration settings, by default, all configuration options are shown in the configuration header menu: variants, arrangements, partitions, unit effectivity, date effectivity configuration.
23+
* **Widget identifier** – The unique identifier for this instance of the widget. This is useful if your app includes multiple Teamcenter BOM widgets that need to display different data. You can use this ID to differentiate and return the appropriate data.
24+
* **Product UID** – The Teamcenter UID of the product (item or assembly) whose BOM will be displayed.
25+
* **Configuration settings** – Comma-separated options to control the loading and the display of the BOM. For details, refer to [Configuration Settings](#config-settings).
26+
* **Revision rule UID** – The Teamcenter UID of the revision rule to apply when loading the BOM.
2527

26-
To hide any option, use the corresponding values as a comma-separated list in `Configuration settings`.
27-
Supported `Configuration settings` values:
28-
* `HideVariantConfiguration`: hides variant-based configuration.
29-
* `HideArrangementConfiguration`: hides arrangement-based configuration.
30-
* `HidePartitionConfiguration`: hides partition-based configuration.
31-
* `HideUnitEffectivityConfiguration`: hides unit effectivity configuration.
32-
* `HideDateEffectivityConfiguration`: hides date effectivity configuration.
28+
#### Configuration Settings {#config-settings}
3329

34-
In the example, below, the variant and date effectivity configurations will be hidden, while the other settings will be shown:
35-
`ConfigurationSettings` = `"HideVariantConfiguration,HideDateEffectivityConfiguration"`
30+
By default, all configuration options are shown in the configuration header menu: variants, arrangements, partitions, unit effectivity, date effectivity configuration.
31+
To hide any option, use the corresponding values as a comma-separated list in **Configuration settings**.
32+
These are the supported **Configuration settings** values:
3633

37-
### Selection tab
34+
* `HideVariantConfiguration` – Hides variant-based configuration.
35+
* `HideArrangementConfiguration` – Hides arrangement-based configuration.
36+
* `HidePartitionConfiguration` – Hides partition-based configuration.
37+
* `HideUnitEffectivityConfiguration` – Hides unit effectivity configuration.
38+
* `HideDateEffectivityConfiguration` – Hides date effectivity configuration.
39+
40+
### Selection Tab
3841

3942
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/bom-widget-configuration-selection.png">}}
4043

41-
The widget supports cross-selection to coordinate with other page components. The cross-selection is one-way where selecting a BOM line in the BOM populates its properties on a configured entity.
42-
* `Selected UID`: UID of the ItemRevision that was last selected in the BOM.
43-
* `Selected Item ID`: ID of the ItemRevision that was last selected in the BOM.
44-
* `Selected Item Revision ID`: Revision ID of the ItemRevision that was last selected in the BOM.
44+
The widget supports cross-selection to coordinate with other page components. The cross-selection is one-way, and selecting a BOM line in the BOM populates its properties on a configured entity.
45+
46+
* **Selected UID** – The UID of the `ItemRevision` that was last selected in the BOM.
47+
* **Selected Item ID** – The ID of the `ItemRevision` that was last selected in the BOM.
48+
* **Selected Item Revision ID** – The revision ID of the `ItemRevision` that was last selected in the BOM.
Lines changed: 49 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,83 @@
11
---
2-
title: "Advanced customization options"
3-
url: /partners/siemens/bom-component-customization/
2+
title: "Advanced Customization Options"
3+
url: /partners/siemens/bom-widget-customization/
44
weight: 3
5-
description: "Describes the customization capabilities that allow developers to add in data from other external systems and how these can be combined into the Teamcenter BOM component."
5+
description: "Describes the customization capabilities that allow developers to add data from external systems, and how these can be combined into the Teamcenter BOM widget."
66
---
77

88
## Augmenting with Mendix Data
9-
Client Columns allow you to display custom data next to Teamcenter properties in the BOM view. The widget calls two microflows:
10-
* `CUSTOM_RetrieveClientColumnDefinitions`: Microflow to retrieve the client column definitions (client column name, width and column order)
11-
* `CUSTOM_RetrieveClientColumnData`: Microflow to retrieve the additional cell-data to display for the BOM lines and client columns.
129

13-
As a developer you are free to implement this to your own needs. Additional data can be (but is not limited to) calculated values, third-party data or data from the database.
10+
Client columns allow you to display custom data next to Teamcenter properties in the BOM view. The widget calls the following two microflows:
11+
12+
* `CUSTOM_RetrieveClientColumnDefinitions` – Microflow to retrieve the client column definitions: client column name, width, and column order.
13+
* `CUSTOM_RetrieveClientColumnData` – Microflow to retrieve the additional cell data to display for the BOM lines and client columns.
14+
15+
As a developer, you are free to implement this according to your own needs. Additional data includes calculated values, third-party data, or data from the database.
1416

1517
### CUSTOM_RetrieveClientColumnDefinitions
1618

17-
This microflow is invoked by the TcBOM widget to retrieve the definitions of the custom columns (ClientColumns) to display in the TcBOM widget.
19+
This microflow is invoked by the Teamcenter BOM widget to retrieve the definitions of the client columns to display in the widget.
1820

1921
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/custom-retrieveclientcolumndefinitions.png">}}
2022

21-
#### Input parameter
22-
* **Object:** `MendixColumnRoot`
23-
* **Attributes:**
24-
* `WidgetId` is a unique identifier for the specific TcBOM widget instance making the request. This is useful if you have multiple TcBOM widgets in your application that need to display different columns. You can use this ID to discriminate and return the appropriate data.
23+
#### Input Parameter
24+
25+
* **Object**: `MendixColumnRoot`
26+
* **Attribute**:
27+
28+
* `WidgetId` is a unique identifier for the specific Teamcenter BOM widget instance that is making the request. This is useful if your app includes multiple Teamcenter BOM widgets that need to display different columns. You can use this ID to differentiate and return the appropriate data.
2529

2630
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/domain-model-mendixcolumnroot.png">}}
2731

28-
#### Return value
29-
* **Object:** `List of ClientColumn`
30-
* **Attributes:**
31-
* `Name`: Name of the Client Column. This name is used in the UI of the TcBOM widget as the column title
32-
* `ColumnOrder`: Order of the column in the widget, respectively. Teamcenter columns also have their own order, so this needs to be filled in conjunction with the Teamcenter columns. Teamcenter columns will take priority in case they have an identical order.
32+
#### Return Value
3333

34-
The first column should be object_string, which is already defined.
35-
All Mendix client columns must start with `columnOrder 2` and would appear before the Teamcenter columns.
36-
Mendix columns are sorted based on their `columnOrder`.
37-
Teamcenter columns appear after the client columns.
38-
The `columnOrder` for Teamcenter columns is defined by the Teamcenter administrator using the column configuration utilities in the **Teamcenter Admin Console**.
34+
* **Object**: `List of ClientColumn`
35+
* **Attributes**:
3936

40-
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/domain-model-clientcolumn.png">}}
37+
* `Name` – The name of the client column. This name is used in the UI of the Teamcenter BOM widget as the column title.
38+
* `ColumnOrder` – The order of the column within the widget, respectively. Teamcenter columns also have their own order, so this needs to be filled in conjunction. If the order is identical, Teamcenter columns take priority.
39+
The first column should be object_string, which is already defined.
40+
All Mendix client columns must start with `columnOrder 2` and will be displayed before the Teamcenter columns.
41+
Mendix columns are sorted based on their `columnOrder` parameter.
42+
Teamcenter columns are displayed after the client columns.
43+
The `columnOrder` for Teamcenter columns is defined by the Teamcenter administrator using the column configuration utilities in the Teamcenter Admin Console.
4144

45+
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/domain-model-clientcolumn.png">}}
4246

4347
### CUSTOM_RetrieveClientColumnData
4448

45-
This microflow is invoked by the TcBOM widget to retrieve the data to be rendered in the BOM tree. It gathers cell-data for specific BOM lines and any custom columns (`ClientColumns`).
49+
This microflow is invoked by the Teamcenter BOM widget to retrieve the data to be rendered in the BOM tree. It gathers cell data for specific BOM lines and any client columns.
4650

4751
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/custom-retrieveclientcolumndata.png">}}
4852

49-
#### Input parameter
50-
* **Object:** `MendixDataRoot`
51-
* **Attributes and associations:**
52-
* `WidgetId`: A unique identifier for the specific TcBOM widget instance making the request. This is useful if you have multiple TcBOM widgets in your application that need to display different data. You can use this ID to discriminate and return the appropriate data.
53-
* Associated `MendixDataColumnName` objects: This list specifies which custom columns the widget is configured to display. Each object has a `Name` attribute, representing the identifier of a custom column.
54-
* Associated `MendixDataBOMLine` objects: This list contains the specific BOM lines for which the widget requires data. Each object includes attributes such as `ItemId`, `RevisionId`, `RevisionUId`, and `BOMlineUid` to identify the BOM line and its ItemRevision.
53+
#### Input Parameter
54+
55+
* **Object**: `MendixDataRoot`
56+
* **Attributes and associations**:
57+
58+
* `WidgetId` – A unique identifier for the specific Teamcenter BOM widget instance that is making the request. This is useful if your app includes multiple Teamcenter BOM widgets that need to display different data. You can use this ID to differentiate and return the appropriate data.
59+
* Associated `MendixDataColumnName` objects – This list specifies which custom columns the widget is configured to display. Each object has a `Name` attribute, representing the identifier of a custom column.
60+
* Associated `MendixDataBOMLine` objects – This list contains the specific BOM lines for which the widget requires data. Each object includes attributes such as `ItemId`, `RevisionId`, `RevisionUId`, and `BOMlineUid` to identify the BOM line and its `ItemRevision`.
5561

5662
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/domain-model-mendixdataroot-with-associations.png">}}
5763

58-
#### Return value
59-
* **Object:** `List of ClientDataResponse`
60-
* **Attributes:**
61-
* `Value`: the value to display in a targeted cell in the BOM”
62-
* `ClientColumnName`: the name of the column of the targeted cell
63-
* `ItemRevisionUID`: the item revision UID of the corresponding BOM line of the targeted cell
64+
#### Return Value
65+
66+
* **Object**: `List of ClientDataResponse`
67+
* **Attributes**:
68+
69+
* `Value` – The value to display in a targeted cell in the BOM.
70+
* `ClientColumnName` – The name of the column of the targeted cell.
71+
* `ItemRevisionUID` – The item revision UID of the corresponding BOM line of the targeted cell.
6472

6573
{{< figure src="/attachments/partners/siemens/teamcenter-bom-component/domain-model-clientdataresponse.png">}}
6674

67-
### ClientColumn overview page
75+
### ClientColumn Overview Page
76+
6877
For convenience, the `TcBOMModule` includes overview and edit pages to define and manage `ClientColumns`.
6978

70-
## Upgrade note
79+
## Upgrade Note
80+
7181
Please be aware that any direct modifications made to this specific microflow within the `TcBOMModule` will be overwritten and lost during future upgrades of the `TcBOMModule`.
7282

73-
To ensure your custom data retrieval logic is preserved across upgrades, we highly recommend you to create two new microflows in your own module that fetches the column definition and cell-data and returns a list of `ClientColumn` objects and `ClientDataResponse` object respectively. These microflows can then be called in `CUSTOM_RetrieveClientColumnDefinitions` and `CUSTOM_RetrieveClientColumnData`.
83+
To ensure your custom data retrieval logic is preserved across upgrades, Mendix highly recommends that you to create two new microflows in your own module to fetch the column definition and cell-data, and to return a list of `ClientColumn` objects and `ClientDataResponse` objects, respectively. These microflows can then be called in `CUSTOM_RetrieveClientColumnDefinitions` and `CUSTOM_RetrieveClientColumnData`.

0 commit comments

Comments
 (0)