Unleash the power of Fusion Manage by utilizing its REST API to provide custom built frontends based on Autodesk Platform Services. All solutions manage data in PLM only. All business rules of PLM as well as access permissions still apply.
This version has been optimized for the tenant template released in 2023 using a single Items workspace. While the solutions can be used with any tenant thanks to their configuration capabilities, using this new tenant reduces configuration efforts. In addition, most of the solutions can be tested with the given demo datasets immediately.
Select Theme:
These solutions are provided by Autodesk Technical Sales without warranty and support. There should be no assumption that updates, patches, bug fixes and / or new features will be delivered to you. There will also be no support available either through Autodesk Support channels or by the Autodesk Pre-sales Technical Team. Please feel free to take the source code and ideas from this tool to develop your own production ready tool and products. Change and reuse the source code as you like.
| 11. April 2024 | Enhancement | Default theme now can be defined in settings.js. Select from light, dark and black. |
| 15. March 2024 | Framework | Most standard apps now can be extended easier thanks to dedicated css and js files in subfolders custom. Override standard javascript code and css by adding your custom contents to these empty files in /javascripts/custom as well as /stylesheets/custom. For example, if the styling of the MBOM-Editor should be adjusted, add your custom css styling to /public/stylesheets/custom/mbom.css. |
| 29. February 2024 | BOM Displays | New options have been added to collapse the BOM at startup and to prevent expansion of defined items (parameter endItem) |
| BOM Displays | If users do not have access to sub items, the parent item BOM will display a lock icon with tooltip | |
| Attachments | The attachments panels have been reworked and provide new configurable features like version information, various layouts and sizes. See the developer documentation for details. | |
| 15. February 2024 | BOM Displays | New options have been added to the BOM display (counters) and the Flat BOM display (filterEmpty) |
| 10. January 2024 | Theme Support | Use alternate color for this landing page and all the apps by passing the parameter 'theme' when accessing an application. You can choose from the following themes: dark,black and light. The latter one is default if no theme parameter is provided. |
| 13. December 2023 | File Management | To allow further additions, files in folders public and views have been moved to new folders. Some css and js files in folder public got renamed. |
| Settings Files | Alternate settings files enabling to switch between multiple tenants now must be stored in folder settings. These files no longer need the prefix 'settings.' but must keep the suffix '.js'. |
This solution only supports non-stacked column charts and pie charts. All other charts require further developoments.
The dashboard will automatically load a defined set of reports at startup before users can select their preferred reports using the Select Reports button. These startup reports can be defined in the settings.jsfile.
'reports' : {'startupReportNames' : ['Audits by Workflow State', 'CR approval status', 'DR: Rework Required', 'EX: Change Requests'],'startupReportNames' : 5}
The list of startup repports can be defined by their names using the setting startupReportNames. In addition, startupReportNames can be set to define a minimum number of reports to be loaded if none of the report names match for the current user. In this case, when set to 5, the system will display the first five reports (in alphabetical order) if none of the report names were found.
You can access the reports dashboard using the /reports endpoint:
| 9. January 2023 | Library Update | The charting library chart.js has been update to most recent version |
| 7. July 2023 | New Feature | Reports can be removed from the dashboard with a new X icon |
| 7. July 2023 | New Feature | Automatic pagination has been enabled for table reports to improve usability |
Your user must have admin privileges in order to have access to the system Log. Please note that the dashboard will retrieve the system log information in small packages. This process takes some time. There is a progress inidicator in top right corner to inform you about the data retrieval progress.
To make this solution compatible with large environments, it will take into account a maximumg of 500.000 log entries. This number can be changed in file settings.js if needed. Find the variable exports.config and adjust the value of maxLogEntries shown below.
'insights' : {'maxLogEntries' : 500000,'usersExcluded' : ['Administrator', 'Import User', 'Job User', 'Integration User']}
You can also exclude user accounts from the report by providing their display names in parameter usersExcluded.
You can access the dashboard with the /insights endpoint, just click this link:
| 18. March 2024 | Enhancement | Improved the scale of the User Activity bubble chart |
| Enhancement | Disabled (startup) animations of charts (except for the charts in the initial tab) | |
| 9. January 2023 | Library Update | The charting library chart.js has been update to most recent version |
| 7. July 2023 | Enhancement | Improved styling with tabs at bottom |
| Enhancement | User's image is shown in top right corner for consistency with other apps | |
| Bugfix | User 'Tenant Admin' now is excluded from reports | |
| New Feature | An error messags is shown if the user does not have admin privileges |
Access data of relevance easily by having Workspaces Views, your Bookmarks, Recent Items and entries of your My Outstanding Work list combined in a single view. In these views, benefit from various additional features:
You cannot modify fields of type Image and Multiple Picklists in this utility. Also, there are no options when cloning records.
You can access the Workspace Navigator using the /navigator endpoint. You can also access the Workspace Navigator also for a defined workspace directly by passing the given Workspace ID wihtin the URL. Changing the workspace then is still possible:
| 7. July 2023 | Enhancement | Read-only fields are shown as read-only now |
| Enhancement | Button 'Toggle Panel' has been replaced with dedicated close buttons to improve usability |
This solution does not require any changes to your tenant, all information is retrieved dynamically. However, in order to make the solution accessible on your mobile device, your server must be available from the Internet. For security reasons, it is highly recommended to https connections instead of http.
You can use this mobile client on any mobile platform (Android and Apple) as it does not require installation of an app. Instead, this client is provided as responsive web site that adapts to the screen size automatically.
Users benefit from PLM features on a mobile device:
The Mobile Client also can be used to navigate to a given record directly. This enables to scan a QR code to be directed to the matching record in PLM. See instructions for accesing the client below for details.
While a lot of features are supported, the client also has limitations. It does not provide access to the following tabs:
If you want to test this solutions, but cannot access the server online from your phone, your browser can be of help. Open the Mobile Client using the instructions shown below. Once opened, right click the page and select Inspect in Chrome. This will open the developer tools in which you can toggle the device for testing. Just select your preferred mobile device and reload the page. This enables to render the page like on a mobile device.

You can access the client with the /client endpoint, just click the first button. In order to navigate to a defined record, you can also pass the Workspace ID and DMS ID of a record as parameters. See the second button example which opens a demo dataset item automatically.
| 26. October 2023 | Enhancement | Search performance has been improved and styling has been updated for better ease of use |
| 7. July 2023 | - | No changes in this release |
This app works best with the Items workspace, but can also be used with the former Vault Items and BOMs and Items and BOMs workspaces. However, it is recommended to be used with a workspace where the items have viewable files (dwf) attached.
Users can create new Problem Reports for the selected items and also reveal existing processes. As your tenant might be configured differently, you can define the Workspace ID of the matching Problem Reports workspace in your tenant. Open file settings.js and adjust the value of the variable explorer.wsIdProblemReports if needed. This parameter is set to 82 per default to match the default Problem Reports workspace of standard tenants.
exports.config = {'explorer' : {'bomViewName' : 'Details','fieldIdPRImage' : 'IMAGE_1','fieldIdPRContext' : 'AFFECTED_ITEM','wsIdProblemReports' : 82,'wsIdSupplierPackages' : 147,'kpis' : [..],}}
Additional settings must be set to configure the PR creation capability properly.
| Setting | Description | Default Value |
|---|---|---|
| fieldIdPRImage | Image field ID of PR workspace that will be used to store the viewer markup screenshot | IMAGE_1 |
| fieldIdPRContext | New PRs can be connected to the currently selected item with this property. Provide a field ID of a linking pick list that allows to select items. The given input in the create dialog then will automatically be set to the current item. | AFFECTED_ITEM |
This explorer also can be used to identify items to be shared with suppliers (i.e. new or changed components). Therefore, one can provide the Workspace ID of Supplier Packages in setting wsIdSupplierPackages . If this setting is provided, users can click the given icon to create a new package for selected BOM components easily

The 'kpis' parameter of config.explorer shown above defines the KPIs being displayed in the explorer's dashboard to the left. You may change them, but please create a backup copy of the original settings.js before. Keep in mind that all KPIs of relevance must be included in the given BOM view as well (see next step): if you want to indicate the value of field Material for example, this field must be included in the new BOM view as well.
Certain KPIs are preconfigured to match the standard Items workspace. For example, the dasboard will display counters to reveal items undergoing a change, and also display bars to indicate the PDM category:
{'id' : 'change','title' : 'Pending Change','fieldId' : 'WORKING_CHANGE_ORDER','urn' : '','type' : 'non-empty','style' : 'counters','data' : [{ 'value' : 'Yes', 'count' : 0, 'color' : colors.list[0], 'vector' : vectors.red },{ 'value' : 'No' , 'count' : 0, 'color' : colors.list[4], 'vector' : vectors.green } ]},{'id' : 'pdm-category','title' : 'PDM Category','fieldId' : 'PDM_CATEGORY','urn' : '','type' : 'value','style' : 'bars','data' : []}
Each KPI is configured with the same parameters:
| id | Unique identifier for each KPI |
| title | The title being displayed for the given KPI in the dashboard |
| fieldId | ID of the given item details field to retrieve the given value - or the id of the given BOM column |
| urn | Is set during runtime, leave it blank |
| type | Defines if the KPI should be based on the given value (value) or if it should just indiate if the given field is not empty (non-empty) |
| style | Select if the KPI should be presented as counters or colored bars with value. No matter which style you choose, users will be able to filter using the given KPI anyway. |
| data | Leave this array blank for a dynamic range of values. If you want to predefine the range of interest and given colors, define the given datapoints in this array as shown for the Pending Changes. |
This application requires a BOM view that contains all fields required to determine the KPIs for the dashboard shown on the left hand side of the application. It is recommended to create a new BOM view named Details for workspace Items if it does not exist yet - with all the columns shown below. If you omit some of these columns (as they might not exist in your tenant), the given KPIs will be hidden automatically and the dashboard will still work. If you want to reuse an existing BOM view instead, you can change the view's name in file settings.js . Locate the parameter explorer.bomViewName (see previous chapter) and change it accordingly (restart the application server afterwards).
List of recommended columns to match the standard KPIs:
If the field DMS_ID does not exist yet in your workspace, add it as Single Line Text (length 20, not visible) in tab Item Details. Let this field be set upon item creation using the following script code:
item.DMS_ID = dmsID;
In addition, add a new computed field Actions to Item Details that renders a button to open the explorer for the current record. Use the formula shown below. In this formula, adjust the workspace ID to match your environment if needed (57 matches the standard Items workspace).
If an Actions field is already present in your Items workspace, add the given formula to your existing Actions field. Note that the latest standard tenant renders multiple buttons in a standard Actions field which are all aligned thanks to a wrapping table. If this table is present in your tenant's Actions field, insert the formula accordingly to the other buttons.
'<a style="border: 1px solid #bec8d2;border-radius:3px;color: #0a131c;font-weight:600;line-height:32px;padding:4px 20px;text-align:center;text-decoration:none !important;white-space:nowrap;" target="_blank" href =" explorer?wsId=57&dmsId='||DMS_ID||'">Explorer</a>'
Make sure that Items can be connected to Problem Reports as affected items. The retrieval of related PRs and also creation of new PRs will fail otherwise.
If your tenant contains the default demo datasets and once you have the BOM view configured as described above, you can open the explorer for validation purposes using the link below:
| 12. April 2024 | Enhancement | The Affected Items field of new Problem Reports will link the currently selected item automatically. |
| 28. November 2023 | Enhancement | Added RoHS to standard KPI configuration |
| 15. September 2023 | Enhancement | Added further KPIs to standard configuration |
| 3. August 2023 | Bugfix | Improved behavior of markup toolbar at lower resolutions |
| Bugfix | Width of markups and font size of markup text can now be set properly | |
| 7. July 2023 | New Feature | When switching to the flat BOM view, users can modify properties for multiple records (given the fields in the defined BOM are editable) |
| Enhancement | Enhanced KPI definition to match standard properties and BOM view of new default tenant |
Users can track progression of processes, update existing processes and create new processes with ease using this dashboard. The dashboard provides access to a single workspace only to reduce complexity.
This dashboard can be used with any workspace but requires the matching configuration in file settings.js. This application is preconfigured for the workspaces Problem Reports , Change Requests and Project Tasks of default tenants. Additional workspace configuration profiles can be added by copying one of the existing configurations shown below.
'dashboard' : [{'title' : 'Problem Reporting Dashboard','wsId' : 82,'icon' : 'account_tree', // Use https://fonts.google.com/icons to search for icons'fieldIdSubtitle' : 'DESCRIPTION','fieldIdItem' : 'AFFECTED_ITEM','imageFieldsPrefix' : 'IMAGE_','workflowHistory' : {'showNextActions' : true,'excludedTransitions' : ['Close Report'],'finalStates' : ['Completed'] },'progress' : [{ 'label' : 'New', 'color' : colors.red, 'states' : ['Create'] },{ 'label' : 'Analysis', 'color' : colors.yellow, 'states' : ['Review', 'Technical Analysis'] },{ 'label' : 'Improvement', 'color' : colors.yellow, 'states' : ['CAPA in progress', 'Change Request in progress'] },{ 'label' : 'Completed', 'color' : colors.green, 'states' : ['Completed'] }]},{'title' : 'Change Requests Management','wsId' : 83,'icon' : 'rebase_edit','progress' : [{ 'label' : 'Planning', 'color' : '#000000', 'states' : ['Create'] },{ 'label' : 'Review', 'color' : colors.red, 'states' : ['Review & Impact Analysis', 'Peform Tasks', 'Change Control Board Review'] },{ 'label' : 'In Work', 'color' : colors.yellow, 'states' : ['Change Order in progress'] },{ 'label' : 'Completed', 'color' : colors.green, 'states' : ['Completed'] }]},{'title' : 'Project Actitivity Management','wsId' : 90,'icon' : 'account_tree','progress' : [{ 'label' : 'Planning', 'color' : colors.red, 'states' : ['Planning'] },{ 'label' : 'Assigned', 'color' : colors.red, 'states' : ['Assigned'] },{ 'label' : 'In Work', 'color' : colors.yellow, 'states' : ['In Work'] },{ 'label' : 'Review', 'color' : colors.green, 'states' : ['Review'] },{ 'label' : 'Completed', 'color' : colors.green, 'states' : ['Completed'] }]}]
Each profile requires the settings listed below.
| Setting | Example Value | Description |
|---|---|---|
| title | Problem Reporting Dashboard | Sets the application title shown in the main toolbar and tab name |
| wsId | 82 | ID of PLM workspace to use for the dashboard |
| icon | account_tree | Google font icon to use for the business process type (Use https://fonts.google.com/icons to search for icons) |
| fieldIdSubtitle | DESCRIPTION | Use this setting to select the field which will be used as subtitle for the tiles of business processes |
| fieldIdItem | AFFECTED_ITEM | Provide ID of the field that is used to connect the business process to a context item. If this optional field is defined and has a value, the given item's viewable will be shown to the right. |
| imageFieldsPrefix | IMAGE_ | Provide the prefix of Image fields to be used to store markups. If this setting is omitted, the markup feature will not be enabled when opening a selected process. |
| progress | [..] | Maps the business process workflow states to a linear sequene of steps to provide a better overview of the process progression. Each entry of this array must contain a label that will be used in the applcation, a color code to use for this state as well as the list of workflow 'states' that match to this step. |
| workflowHistory | {..} | These optional parameters can be used to suppress the workflow history display. It also enables to hide certain transitions and to define the final states (which will be shown with a different icon). |
You can access the process dashboard with the /dashboard endpoint by providing the workspace profile to use. The value of parameter wsId has to match the wsId property value of the configuration profile to use. If you're connected to a default tenant of 2023 or later, you can use these links:
You can also omit the workspaceId and select from the list of configured profiles instead:
Process Dashboard Profiles| 8. March 2024 | Extension | Users now can access a landing page with all available dashboard configurations by omitting the wsId parameter |
| 6. March 2024 | Extension | The dashboard now validates the user's access permissions and only shows the create panel if the 'Add Items' permission is granted to the user in PLM |
| Extension | Added a new configuration profile in settings.js to support the 'Supplier Deliverables' workspace of the 2023 default tenants | |
| 16. November 2023 | Extension | Added configuration profile for management of Non Conformances (incl. given button in documentation) |
| 6. October 2023 | Release | Initial release of this new app |
Your tenant must have the Product Portfolio Management app installed (providing the workspaces Product Categories, Product Lines and Products). If your tenant has been created after April 2021, changes are high that it meets this requirement.
Users can navigate the various level of the portfolio from Product Categories down to Products in an easy manner. Once a product is selected, users can retrieve a couple of information:
If your tenant has been created in 2023 or later, the Products workspace should meet the following requirements already, so the following changes might not be required!
Add the Classification section to the Products workspace. This enables the management of technical specification based on the product type. The given information will be displayed in the catalog as well.

Set the field Engineering BOM to be a pick list, enabling references to the workspace Items (if existent, otherwise use Vault Items and BOMs). When using the app, only if an item is selected in this field, the product catalog will be able to render the 3D design of the product (as this will render the related item's dwf). Also, this given item will be used to retrieve the product Bill of Materials.

A couple of settings can be adjusted in file settings.js to match your environment if needed:
export.config = {'portfolio' : {'bomViewName' : 'Basic','hierarchy' : ['Product Categories', 'Product Lines', 'Products']}}
You can access the extension with the /portfolio endpoint, just click this link:
| 26. September 2023 | Enhancement | Once a product got selected, a new button in the toolbar enables to open the related Services Portal for this product |
| 7. July 2023 | Enhancement | Better demo datasets in the default tenant to match this app (i.e. Marketing Names and Marketing Texts on Product Lines and Product Categories) |
Your tenant must have the latest NPI solution installed (providing the workspaces Projects, Project Tasks, Teams and so on).
The dashboard will provide insights in all projects that are accessible to the current user and display the following reports:
Provide the ID of your Projects workspace in file settings.js. Adjust the value of the following variable which is set to 86 to match the default Projects workspace.
export.config = {'projects' : {'wsIdProjects' : '86',}}
You can access the dashboard with the /projects endpoint, just click this link:
| 21. November 2023 | Enhancement | Add configuration setting config.projects.query to settings file, enabling to filter of projects |
| 7. July 2023 | - | No changes in this release |
You must have the latest Design Review app installed from the App Store. If your tenant is based on a template past April 2021, this given app is included already. To check if your tenant contains this latest app, please verify that the workspace Design Review Tasks is available in your tenant.
Use the Workspace Manager to perform the following changes to your workspace Design Reviews:

Use the Workspace Manager to perform the following changes to your workspace Design Review Tasks:


Grant permission to Add Items in workspace Design Review Tasks for all the users which will use the Design Review Portal.
Let new Design Review Tasks be connected to the related Design Review by adding the following script to the initial workflow transition (from the Start Node) in workspaces Design Review Tasks:
if(item.DESIGN_REVIEW !== null) { item.DESIGN_REVIEW.project.addTask(item); }
Adjust the script Design Reviews WF Actions by extending the if statement with the following condition as shown in the screenshot below:
item.project.children.length === 0

If the standard workspace Design Reviews or Design Review Tasks got changed, you may have to adjust some configuration settings within file settings.js. Locate the following section in this file to adjust the given properties if needed:
export.config = {'reviews' : {'fieldIdItem' : 'ITEM','fieldIdImage' : 'IMAGE','transitionId' : 'CLOSE_REVIEW','workspaces' : {'reviews' : {'id' : 76,'sections' : [ { 'name' : 'Review Findings' } ],'states' : [ 'Planning', 'Preparation', 'In Progress' ]},'tasks' : {'id' : '','sections' : [ { 'name' : 'Definition' }, { 'name' : 'Schedule' } ],'states' : [ 'Assigned', 'On Hold', 'In Work', 'Review', 'Complete' ]}},}}
Parameter transitionId defines the workflow action ID that can be used to close / finish a given design review. If the user has permission to perform this defined transition, the given button Finish will be displayed when opening a design review.
The workspaces parameter enables to align this solution with your workspace configuation:
You can access the design review portal with the /reviews endpoint, just click this link:
| 30. August 2023 | CONFIG CHANGE | Formerly, the field IMAGE_1 was used to store the markups of Design Review Tasks. This has been changed and field MARKUP will be used instead now. Please review the installation instructions once again and compare it with your setup. |
| Documentation | Adjusted installation instructions to ease deployment | |
| 3. August 2023 | Bugfix | Improved behavior of markup toolbar at lower resolutions |
| Bugfix | Width of markups and font size of markup text can now be set properly | |
| 7. July 2023 | Enhancement | Better alignment of installation instructions with new default tenant |
Provide an online interface for service technicians to have latest product information at hand at anytime, anywhere.
Note that there is no capability to track the progress of Spare Part Requests in this application. The given button Pending Requests has no function. Tracking of requests in only possible in the standard user interface of PLM for now. This might change in future releases of this application.
The application indicates the stock availability of each spare part using colors. As this solution does not have a real time connection to an ERP, the given information is generated randomly.
Create a new BOM view Service for workspace Items and add at least the columns shown below. The sequence of columns does not matter. You may add further fields if needed, but this may impact performance / load times of the portal.
| Source | Source Field | Display Name |
|---|---|---|
| System | Descriptor | Descriptor |
| Item Details / Basic | Image | Image |
| Item Details / Basic | Number | Number |
| Item Details / Basic | Title | Title |
| Item Details / Technical Details | Dimensions (LxWxH) | Dimensions (LxWxH) |
| Item Details / Technical Details | Material | Material |
| Item Details / Technical Details | Spare / Wear Part | Spare / Wear Part |
| Item Details / Technical Details | Weight [grams] | Weight [grams] |
| BOM Fields | Quantity | Quantity |
Open the Workspace Relationships control for workspace Problem Reports in the Workspace Manager. In here, enable connections to workspace Items in Managed Items Tab in order to support creation of new PRs.

Users can access the service portal by passing the dmsId and wsId of a given record, allowing to encode this information in a qr-code for example (see the end of this page for the given URL).
In addition, you may want to provide a button within the details page of an item to open the given portal from there. For this, add a new field Actions which contains the computed formula shown below. In case your tenant has the given field already, please add this button to the existing Actions field.
Note that this computed field requires the field DMS_ID which must contain the dmsId of the current record. As the other solutions of this package require this field as well, it is assumed that the given field exists already. If not, please add the field as single line text and let it be set upon item creation.
Keep in mind to update the workspace id contained in the formula below if needed. It refers to workspace ID 57 which matches the standard Items workspace. If you are using another id, please adjust the value of parameter wsId.
CASE WHEN (DMS_ID is null) THEN ''ELSE '<a style="color: #0a131c;border: 1px solid #bec8d2;border-radius:3px;text-align:center;text-decoration:none !important;line-height:26px;white-space:nowrap;padding:4px 20px;width:140px;font-weight:600;" target="_blank" href ="LOCATIONservice?wsId=57&dmsId='||DMS_ID||'">Service Portal</a>'END
The following steps are optional. Your Service Portal should be ready by now. However, if you want to initiate requests for selected spare parts from within the portal, then continue with the steps of this chapter.
Users can trigger requests for spare parts in the given portal. This is made possible with a new workspace named Spare Parts Requests which you have to add before using all features this solution. Use the settings shown in the following screenshot when doing so.

Add the following fields to the new workspace. Keep the layout of the initial two sections as shown in the following screenshot. You may add further fields (non-mandatory) and sections when needed.

| Label | Field ID | Type | Details | Editable |
|---|---|---|---|---|
| ID | ID | Auto Number | Formula: AUTONUMBER('', ID__AUTO_INC, 6) | false |
| Linked Item | LINKED_ITEM | Pick List ([WS] Items, Single Selection) | length: 200 | Creation Only |
| Requested By | REQUESTED_BY | Single Line Text | length: 200 | false |
| Request Date | REQUEST_DATE | Date | - | false |
| Comments | COMMENTS | Paragraph | Length: 100000 | true |
| Total Cost | TOTAL_COST | Money | Length: 10, Field Precision: 0 | true |
| Shipment Date | SHIPMENT_DATE | Date | - | true |
| Tracking # | TRACKING | Single Line Text | Length : 200 | true |
| Notes | NOTES | Paragraph | Length: 100000 | true |
Set the descriptor for this workspace as you like (i.e. ID - Requested By)
Add the following fields to the grid tab

| Label | Field ID | Type | Details | Editable |
|---|---|---|---|---|
| Item | ITEM | Pick List | Pick List [WS] Items (Single Selection) | Creation Only |
| Quantity | QUANTITY | Integer | length: 10 | Creation Only |
| Unit Cost | UNIT_COST | Money | Length: 10, Field Precision: 2 | true |
| Total Cost | TOTAL_COST | Money | Formula: QUANTITY * UNIT_COST; Add aggregation type 'Sum' | false |
| Availability at request | AVAILABILITY_AT_REQUEST | Single Line Text | Length: 50 | true |
| Remarks | REMARKS | Single Line Text | Length: 200 | true |
Adjust the tab names for ease of use:
Create a new Action script Spare Parts Requests WF Actions with the code shown below. Make sure to select library script getUserName in the script's imports.
item.REQUESTED_BY = getUserName();
item.REQUEST_DATE = new Date();
Provide a workflow for this new workspace. While the workflow logic does not matter for this solution, make sure to attach the script Spare Parts Requests WF Actions as action script to the initial transition.

Add a role for this new workspace and assign this given role to your users to enable access. Grant full access (add, delete, edit and view) to the tabs Attachments, Grid, and Workflow.

You may provide a landing page as part of the Service Portal, enabling users to navigate to the product of interest. If this is configured properly, users do no longer require direct access to a given BOM using the workspace ID and dms ID. Instead, they can click on a given product and with this open the matching service information of the related BOM.

In addition, they can track their formerly created spare parts requests.

With the default configuration, this capability involves the Products workspace. All products matching a defined search critieria will be displayed on the Landing Page. In addition, these products must link to the matching EBOM which will be used to open the given serivce information for the selected product.
Various configuration settings drive this landing page: productsFilter, productsSortBy, productsGroupBy, productsFieldImage, ... wsIdProducts. See their description in the next chapter.
The default configuration of the landing page uses the following settings:
You can disable access to this landing page with the home button by setting 'features.homeButton = false'. See chapter Feature Availability for details.
Once the previous steps have been completed, you should review the solution's settings in file settings.js before using the application:
export.config = {'service' : {'bomViewName' : 'Service','enableCustomRequests' : true,'fieldId' : 'SPARE_WEAR_PART','fieldValues' : ['spare part', 'yes', 'x', 'y', 'wear part'],'fieldIdImage' : 'IMAGE','spartPartDetails' : ['MATERIAL', 'ITEM_WEIGHT', 'DIMENSIONS'],'productsFilter' : '','productsSortBy' : 'TITLE','productsGroupBy' : 'PRODUCT_LINE','productsFieldIdImage' : 'IMAGE','productsFieldIdTitle' : 'TITLE','productsFieldIdSubtitle' : 'DESCRIPTION','productsFieldIdBOM' : 'ENGINEERING_BOM','productsListHeader' : 'Serviceable Products','wsIdProducts' : 95,'wsIdProblemReports' : 82,'wsIdSparePartsRequests' : 241}}
| Setting | Default Value | Description |
|---|---|---|
| bomViewName | Service | Provide name of the BOM view that has been created in the previous steps (a change should not be required) |
| enableCustomRequests | true | When set to true, users can add non-spare-parts to service requests as well |
| endItemFilter | { 'fieldId' : 'SBOM_END_ITEM', 'value' : true } | BOM items having the given value in the defined field will be considered as end nodes. Users will not be able to see the items below. This filter only applies if the given fieldId is present in your Items workspace. If the field does not exist, this setting will be ignored automatically. Of course you can change this setting to make use of another field. In any case, this field must be included in the BOM view being used by the Service Portal (default is 'Service'). |
| fieldId | SPARE_WEAR_PART | ID of field being used to identify spare parts (the next setting defines the possible values of this field) |
| fieldValues | ['spare part', 'yes', 'x', 'y', 'wear part'] | List of values (for the previous field) which are used to identify spare parts |
| fieldIdSparePartImage | IMAGE | ID of field containing the item image |
| sparePartDetails | ['MATERIAL', 'ITEM_WEIGHT', 'DIMENSIONS'] | Each spare part tile can show 3 additional fields. If other fields than the default fields are relevent, change this list. However, make sure that there are exactly 3 entries and these fields also must be contained in the given BOM view. |
| fieldIdPRImage | IMAGE_1 | Provide image field ID to be use for storing the markup image of new Problem Reports |
| productsFilter | (empty) | Provide a query string to filter the list of products being shown in the landing page. Only products matching this search criteria will be display. For example, you could add a checkbox field 'SERVICES_PORTAL' and provide the following filter to only show products where this given checkbox is enabled: ITEM_DETAILS:SERVICES_PORTAL=TRUE |
| productsSortBy | TITLE | Set the field being used to sort the products in the landing page |
| productsGroupBy | PRODUCT_LINE | This optional setting enables to group the prdoducts in the landing page based on the given field's values |
| productsFieldIdImage | IMAGE | Field being used to render the image for the product tiles in the landing page |
| productsFieldIdTitle | TITLE | Field being used as primary name for the product tiles in the landing page |
| productsFieldIdSubtitle | DESCRIPTION | Field being used as subtitle for the product tiles in the landing page |
| productsFieldIdBOM | ENGINEERING_BOM | Field of Products workspace that links the given EBOM that will be used to retrive product information once a user clicks on a product tile |
| productsListHeader | Serviceable Products | Defines the header being shown on top of the products list in the landing page |
| wsIdProducts | 95 | Provide the workspace ID of Products to let users browse for the product of interest when no dmsId is provided in the URL (95 matches the default tenant configuration) |
| wsIdProblemReports | 82 | Provide the workspace ID of Problem Reports to enable creation of new processes from within the application (82 matches the default tenant configuration) |
| wsIdSparePartsRequests | ? | Provide ID of the new workspace Spare Parts Requests to enable creation of new requests from within the application |
| requestSectionsExcluded | ['Workflow Activity'] | Defines sections to be hidden from Spare Part Request details display. |
| requestColumnsExcluded | ['UNIT_COST', 'TOTAL_COST', 'MAKE_OR_BUY', 'MANUFACTURER', 'MANUFACTURER_PN', 'LEAD_TIME', 'LONG_LEAD_TIME'] | Defines columns to be hidden from Part List when users open a given request within the portal to track its progression. |
Selected application features as well as viewer toolbar functionality can be restricted using the features property in settings.js. The given settings are disabled in the standard settings file to enable all features. Uncomment the property you would like to adjust and change its value as this will override the application defaults.

In general, if a property equals true, the given feature will be available for the user. You can use basic boolean values, but also make use of groups to grant access for defined user groups only. Examples:
The following settings control features within the application:
| Setting | Description | Default Value |
|---|---|---|
| features.homeButton | Enables Home button in global toolbar to close a given product's spare parts view and to return to the landing page | true |
| features.toggleItemAttachments | Enables button 'Toggle Files' in global toolbar to toggle the selected item's attachments on/off | true |
| features.toggleItemDetails | Enables button 'Toggle Details' in global toolbar to toggle the selected item's details on/off | true |
| features.manageProblemReports | Enables tab 'Problem Reports' next to the tab 'Spare Parts', enabling users to reveal related PRs and also to create new ones | true |
| features.showStock | Enables display of stock information in spare parts list | true |
| features.requestWorkflowActions | Enables display of workflow actions menu when opening a spare part request from the landing page | true |
In addition, the following settings in features.viewer control the availability of icons in the viewer toolbar.
| Setting | Toolbar Icon | Description | Default Value |
|---|---|---|---|
| features.viewer.cube | Enables the cube and home button in top right corner of the viewer. Per default, these controls get replaced with a dediated view toolbar instead. | false | |
| features.viewer.orbit | Enables the orbit controls | false | |
| features.viewer.firstPerson | Enables first person view | false | |
| features.viewer.camera | Enables camera interactions | false | |
| features.viewer.measure | Enables the measurements toolbar | true | |
| features.viewer.section | Enables sectioning | true | |
| features.viewer.explodedView | Enables exploded views | true | |
| features.viewer.modelBrowser | Enables browsing the model hierarchy within the viewer | false | |
| features.viewer.properties | Enables access to the selected component's properties stored in the viewable file | false | |
| features.viewer.settings | Enables viewer settings | false | |
| features.viewer.fullscreen | Enables fullscreen toggle | true | |
| features.viewer.markup | Enables markup toolbar | false | |
| features.viewer.reset | Enables to deselect all, invoking viewerClickReset() | true | |
| features.viewer.ghosting | Enables toggling ghosting mode on/off | true | |
| features.viewer.highlight | Enables toggling highlight of selected models on/off | true | |
| features.viewer.fitToView | Enables reframing all visible items | true | |
| features.viewer.single | Enables fitting of first instance to viewer | true | |
| features.viewer.views | Enables toolbar to quickly access main views | true |
You can access the Services Portal portal with the /service endpoint:
To open the portal for a given item directly, provide the wsId dmsId of the Items record as URL parameters. The following links will work for default demo tenants containing the default demo data. Please note that none of the demo items has been set as spare part yet:
| 11. April 2024 | Enhancement | New setting requestSectionsExcluded enables hiding defined sections from the Spare Part Request Details. The details display is still driven by the user permissions and sections can be hidden based on their access permissions defined in the Workspace Manager. |
| Enhancement | New setting requestColumnsExcluded enables hiding defined columns from the Parts List of a Spare Part Request shown in the portal. | |
| Quallity | Change some CSS setting to improve display of given requests witin the portal | |
| 8. April 2024 | Enhancement | Behavior for item selection in viewer has been changed. When users click in item, remaining geometry will no longer be ghosted to allow for follow-up seleciton. The selected item still gets highlighted in BOM and matching spare part list as well as Item Details and Item Attachments get refreshed to match the selection. |
| Enhancement | Added new controls in viewer to reframe visible items and to fit only first visible instance in viewer. Both can be disabled by new options in settings.js. | |
| 20. March 2024 | Enhancement | Selected spare parts will be moved to a new cart panel now and not only be highlighted in blue. From this cart, users can filter the viewer for cart items and also trigger the spare part request creation. |
| Enhancement | Option endItemFilter has been added to settings file to prevent expansion of defined BOM nodes. | |
| Enhancement | The request creation dialog has been enhanced to capture more information, including contact details These contact details will be filled auotmatically based on the user's Autodesk Account data. | |
| Enhancement | New feature toggle has been added to prevent display of stock information for spare parts : features.showStock | |
| Enhancement | New feature toggle has been added to prevent workflow actions for spare parts requests : features.requestWorkflowActions | |
| Enhancement | A new function has been added to set the stock information for all spare parts. Override this function setSparePartStockStatus in file /javascripts/custom/service.js to implement your custom logic. | |
| 19. March 2024 | Enhancement | Feature control: Restrict access to application features for all users or specific user groups using the settings file |
| Enhancement | Routing has been enabled : Browser URL gets updated when users switch between landing page and item context to enable refresh of the current screen | |
| 14. March 2024 | Enhancement | When users open an existing spare parts request in the landing page, this request will no longer be shown in PLM, but the portal instead. Users can still perform workflow actions and upload additional files in this view. |
| Bugfix | When users closed the dialog for creation of a new spare parts request and reopened the dialog afterwards, the quantities were reset for each line. Now, these quantities are preserved. | |
| Bugfix | Users can no longer submit an empty request | |
| Enhancement | A new icon is used for the button to submit the spare parts request | |
| 29. February 2024 | Enhancement | The BOM display will be collapsed at startup automatically |
| Enhancement | Spare parts in the BOM tree will no longer be highlighted by bold / orange font, but with a dedicated icon and matching tooltip | |
| Enhancement | If BOM items are not accessible due to access permission restrictions, this will be indicated by red lock icons in the BOM tree | |
| 9. February 2024 | Enhancement | A new toolbar on top of the Spare Parts list enables searches, filtering and deselection |
| Enhancement | Viewer behavior upon BOM item selection and Spare Part Zoom has been adjusted for better usability | |
| Enhancement | A new button in the viewer toolbar enables toggling ghosting on and off | |
| Enhancement | Additional options now can be configured in settings.js (i.e. enabling a filter for the products in the landing) | |
| Quality | Global toolbar icon sequence has been adjusted | |
| 26. January 2024 | Enhancement | The following buttons got removed from the viewer toolbar: Model Structure, Properties and Settings |
| Enhancement | The BOM tree now highlights spare parts with orange text | |
| 10. January 2024 | New Feature | The portal can be opened without context item to let users browse for the product of interest |
| New Feature | Users now can track previously created spare part requests from within the portal | |
| New Feature | Users can submit requests for items which are not flagged as spart part. This feature can be disabled with new option 'enableCustomRequests' in settings file. | |
| 26. September 2023 | Enhancement | Display root item name in web page title |
| 3. August 2023 | Bugfix | Improved behavior of markup toolbar at lower resolutions |
| Bugfix | Width of markups and font size of markup text can now be set properly | |
| 7. July 2023 | Enhancement | When spare parts get zoomed in, they will be highlighted in red within the viewer |
| New Feature | Users can click items in the viewer to get it selected in the spare parts list and to retrieve item details as well as attachments | |
| Enhancement | The Options button in main toolbar has been replaced by dedicated toggles | |
| Enhancement | All spare parts selected in the panel to the right will now be highlighted in blue within the viewer to continuously indicate the selection | |
| Enhancement | The (fake) stock information now is also shown with a colored border in the spare parts list | |
| Enhancement | When users click on BOM entries, geometry not being in context will be hidden (before, it was still shown transparently) | |
| 30. June 2023 | New Feature | The spare parts list now indicates the total quantity of the given component (qty is shown in white with black background) |
| New Feature | The entries in the spare parts list will automatically adjust its style in case of longer lists (tile height get reduced) |
With this application, users can by far better assess the impact of changes by reviewing all details of the given Change Order's list of Affected Items.
To do so, multiple information is retrieved in parallel and devided in various tables. So for each affected item, users can easily review the following information:
Peform the following changes to workspace Change Orders to enable the impact analysis before releasing a change. In addition, you can perform the same changes in workspace Change Requests to benefit of the exact same features while accessing impact of a proposed change.
In order to make this dashboard work, you have to add a (hidden) field DMS_ID to the item details tab. This field must store the dmsID of the current process.

Use the following script code at Change Orders / Change Requests creation to store the given dmsID (attach this script to the initial workflow transition or the given create event):
item.DMS_ID = dmsID;
Add a button to the Item Details tab, enabling to open the analysis dashboard in context ...

... implement this button by adding a computed field Actions with the formula shown below. Replace the workspace ID to match yours (..wsId=84..). In a standard tenant, 84 matches the Change Orders and 83 matches the Change Requests workspace.
'<a style="border: 1px solid #bec8d2;border-radius:3px;color: #0a131c;font-weight:600;line-height:32px;padding:4px 20px;text-align:center;text-decoration:none !important;white-space:nowrap;width:160px;" target="_blank" href ="LOCATIONimpactanalysis?wsId=84&dmsId='||DMS_ID||'">Impact Analysis</a>'
The impact analysis dashboard enables to connect records of interest to the current change process. For example, the dashboard will retrieve related Requirements of each affected item - which then can be connected to the change process inside the dashboard for reference. This helps to create a comprehensive list of all data being impacted by a change. This mechanism requires to allow the given workspace relationships within the Workspace Manager. For example, you may want to enable Relationships for the change proceses to the workspaces Requirements and Supplier Packages. The dashboard will take this workspace configuration into account and only offer to connect workspaces that are valid.

The dashboard also can be opened by using the /impactanalysis endpoint, followed by wsId and dmsId. If your tenant contains the standard demo dataset, you can use the following link to open the dashboard for a given Change Order:
| 27. September 2023 | Enhancement | Indicate pending supplies, production orders and available stock for Affected Items (requires given columns) |
| 14. September 2023 | Enhancement | If CR or CO is locked, changes to affected items are no longer possible |
| 30. August 2023 | New Feature | If the Affected Items tab contains columns to manage current stock, pending production orders and pending deliverables, this information will be shown and highlighted. |
| 15. August 2023 | Enhancement | When opened from a Change Request, the list of Affected Items will display the Proposed Change property value |
| 7. July 2023 | Enhancement | Styling has been adjusted to improve usability |
This editor helps in transitioning an Engineering BOM to a Manufacturing BOM. This may involve one or two item workspaces, depending on your tenant configuration and preference. If your tenant has been created before Mid 2023, your tenant will most likelly have two workspaces to manage items: Items and BOMs as well as Vault Items and BOMs. If your tenant is more recent, it will only contain the new workspace named Items (unless you installed the Vault Items and BOMs from the template library).
If your tenant only has the single Items workspace, this workspace will be used to manage both the EBOMs and the MBOMs. In this case, all installation steps referring to both EBOM and MBOM must be applied to this workspace. You can skip all steps referring to the 2 Workspaces setup.
On the other hand, if you have two workspaces, you can use the one for the EBOM and the other one for the MBOM. In this case, you will most likely use Vault Items and BOMs as the EBOM workspace and Items and BOMs as the MBOM workspace. This setup is referred to as the 2 Workspaces setup in the instructions below. Of course, you can also choose one of these workpaces and use it for both EBOM and MBOM at the same time.
Note that the viewer inside the MBOM Editor will only work if the base EBOM item has a dwf file attached.
Add a new section Manufacturing BOM with the following fields to this workspace:
| Field Name | Field ID | Data Type | Options | Visibility | Editable |
|---|---|---|---|---|---|
| DMS_ID | DMS_ID | Single Line Text | Length : 20 | Never | False |
| End Item | END_ITEM | Check Box | Always | True | |
| Matches MBOM | MATCHES_MBOM | Check Box | Always | True | |
| Ignore in MBOM | IGNORE_IN_MBOM | Check Box | Always | True | |
| Process Code | PROCESS_CODE | Single Line Text | Length : 10 | Always | True |
| Last MBOM User | LAST_MBOM_USER | Single Line Text | Length : 100 | Always | True |
| Last MBOM Sync | LAST_MBOM_SYNC | Date | Always | True | |
| MBOM | MBOM | Pick List | To MBOM workspace ([WS] Items), Single Selection | Always | True |
Finally, add a computed field 'MBOM_EDITOR' with the following formula. Make sure to provide the right workspace ID (...?wsId=57...). It has to match the EBOM workspace ID (57 matches the standard Items workspace).
CASE WHEN (DMS_ID is null) THEN 'Item ID is not set'WHEN (END_ITEM = true) THEN 'Not available for end items'WHEN (MATCHES_MBOM = true) THEN 'EBOM matches MBOM'ELSE '<a style="color: #0a131c;border: 1px solid #bec8d2;border-radius:3px;text-align:center;text-decoration:none !important;line-height:32px;white-space:nowrap;padding:4px 20px;width:140px;font-weight:600;" target="_blank" href ="LOCATIONmbom?wsId=57&dmsId='||DMS_ID||'">Edit MBOM</a>'END
While the layout does not matter, it is recommended to combine the given fields in a Matrix within this section as shown below.

Add a new BOM view MBOM Transition to the EBOM workspace. Add all the fields that were created in the step before to this view - plus a few others. You may also add any further column as you like. The sequence of columns does not matter.
The following steps must be performed in the workspace to manage the MBOMs - which could be the same one as for the previous steps or a second one in case of a 2 workspaces setup.
Make sure that the NUMBER field of your MBOM workspace is editable (always or at item creation).
If you use the same workspace for both the EBOM and MBOM, simply add the following fields to this EBOM & MBOM workspace. You may add these fields to the matrix created before:
If instead you will use two different workspaces (i.e. manage the EBOM in Vault Items and BOMs and the MBOM in Items and BOMs workspace), you also have to add the following fields to the MBOM workspace in addition:
CASE WHEN (DMS_ID is null) THEN 'Item ID is not set'WHEN (END_ITEM = true) THEN 'Not available for end items'ELSE '<a style="color: #0a131c;border: 1px solid #bec8d2;border-radius:3px;text-align:center;text-decoration:none !important;line-height:32px;white-space:nowrap;padding:4px 20px;width:140px;font-weight:600;" target="_blank" href ="LOCATIONmbom?wsId=57&dmsId='||DMS_ID||'">Edit MBOM</a>'END
These fields once again can be managed in a dedicated section and matrix when using two distinct workspaces:

Add two new fields to the Bill of Materials tab in your MBOM workspace. These fields will be required for the next step and added to the given BOM view.

If you use the same workspace for both the EBOM and MBOM, add the following fields to the existing BOM view MBOM Transition:
If instead you will use two different workspaces, you have to add a new BOM view MBOM Transition with at least the following columnns:
Make sure that the MBOM workspace allows for BOM connections to the EBOM workspace:

For both the EBOM and MBOM workspace, the system has to store the dmsID for new records in field DMS_ID. Add the following script code to the creation event of both workspaces. If your tenant is based on the template released in April 2023, this field exists in your tenant and will be set by script already.
item.DMS_ID = dmsID;
When users add operations and MBOM items, these new items may receive default values for defined fields, like a specific type. Such defaults can be defined in the file settings.js - see next chapter for details. The default settings file provides a placeholder example:

You can provide an array of all the fields to be populated with default values. As shown in the example above, this requires the field's ID (TYPE) and value. In addition, the setting fieldsToCopy enables definition of a list of fields which will be copied from the given related EBOM item to the new MBOM item.
Review the following contents in file settings.js. The default configuration matches the standard tenant template and makes use of the Items workspace only. If you change this file, a restart of your server is required.
export.config = {'mbom' : {'wsIdEBOM' : '57','wsIdMBOM' : '57','bomViewNameEBOM' : 'MBOM Transition''bomViewNameMBOM' : 'MBOM Transition''fieldIdEBOM' : 'EBOM'...}}
This area within settings.js contains a couple of parameters to adjust the field IDs being used whenever needed. You may want to review this list, but if you followed the setup instructions, this mapping should be fine already.
| fieldIdEBOM | Field of MBOM workspace to refer to given EBOM item |
| fieldIdMBOM | Field of EBOM workspace to refer to given MBOM item |
| fieldIdNumber | Number field of both EBOM and MBOM Workspace |
| fieldIdTitle | Title field of MBOM Workspace that will be used when creating new processes |
| fieldIdCategory | Category field of EBOM Workspace (being used to highlight certain categories) |
| fieldIdProcessCode | Process Code field of both EBOM and MBOM Workspace |
| fieldIdEndItem | End Item field of EBOM Workspace |
| fieldIdMatchesMBOM | Matches MBOM field of EBOM Workspace |
| fieldIdIgnoreInMBOM | Ignore in MBOM field of EBOM Workspace |
| fieldIdIsProcess | Is Process field of MBOM Workspace |
| fieldIdLastSync | Last MBOM Sync field of EBOM and MBOM Workspace |
| fieldIdLastUser | Last MBOM User field of EBOM Workspace |
| fieldIdEBOMItem | Field 'Is EBOM Item' in MBOM Workspace BOM |
| fieldIdEBOMRootItem | Field 'EBOM Root Item' in MBOM Workspace BOM |
Following settings are much more important. They impact the mechanism of the MBOM Editor. Please review these settings carefully.
| Setting | Default Value | Description |
|---|---|---|
| wsIdEBOM | 57 | Workspace ID of your EBOM Workspace |
| wsIDMBOM | 57 | Workspaces ID of your MBOM Workspace (can be the same as EBOM or a different one) |
| bomViewNameEBOM | MBOM Transition | BOM View being used to expand the EBOM |
| bomViewNameMBOM | MBOM Transition | BOM View being used to expand the MBOM |
| fieldsToCopy | ['TITLE', 'DESCRIPTION'] | Defines a list of fields to be copied from EBOM to MBOM when the editor creates the MBOM root node. This is happening when the editor is launched for the first time for a given EBOM item. These fields must be available in both the EBOM and MBOM workspace with the same id. |
| revisionBias | working | Defines the BOM expansion bias, ensuring to use working versions of all items automatically. Change this to release if you want to work with released data instead. Note that if set to working, the MBOM Editor will automatically navigate to the latest working version of an EBOM item, even if it gets opened from a released item. |
| pinMBOMItems | false | Determines if relationship in MBOM should be pinned to the given revision |
| suffixItemNumber | -M | When the editor is opened for an EBOM item that does not have matching MBOM item yet, this given MBOM root item will be created automatically. If this parameter is set, this MBOM root item will be created with the same part number as the matching EBOM item plus the given suffix. With this standard value, EBOM item 00812 will be connected to MBOM item 00812-M for example. |
| newDefaults | ['ITEM_TYPE' , { 'link' : '/api/v3/lookups/CUSTOM_LOOKUP_ITEM_TYPES/options/34' }] | Provide default values for new items being created by the MBOM Editor (i.e. the Processes). Provide an array of pairs containing fieldId and given value. The default value sets the item to 'Process' (works with latest tenant template only). |
| searches | [{ 'title' : 'Purchased Parts', 'query' : 'ITEM_DETAILS:CATEGORY%3DPurchased' }, { 'title' : 'Packaging Parts', 'query' : 'ITEM_DETAILS:CATEGORY%3DPackaging' }] | The Add Items tab may provide preconfigured queries for quick access to relevant MBOM items, right underneath the generic Search view. This list of predefined views can be adjusted here. Provide a list of views, defined by a title to be displayed in the editor and the given query string to execute. If you are not sure about the query string, please have a look at the standard search dialog and review the Network tab in your browser to grab the matching search filters. |
The MBOM Editor will load the selected EBOM item's viewable in the viewer and allow for interactions between the BOMs and the viewer. However, this requires a mappging of your item numbers and the property within the dwf which holds the item number as well.
For a proper match, see the 'viewer' parameters at the end of settings.js. Provide the field ID of your Number field in EBOM workspace as 'fieldIdPartNumber'. Additionally, provide a list of possible property names in 'partNumberProperties' that might be present in your dwf files and contain the matching number too - the first occurence will be taken into account.
export.config = {'viewer' : {'fieldIdPartNumber' : 'NUMBER''partNumberProperties' : ['Part Number', 'Name', 'label', 'Artikelnummer', 'Bauteilnummer'],'backgroundColor' : 255,'groundReflection' : false,'groundShadow' : true...}}
With the standard configuration steps above, there will be only one MBOM per EBOM. However, the setup can be changed to support multiple MBOMs, for example to have site specific MBOMs. To achieve this setup, the fields that were created formerly must be cloned for each site.
By following the steps below, the existing fields will be kept in order to have a 'standard' base MBOM. In addition, further fields will be added to capture the MBOM for 'Site 1' and 'Site 2'.
Each site requires a unique id that you can define yourself. This id must be used to name the new fields and it will be passed to the MBOM editor to define the site context. In this setup, 'G' will be used for the generic MBOM while '1' and '2' are used for the site specific MBOMs. Keep in mind that these suffixes will get appended to all site specific MBOM item numbers.

CASE WHEN (DMS_ID is null) THEN 'Item ID is not set'WHEN (END_ITEM = true) THEN 'Not available for end items'WHEN (MATCHES_MBOM = true) THEN 'EBOM matches MBOM'ELSE '<a style="color: #0a131c;border: 1px solid #bec8d2;border-radius:3px;text-align:center;text-decoration:none !important;line-height:32px;white-space:nowrap;padding:4px 20px;width:140px;font-weight:600;" target="_blank" href ="LOCATIONmbom?wsId=57&dmsId='||DMS_ID||'&options=site:G">Edit MBOM</a>'END
Repeat these steps for site 1 and 2 accordingly.

Note that you can choose other field labels of course. This documentation only reuses the field ID to better describe the setup process.

Note that your bom view might be named differently. Check for the name in use by validating setting mbom.bomViewNameEBOM in settings.js
Users are now able to open the editor for a specific site. Each site will receive a specific MBOM with a dedicated part number (the site suffix gets appended at the end):
| 13. Dezember 2023 | Bugfix | When clicking button Add All, only visible items were taken into account. Subcomponents of assemblies that were collapsed were not added to the MBOM. |
| 21. September 2023 | New Feature | When items in MBOM get selected, the adjacent items get highlighted in the viewer as well (red and green) |
| 3. August 2023 | Bugfix | Switch to latest version automatically (i.e. if editor is opened from Rev A, the editor will locate matching working version first and then open data for this working version item) |
| 21. July 2023 | New Feature | Insert EBOM as is to MBOM (supported by checkbox Matches MBOM) |
| New Feature | Insert EBOM as MBOM node (this creates the matching MBOM for the given EBOM in the editor and inserts the node) | |
| 7. July 2023 | New Feature | Support of multiple Manufacturing BOMs per item |
| Enhancements | Better alignment with new default client: ready-to-use settings and replacement of 'operations' with 'processes' reflected by a dedicated item type | |
| Bugfix | Items that are added from outside the EBOM will no longer be taken into account in item matching / coloring | |
| Bugfix | When items get added to a location twice, its quantity will be increased accordingly; there will be no second node in the BOM any |
A new workspace is required to manage items and BOMs that are specific for a given variant. These item variants will refer to the given base item to allow for data reuse by using derived fields, but will also have additional fields that define a variant (i.e. color, material, dimeions, serial #, ...). Customers can choose any properties they like for these variant specific properties, the application will adjust accordingly.
Use the Workspace Manager to create new workspace Item Variants as revision controlled workspace. 
Create 3 sections in Item Details tab:
Add the following fields to section Basic:
In section Variant Definition, add all the fields that will be used to define a variant, for example Colour and Material. This section may include any type of field, including pick lists (with single selection).
All data that should be derived from the Base Item must be defined in section Base Item Data. Make use of derived fields to copy data from the given base item. This may for example include Type, Description, Image and further fields of your items workspace.

Set the workspace's Descriptor to display the fields Number, Index and Title:

Enable required relationships in the BOM tab:

As Item Variants are revision controlled, add this new workspace to the Managed Items tab of the following workspaces:
Create a role for the new workspace enabling creation of new records, BOM management and attachments.
Make sure that users also can access the working versions of records.

Add the following BOM field in workspace Item Variants:
| Field ID | Field Type | Field Settings | Editable |
|---|---|---|---|
| EDGE_ID_BASE_ITEM | Single Line Text | Length : 20, Visibility: Never | true |
Add the following columns to the Default View (sequence does not matter):
| Field ID | Field Source |
|---|---|
| EDGE_ID_BASE_ITEM | BOM Fields |
| DMS_ID_BASE_ITEM | Item Details Fields |
In addition, add all fields of section Variant Definition to this table (for example Colour and Material).
In order to link the variant items with the given base items, a script is required. Create a new action script Item Variants onCreate onEdit and attach this script to the create and edit event of workspace Item Variants:
linkBaseItem();
function linkBaseItem() {if(item.BASE_ITEM !== null) return;if(item.DMS_ID_BASE_ITEM === null) return;var elemBase = loadItem(item.DMS_ID_BASE_ITEM);var listVariants = elemBase.VARIANTS;if(listVariants === null) {listVariants = []; elemBase.VARIANTS = item; } else elemBase.VARIANTS.add(item);item.NUMBER = elemBase.NUMBER;item.VARIANT_INDEX = ('00' + listVariants.length).toString().slice(-2);item.BASE_ITEM = elemBase;}

Enable access to the Variants Manager app by adding a new computed field to your Items workspace. Use the following formula for the new field:
'<a style="border: 1px solid #bec8d2;border-radius:3px;color: #0a131c;font-weight:600;line-height:32px;padding:4px 20px;text-align:center;text-decoration:none !important;white-space:nowrap;" target="_blank" href ="LOCATIONvariants?wsId=57&dmsId='||DMS_ID||'">Variant Manager</a>'
In the Item Details tab of workspace Items, add a linking picklist field Variants allowing multiple selection. This field should link to the new Item Variants workspace created before. Set this field visible and editable.

The items workspace (from where the app will be launched) also must have a field containing the item's dmsID. If not present yet, add a new single line text field with id DMS_ID in the items workspace (hidden). Let this field be set automatically at item creation by script as shown below.
Tenants created mid 2023 or later have this field and script already.
item.DMS_ID = dmsID;
The application requires a BOM view with the following columns:
| Field | Field Source |
|---|---|
| Descriptor | System Fields |
| Quantity | BOM Fields |
| Number | Item Details Fields |
You may add a new view Variant Management with these columns or reuse an existing BOM view containing these columns (the view may also contain further columns of course). If you prefer to use a BOM view that is not named Variant Management, you have to speficfy this view's name in the server's settings file in parameter.
config.variants.bomViewNameVariants : 'Variant Management'
See next chapter Server Settings File for details.
To better integrate the new workspace for the item variants with the Products workspace, you may adjust the grid tab of workspace Products. The BOM column now can be changed to allow for selection of the given variant BOM:

If you require usage of different field names, table names etc, please have a look at the settings.js file and locate section variants, listing all possible configurable settings as shown below. Review the first option wsIdItemVariants which must contain the workspace ID of your newly created workspace. You can retrieve this ID from your browser's URL when navigating to this workspace using the workspaces menu.
export.config = {'variants' : {'wsIdItemVariants' : 208'variantsSectionLabel' : 'Variant Definition','fieldIdVariantBaseItem' : 'DMS_ID_BASE_ITEM','fieldIdItemVariants' : 'VARIANTS','bomViewNameItems' : 'Variant Management','bomViewNameVariants' : 'Default View'}}
Adjust these settings if needed and restart your server afterwards to apply the given changes.
| Setting | Default Value | Description |
|---|---|---|
| wsIdItemVariants | - | Workspace ID of your new Item Variants workspace |
| variantsSectionLabel | Variant Definition | Name of section in the Item Variants workspace which contians all the fields that define a variant. This section will drive the columns of the manager dialog. |
| fieldIdItemVariants | VARIANTS | Field ID of your Items workspaces which contians the linking picklist to item variants, to allow for retrieval of existing variants. |
| bomViewNameItems | Variant Management | BOM view of items workspace which contains the required fields |
| bomViewNameVariants | Default View | BOM view of item variants workspace which contains the required fields |
| 7. July 2023 | Initial Release | This is the very first version of this application |
You can use this solution with any workspace that has the Classification section enabled. The installation instructions below describe how to enable this extension for workspace Items, but you can also enable it for any other workspace (including Items and BOMs and Vault Items and BOMs).
Use the Workspace Manager to add the fields described below to your context workspace. It is recommended to add all these fields to the same (new) section Classification Summary and position them in a matrix, but both is not required. These fields will be set by script, so their placement does not matter. Tenants created mid 2023 or later will have all these fields already, only the last one Class Browser should be missing.

| Label | Field ID | Type | Details | Editable |
|---|---|---|---|---|
| DMS_ID | DMS_ID | Single Line Text | Field Length: 20; set visibility to Never | False |
| Top Level Class | TOP_LEVEL_CLASS | Single Line Text | Field Length : 200 | False |
| Class Path | CLASS_PATH | Single Line Text | Field Length : 1000 | False |
| Class Name | CLASS_NAME | Single Line Text | Field Length : 200 | False |
| Class Browser | CLASS_BROWSER | Single Line Text | Insert the computed field formula shown below | False |
CASE WHEN (CLASS_NAME is null) THEN '' ELSE '<a style="border: 1px solid #bec8d2;border-radius:3px;padding:4px 20px;color: #0a131c;font-weight:600;line-height:26px;text-align:center;text-decoration:none !important;white-space:nowrap;width:160px;" target="_blank" href="http://localhost:8080classes?wsId=57&dmsId='||DMS_ID||'">Find Similar Parts</a>' END
Note that this formula must contain the right workspace ID (..wsId=57..) to match the ID of workspace Items in your tenant (57 is valid for the default tenant).
Of course, the classification section also must be present in this workspace :-)
The fields that were created just before must be updated by scripts every time a new record gets created or when it gets modified. Make sure that the following code is invoked at item creation and during item edit events.
In the standard tenants of mid 2023 and later, this should already be included in script Items onCreate onEdit.
if(item.DMS_ID !== dmsID) item.DMS_ID = dmsID;
setClassSummary();
function setClassSummary() {var rootClass = "";var classPath = "";var className = "";if(Object.keys(item.classification).length > 0) {var path = item.classificationSection.getClassificationPath();if(path.length > 0) { rootClass = path[0];className = path[path.length - 1];classPath = rootClass;if(path.length > 1) {for(var i = 1; i < path.length; i++) {classPath += ' / ' + path[i];}}}}if(item.TOP_LEVEL_CLASS !== rootClass) item.TOP_LEVEL_CLASS = rootClass;if(item.CLASS_PATH !== classPath) item.CLASS_PATH = classPath;if(item.CLASS_NAME !== className) item.CLASS_NAME = className;}
From now on, once an item gets classified, there will be a button Find Similar Parts in section Classification Summary to open the Class Browser in a new tab:

| 7. July 2023 | Enhancement | New default tenant now contains required fields of this extension to reduce implementation efforts and provide value for all users |