0% found this document useful (0 votes)
21 views

Configuration

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Configuration

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 762

Active Workspace

4.3

Configuration and
Extensibility
AW008 - 4.3
Contents

Architecture concepts
Learning Active Workspace architecture ─────────────────────── 1-1
Learn declarative contributions ──────────────────────────── 1-2
Declarative action: navigate ────────────────────────────────── 1-2
Declarative conditions ───────────────────────────────────── 1-4
Declarative panel walk-through ──────────────────────────── 1-9
What are intermediary objects? ──────────────────────────── 1-12
Using visual indicators to quickly recognize a property ───────────── 1-14
Using a sublocation to display a custom page ─────────────────── 1-15
Declarative user interface ─────────────────────────────── 1-17
Declarative UI introduction ────────────────────────────────── 1-17
Declarative kit and module ────────────────────────────────── 1-21
Declarative control of sublocation visibility ──────────────────────── 1-24
Declarative view ──────────────────────────────────────── 1-26
Declarative view model ──────────────────────────────────── 1-29
Declarative messages ───────────────────────────────────── 1-32
Learn the declarative command architecture ─────────────────── 1-34
Declarative command object - commands ───────────────────────── 1-34
Controlling command visibility ─────────────────────────────── 1-35
Declarative command object - commandHandlers ──────────────────── 1-38
Declarative command object - commandPlacements ────────────────── 1-40
Declarative command object - activeWhen ──────────────────────── 1-44
Declarative command object - visibleWhen ──────────────────────── 1-46
Declarative command object - actions ─────────────────────────── 1-48
Data providers ────────────────────────────────────── 1-49
Learn about data providers ────────────────────────────────── 1-49
Use an existing server data provider ──────────────────────────── 1-49
Creating a custom server data provider ────────────────────────── 1-54
Learn client-side data providers ─────────────────────────────── 1-54
Learn the Active Workspace user interface ──────────────────── 1-61
Basic interface ───────────────────────────────────────── 1-61
Navigation toolbar ─────────────────────────────────────── 1-62
Location ───────────────────────────────────────────── 1-62
Active Workspace back button ──────────────────────────────── 1-63
Session context control ──────────────────────────────────── 1-64
Global search ────────────────────────────────────────── 1-65
Sublocations and primary navigation tabs ───────────────────────── 1-65
Sublocation content ────────────────────────────────────── 1-66
Work area header ─────────────────────────────────────── 1-68
Primary work area ─────────────────────────────────────── 1-68
Navigation command bar ─────────────────────────────────── 1-69
Secondary work area ───────────────────────────────────── 1-70
Secondary navigation tabs ────────────────────────────────── 1-71

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2


© 2020 Siemens
Contents

Right wall command bar ─────────────────────────────────── 1-71

Configuring the user interface


Active Workspace user interface configuration tasks ─────────────── 2-1
Configuring the universal viewer ─────────────────────────── 2-1
Modify a command ──────────────────────────────────── 2-5
Organizing your users' common destinations ──────────────────── 2-6
Tile reference ─────────────────────────────────────────── 2-9
Tile collection reference ─────────────────────────────────── 2-10
Tile relation reference ───────────────────────────────────── 2-12
Tile template reference ──────────────────────────────────── 2-14
Create a new tile using the rich client ─────────────────────────── 2-15
Active Architect ────────────────────────────────────── 2-17
What is Active Architect? ─────────────────────────────────── 2-17
Command builder ─────────────────────────────────────── 2-18
Panel Builder ────────────────────────────────────────── 2-20
Action Builder ────────────────────────────────────────── 2-21
Opening Panel Builder ──────────────────────────────────── 2-22
Using Command Builder ─────────────────────────────────── 2-24
Using Panel Builder ────────────────────────────────────── 2-26
Using Action Builder ────────────────────────────────────── 2-28
Dynamic compound properties ──────────────────────────── 2-30
Learn about dynamic compound properties ─────────────────────── 2-30
Dynamic compound property column behavior ───────────────────── 2-32
Using dynamic compound properties with XRT ────────────────────── 2-35
Using dynamic compound properties with column configuration ─────────── 2-36
Dynamic compound property syntax ──────────────────────────── 2-37
Configuring tables ──────────────────────────────────── 2-46
What types of tables are there? ─────────────────────────────── 2-46
Using column configuration ───────────────────────────────── 2-48
Using the objectSet element ───────────────────────────────── 2-59
Table properties (are not objectSets) ──────────────────────────── 2-69
Configuring page layout ──────────────────────────────── 2-71
XRT information specific to Active Workspace ────────────────────── 2-71
Working with HTML panels in XRT ───────────────────────────── 2-80

Working with platform customizations


Integrating Teamcenter platform customizations ───────────────── 3-1
Enable a custom business object in Active Workspace ────────────── 3-1
Adding custom type icons ──────────────────────────────── 3-2
Registering icons (advanced) ────────────────────────────── 3-3
Enabling your custom preferences in Active Workspace ───────────── 3-7
Enable your custom workflow handler in Active Workspace ────────── 3-7

Changing Active Workspace behavior


Active Workspace development environment ─────────────────── 4-1

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 3


© 2020 Siemens
The Active Workspace gateway ──────────────────────────── 4-2
The Active Workspace gateway architecture ──────────────────────── 4-2
Login without seeing UI Builder changes ────────────────────────── 4-4
Login to see UI Builder changes (developer mode) ──────────────────── 4-5
Configure the gateway to see your local site ──────────────────────── 4-6
Work with a declarative module ─────────────────────────────── 4-7
Commit your UI Builder changes to your module ───────────────────── 4-8
Refresh or build your module ───────────────────────────────── 4-9
Publish your local site ───────────────────────────────────── 4-10
The Active Workspace development environment ──────────────── 4-11
The stage directory ────────────────────────────────────── 4-11
Development scripts ────────────────────────────────────── 4-13
The declarative module ──────────────────────────────────── 4-15
Active Workspace development examples ───────────────────── 4-18
Using generateModule to create boilerplate definitions ──────────────── 4-18
Example: Add a custom theme ─────────────────────────────── 4-19
Example: Create a visual indicator ───────────────────────────── 4-25
Example: Create a sublocation ──────────────────────────────── 4-29
Example: Create a command using the command-line ───────────────── 4-33
Development utilities ────────────────────────────────── 4-36
Extended tooltip bulk update ──────────────────────────────── 4-36
Reducing your AngularJS footprint ───────────────────────────── 4-38

Administration
Utilities ──────────────────────────────────────────── 5-1
Command-line utilities ───────────────────────────────────── 5-1
csv2tcxml.perl utility ────────────────────────────────────── 5-9
Active Admin ─────────────────────────────────────── 5-40
The active admin workspace ───────────────────────────────── 5-40
Business Modeler IDE constants ─────────────────────────── 5-41
Global constants ──────────────────────────────────────── 5-41
Business object constants ────────────────────────────────── 5-42
Property constants ─────────────────────────────────────── 5-45
Configuring the Audit Logs page ─────────────────────────── 5-55
Audit Logs page configuration tasks ──────────────────────────── 5-55
Activate the Audit Log page ───────────────────────────────── 5-57
Customize audit logs field display ────────────────────────────── 5-57
Using audit logs ──────────────────────────────────────── 5-59
Customize the audit log display ─────────────────────────────── 5-60
Preferences ──────────────────────────────────────── 5-63
Why do I need preferences? ───────────────────────────────── 5-63
How do preferences work? ────────────────────────────────── 5-63
An example of preference hierarchy ──────────────────────────── 5-67
What are environment preferences? ──────────────────────────── 5-71
Working with preferences in Active Workspace ────────────────────── 5-71
Working with non-standard object types ───────────────────────── 5-76
Controlling notification timeout ─────────────────────────────── 5-77
Defining properties that display in object cells ────────────────────── 5-77

4 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Contents

Defining the revision rules list ──────────────────────────────── 5-78


Where can I get a list of preferences? ─────────────────────────── 5-79
Performance and settings ─────────────────────────────── 5-79
Enabling browser caching ────────────────────────────────── 5-79
Compressing images for loading them quickly ────────────────────── 5-80
Configure image resolution ───────────────────────────────── 5-80
Troubleshooting ───────────────────────────────────── 5-81
Open source software attributions ───────────────────────────── 5-81
Retrieving Active Workspace client and server versions ───────────────── 5-81
appCtxService ───────────────────────────────────────── 5-82
General troubleshooting ─────────────────────────────────── 5-83
Use PLStats to see performance data ──────────────────────────── 5-84
Verify the Active Workspace gateway and other microservices ──────────── 5-86
Resetting the Active Workspace gateway and microservices ────────────── 5-87
Visualization monitoring and troubleshooting ────────────────────── 5-88
Monitoring browser activity ──────────────────────────────── 5-114
Managing groups, roles, users, and projects ─────────────────── 5-115
Creating the organizational structure ─────────────────────────── 5-115
Managing users, groups, and roles ──────────────────────────── 5-116
Managing projects ────────────────────────────────────── 5-128
Use logical objects to consolidate properties ────────────────── 5-132
Logical Objects ──────────────────────────────────────── 5-132
Logical object configuration ──────────────────────────────── 5-133
Destination criteria ────────────────────────────────────── 5-136
Compound logical objects ───────────────────────────────── 5-138
Workspaces ──────────────────────────────────────── 5-139
Learn about workspaces ────────────────────────────────── 5-139
Create the workspace definition ────────────────────────────── 5-140
Modify the workspace definition ───────────────────────────── 5-143
Create or update workspace mappings ────────────────────────── 5-145
Assign style sheets to a workspace ──────────────────────────── 5-148
Assign a tile collection to a workspace ────────────────────────── 5-149
Create or modify column configuration for a workspace ─────────────── 5-153
Verifying your new workspace ─────────────────────────────── 5-154
Remove a workspace ──────────────────────────────────── 5-155
XRT element reference ──────────────────────────────── 5-156
Active Workspace style sheet elements ────────────────────────── 5-156
Modifying style sheets using the XRT Editor ─────────────────────── 5-158

Configuring Active Workspace features


Active Collaboration configuration ────────────────────────── 6-1
Active Collaboration configuration tasks ────────────────────────── 6-1
Deleting commentary ────────────────────────────────────── 6-2
Disable ratings ────────────────────────────────────────── 6-2
Active Content configuration ────────────────────────────── 6-3
Active Content configuration tasks ────────────────────────────── 6-3
Configuring the Content tab ────────────────────────────────── 6-4
When is configuration needed? ──────────────────────────────── 6-5

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5


© 2020 Siemens
Add custom objects to the Content tab and search ──────────────────── 6-6
Adding an LOV to a property in the Content tab ────────────────────── 6-6
Display the Content tab with custom business object types ─────────────── 6-6
Add commands to the content tab ────────────────────────────── 6-7
Add shared effectivity information to Overview tab ──────────────────── 6-7
Display the view type attribute in the BOMLine title ──────────────────── 6-7
Set the default view type for the users ──────────────────────────── 6-7
Active content technical overview ────────────────────────────── 6-8
Setting security on structured content ──────────────────────────── 6-9
Using the Awb0BOMArchetypeToOccurrence type constant ─────────────── 6-9
Mapping type to model element ────────────────────────────── 6-10
Marking archetypes to support structure ───────────────────────── 6-11
Configuring the properties of structured content ──────────────────── 6-11
Configuration for the packing of similar structure elements ────────────── 6-11
Configuring the duplication (cloning) of structures ─────────────────── 6-12
Mapping properties to occurrence properties ─────────────────────── 6-14
Cleaning up background working contexts ──────────────────────── 6-15
Enable the sharing of a saved working context ────────────────────── 6-16
Enable the display of red lines to indicate structure changes ───────────── 6-16
The default revision rule for a product structure ───────────────────── 6-17
Implementing full text search of structures ──────────────────────── 6-17
Configuring BOM precision ────────────────────────────────── 6-17
Confidentiality agreement configuration ───────────────────── 6-17
Overview of confidentiality agreement ────────────────────────── 6-17
Configure the stand-alone confidentiality agreement ────────────────── 6-18
Change management configuration ───────────────────────── 6-18
Change management configuration tasks ───────────────────────── 6-18
Configure Create Change menu for custom objects ─────────────────── 6-20
Automating the submission of changes to workflow ────────────────── 6-20
Configuring how changes are derived ─────────────────────────── 6-21
Defining deep copy rules for creating changes ────────────────────── 6-21
Define deep copy rules for copying options from an ECR to an ECN ───────── 6-22
Configuring the Changes page ─────────────────────────────── 6-24
Classification configuration ────────────────────────────── 6-28
Classification configuration tasks ────────────────────────────── 6-28
I want to ... ─────────────────────────────────────────── 6-29
Configure traditional classification ───────────────────────────── 6-36
Configure search for traditional classification ─────────────────────── 6-36
Create search index views and choose properties by which to search and filter ── 6-37
Update and merge the schema file ───────────────────────────── 6-39
Index classification data ─────────────────────────────────── 6-40
Index only classification data (delta indexing) ────────────────────── 6-42
Configuring traditional classification—Example ───────────────────── 6-43
Install the presentation layer ───────────────────────────────── 6-47
Extend classes to the presentation layer using clsutility ───────────────── 6-48
Synchronize the presentation layer with the classification hierarchy ───────── 6-49
Configure visual navigation cards ────────────────────────────── 6-50
Configuring interchangeable attributes ────────────────────────── 6-51
Configuring the search similar feature ─────────────────────────── 6-52

6 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Contents

View DWG and CGM class images in the Classification tab ─────────────── 6-54
Configure a visual indicator for classification on an object ─────────────── 6-55
Upgrade classification ───────────────────────────────────── 6-56
Configuring classification standard taxonomy ────────────────────── 6-57
Administering classification libraries ─────────────────────────── 6-134
Setting up classification artificial intelligence ────────────────────── 6-143
Classification preferences and utilities ────────────────────────── 6-147
Troubleshooting the installation and configuration ────────────────── 6-162
Digital signature configuration ─────────────────────────── 6-163
Digital signature configuration tasks ─────────────────────────── 6-163
Enable digital signature ─────────────────────────────────── 6-164
Geography access configuration ────────────────────────── 6-167
Overview of geography access ─────────────────────────────── 6-167
Configure geography access ──────────────────────────────── 6-167
Configure confidentiality agreement ─────────────────────────── 6-169
License attachment configuration ───────────────────────── 6-171
Overview of license attachment ────────────────────────────── 6-171
Adding the License List panel to custom XRT pages ────────────────── 6-172
Attaching licenses ────────────────────────────────────── 6-173
Localization configuration ────────────────────────────── 6-176
Localization configuration tasks ────────────────────────────── 6-176
Configuring Active Workspace for other locales ───────────────────── 6-177
Locale support by Visualization Server Manager ──────────────────── 6-178
SLM configuration ─────────────────────────────────── 6-179
SLM configuration tasks ─────────────────────────────────── 6-179
Configuring physical structures ────────────────────────────── 6-180
Program Planning configuration ────────────────────────── 6-181
Program Planning configuration overview ──────────────────────── 6-181
Program Planning preconfiguration tasks ──────────────────────── 6-182
Program Planning post-installation configuration tasks ──────────────── 6-184
Configure out-of-the-box Program Planning LOVs ─────────────────── 6-186
Assign colors to the program event LOVs ──────────────────────── 6-187
Define Program Planning security ───────────────────────────── 6-188
Add custom program and project objects ──────────────────────── 6-189
Share Program Planning data between Teamcenter sites ─────────────── 6-191
Program save as behavior default deep copy rules ─────────────────── 6-193
Define STAMs and STVMs ────────────────────────────────── 6-194
Relations configuration ──────────────────────────────── 6-198
Relations configuration tasks ──────────────────────────────── 6-198
Creating new views or updating existing views ───────────────────── 6-200
Example of configuring views: configure relations expansion ──────────── 6-203
Example of configuring views: localize names that appear in the custom Relations Legend
views ───────────────────────────────────────── 6-204
Configuring what views appear in the Relations Legend ─────────────── 6-205
Configuring what user interface style to apply to objects and relations ────── 6-205
Specifying user interface styles such as shapes and colors ────────────── 6-206
Example of configuring user interface styles: configure the style of nodes and edges
────────────────────────────────────────────── 6-207
Specifying what properties are visible in the object properties filter ──────── 6-208

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 7


© 2020 Siemens
Configuring object expansion button in the one-step commands ────────── 6-209
Configuring how edges attach to objects ──────────────────────── 6-209
Schedule Manager configuration ────────────────────────── 6-209
Schedule Manager configuration tasks ────────────────────────── 6-209
Integrating Microsoft Project with Teamcenter ───────────────────── 6-211
Search configuration ────────────────────────────────── 6-212
Search configuration tasks ───────────────────────────────── 6-212
Configuring structure indexing ────────────────────────────── 6-212
Configuring shape search ────────────────────────────────── 6-240
Changing the default thumbnails ───────────────────────────── 6-242
Security configuration ───────────────────────────────── 6-243
Security configuration tasks ──────────────────────────────── 6-243
Configure sequence of the postlogon stages ────────────────────── 6-244
Configure logoff for Active Workspace ────────────────────────── 6-244
Configuring multiple application IDs ─────────────────────────── 6-246
Configuring load balancer time-outs ─────────────────────────── 6-246
Configuring location codes ───────────────────────────────── 6-247
Configure owning program ───────────────────────────────── 6-250
Configure project-level security ────────────────────────────── 6-251
Configuring gateway security ─────────────────────────────── 6-252
Configuring gateway SSO ────────────────────────────────── 6-254
Configuring gateway routing ──────────────────────────────── 6-255
Simulation Process Management configuration ───────────────── 6-257
Simulation Process Management configuration tasks ───────────────── 6-257
Configure the Simulation-related objects table ───────────────────── 6-257
Edit style sheets to expose custom revision types in the Simulation tab ────── 6-260
Subscription configuration ────────────────────────────── 6-301
Subscription configuration tasks ────────────────────────────── 6-301
Configuring notifications for a two-tier environment ───────────────── 6-302
Configuring subscribable properties ─────────────────────────── 6-303
Setting subscription notification preferences ────────────────────── 6-304
Configuring subscription to multiple objects ────────────────────── 6-306
Configuring My Events ─────────────────────────────────── 6-306
Configuring news feed retention ───────────────────────────── 6-307
Purging news feed notifications ────────────────────────────── 6-307
Visualization configuration ────────────────────────────── 6-307
Visualization configuration tasks ───────────────────────────── 6-307
Configure TCCS environments for Visualization ───────────────────── 6-309
Specify the address for the Teamcenter SOA service ────────────────── 6-309
Configure Visualization where Teamcenter is deployed behind a load balancer ─ 6-309
Configure viewer for SSO-enabled environment (Teamcenter 11.x) ──────── 6-310
Optimizing Visualization Server system performance ───────────────── 6-311
Disable application pool recycling for visualization ─────────────────── 6-314
Enable compression of client-side rendering traffic ────────────────── 6-315
Enable Visualization Server Manager logging ────────────────────── 6-315
Configure the Visualization Pool Assigner for JMX metrics ────────────── 6-317
Configure user service level ──────────────────────────────── 6-318
Specifying viewer defaults using Teamcenter preferences ────────────── 6-318
Configure the Fit command ──────────────────────────────── 6-319

8 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Contents

Adjusting the display resolution for 3D models ─────────────────────


6-320
Configure display units ─────────────────────────────────── 6-321
Configure measurement precision ──────────────────────────── 6-321
Configure support for JT Override children ───────────────────────
6-322
Bounding Box Validation ────────────────────────────────── 6-323
Workflow configuration ──────────────────────────────── 6-326
Workflow configuration tasks ─────────────────────────────── 6-326
Configuring resource pool assignments ───────────────────────── 6-327
Setting conditions for workflows ───────────────────────────── 6-327
Showing user assignment options ───────────────────────────── 6-327
Configuring the Inbox ──────────────────────────────────── 6-328

Configuring Active Workspace in other products


Host Active Workspace in Client for Microsoft Office ─────────────── 7-1
Configuring connection with Lifecycle Visualization ─────────────── 7-1
Configure Active Workspace for connection with Lifecycle Visualization ───────
7-1
Host Active Workspace in standalone Lifecycle Visualization ──────────────
7-2
Set up Active Workspace within Adobe Creative Cloud applications ───── 7-4
Hosting preferences ──────────────────────────────────── 7-6

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 9


© 2020 Siemens
10 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3
© 2020 Siemens
1. Architecture concepts
Learning Active Workspace architecture
What is Active Workspace ?

The Active Workspace client framework presents Teamcenter and its applications, as well as other data
sources, in an intuitive user interface, rather than the traditional interfaces and applications that
targeted expert users.

How does it work?

Active Workspace is a web application that connects to Teamcenter and other data sources in order to
present a consistent interface for the user. With Teamcenter, it communicates with the web tier of the
four-tier architecture, relaying user interaction and presenting the results. In this capacity, it can replace
other Teamcenter clients.

What configuration mechanisms are there?

The user interface (UI) includes few main mechanisms for easy extension.

• Declarative locations

• Declarative commands

• XML rendering templates (XRT, also known as style sheets)

What do I need to do before configuring?

The Active Workspace interface consists of many components. Learn the Active Workspace user
interface terms for these components.

Learn how a declarative panel works with a declarative panel walk-through.

Visit the UI Pattern Library in the Active Workspace section of the Doc Center.

Use the Active Architect to change the UI layout quickly and easily.

Note:
Many of the more involved platform modifications require the use of the Business Modeler IDE.
Check the Teamcenter platform documentation to learn what is required.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-1


© 2020 Siemens
1. Architecture concepts

Learn declarative contributions

Declarative action: navigate

You can use the Navigate action to take the user to a specific page.

The UI Pattern Library on Doc Center maintains the up-to-date syntax and options.

Example: Zero-compile command example for Open

In this example, you examine the OOTB command handler for the Open command. This command
handler references the showObject action, defined in the actions section.

The showObject action is defined as being a Navigate action type which will navigateTo the
com_siemens_splm_clientfx_tcui_xrt_showObject page, and it will send along the UID of the selected
object as a parameter.

The base activeWhen and visibleWhen condition expressions are shown for reference.

1-2 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative action: navigate

Example: Override the Open command

In this example, when a project object is selected the OOTB Open command is overridden so that it
takes the user to ProjectContents instead. This command handler references the
TcProjectShowDelegatedObject action, defined in the actions section.

The TcProjectShowDelegatedObject action is defined as being a Navigate action type which will
navigateTo the ProjectContents page, and it will send along the UID of the selected object as a
parameter.

You must never broaden an existing command condition. Include the original condition to use as the
base in order to ensure you are more specific. In this example, the original condition is ANDed with the
new condition to check the selected object to see if it is a TC_Project type. This ensures that this new
delegate command handler does not allow the Open command to be run outside of its normal design.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-3


© 2020 Siemens
1. Architecture concepts

Using the navigateIn attribute

You can use the navigateIn attribute to open the new page in either a new browser tab or a new
browser window instead of the normal behavior of replacing the current browser contents.

newTab Opens the new page in a new browser tab.

newWindow Opens the new page in a new browser window. You can specify attrbutes for the new
window using the options attribute.

Declarative conditions

You can use conditions to provide logic in your view model.

Conditions:

• Evaluate to either true or false.

1-4 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative conditions

• Can refer to other conditions.


• Evaluate live data.
• Can leverage Boolean operations.

Expressions

Condition expressions can be expressed as a simple string,

or as a JSON object.

Operators

The following operators are supported with expression definition objects.

$source Indicates the reference on the data context node to be used as starting point for
evaluation.
$query Defines the query to be executed on the $source.
$all Applicable when the $source is an array. Indicates that query result should be valid on
all instances of the array elements.
$and A logical AND of each query result.
$or A logical OR of each query result.
$adapt The resulting $source should be adapted before evaluating the query. Active
Workspace sometimes uses intermediary runtime objects that represent other objects.
An example of this is the Awp0XRTObjectSetRow object in objectSet tables. When
you use $adapt the condition uses the target object instead of the intermediary object.
$in The query should match with at least one of the value from the array.
$notin The query should not match with any value from the array.
$eq Equal.
$ne Not equal.
$gt Greater than.
$gte Greater than or equal to.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-5


© 2020 Siemens
1. Architecture concepts

$lt Less than.


$lte Less than or equal to.

Example:
Use of $and: Enable this command handler when the selected object type is Folder AND
object_name is Newstuff

Example:
Use of $or: Enable this command handler when the selected object type is ItemRevision OR
object_name is Newstuff

1-6 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative conditions

Example:
Use of $and and $or: Enable this command handler when the selected object type is
ItemRevision OR ( object_name is Newstuff AND object_type is Folder )

Example:
Use of $adapt: Enable this command handler when the target of the selected intermediary object
is a Cpd0DesignElement object.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-7


© 2020 Siemens
1. Architecture concepts

Example:
Use of $adapt along with $all: Enable this command handler when all of the targets of the
selected intermediary objects are Cpd0DesignElement

Example:
Use of $lte: Enable this command handler when the total workspace count is less than or equal to
1.

Example:
Reuse base condition: Enable this command handler when the base condition is true and type of
adapted selected object is Cpd0DesignElement.

1-8 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative panel walk-through

Reuse does not re-evaluate the base condition. It simply uses the evaluation result of the base
condition as available from the conditions parameter on the evaluation context.

Declarative panel walk-through


Following is an example of a declarative panel in action where you create a saved search, but another
one of that name already exists.

You perform a search for unassigned bolts owned by Ed.

1. You name the search Ed unassigned bolts, and activate the Save button.

The <aw-button> in the view calls the save action when it is activated.

The save action in the view model calls a TcSoaService operation, createFullTextSearch.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-9


© 2020 Siemens
1. Architecture concepts

2. The service fails because a saved search with that name already exists. The action uses a condition
to handle the failure.

The service fails with error code 141152, matching a condition. That condition raises the message
confirmOverwrite.

confirmOverwrite presents the warning message along with two options, Cancel and Overwrite.

1-10 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative panel walk-through

3. You select Overwrite.

The Overwrite option calls the overwrite action.

The overwrite action calls the same service operation as before, but this time with override turned
on.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-11


© 2020 Siemens
1. Architecture concepts

The successful SOA call returns a success event, which closes the panel.

The new saved search is created, overwriting the old one.

Note:
Siemens Digital Industries Software developers use the same building blocks to create panels as
you. This example shows actual code snippets for an OOTB declarative panel, including a call to an
internal service. Only use documented, published services in your code.

What are intermediary objects?


When performing certain functions, Active Workspace uses runtime intermediary objects to stand in
place of the persistent business objects. These intermediary objects contain methods and properties
needed for their function that don't need to be present on the persistent object they represent.

1-12 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
What are intermediary objects?

The two most common intermediary objects are:

Awp0XRTObjectSetRow
This object is used in objectSet tables. It works in conjunction with other objectSet runtime objects
to represent their awp0Target object on a style sheet. They are part of the aws2 feature template in
the Business Modeler IDE.
Awb0Element
This object and its subtypes (Awb0DesignElement, Awb0Connection, and so on) are part of
Active Content and used when Active Workspace displays objects in a structured manner, such as
an assembly. They represent their awb0UnderlyingObject in a bill of materials, product structure,
and so on. They are part of the activeworkspacebom feature template in the Business Modeler IDE.

What is really selected?

Use the context object to verify what type of object is really being selected. Following are some
examples:

• Single object
When the user is viewing a single object,

then the object selected is the persistent business object shown, in this example the ItemRevision
object.

• Assembly

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-13


© 2020 Siemens
1. Architecture concepts

However, if you have Active Content installed and the user selectes that same object in an assembly
structure,

then the object selected is the runtime business object Awb0DesignElement,

which represents the underlying persistent business object by using its awb0UnderlyingObject
relation property.

Using visual indicators to quickly recognize a property


You add your visual indicator definition to your custom native module.

In this example, you will create an indicator that appears when the object has a license attached.

What is a visual indicator?

A visual indicator is a small icon that appears when certain conditions are met; typically when a property
exists, or contains a certain value. This is in addition to the regular icon that an object displays. An object
can have several visual indicators registered to it. Active Workspace uses several visual indicators, such
as Checked Out:

1-14 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using a sublocation to display a custom page

What do I need to create my own indicator?

You need to prepare the following:

• An SVG file that you will use for the indicator.

• Knowledge of the object types for which the indicator applies.

• Knowledge of the condition under which the indicator will appear.

• Knowledge of whether you need to pre-load any properties for your condition.

How do I create my own indicator?

To add a visual indicator to the Active Workspace interface, you must:

• Have a module to modify.

• Create the markup files.

• Add your icon, or use an existing one.

• rebuild the application and deploy.

Using a sublocation to display a custom page


What is a sublocation?

A sublocation is a page in the UI that displays information and has a URL that points directly to it.. Every
sublocation must be assigned to a location, which is a grouping of related sublocations. Any number of
sublocations may be assigned to a location. If only a single sublocation exists for a location, then the
sublocation name is not shown.

A sublocation is defined by views and view models.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-15


© 2020 Siemens
1. Architecture concepts

Sublocation example

Examples of sublocations are: My Tasks, Team, Tracking, and so on. They are all part of the Inbox
location.

The URL for the My Tasks sublocation is http://host:port/#/myTasks.

Custom sublocations

After creating your new sublocation, you can navigate directly to it by modifying your URL.

Example:
http://host:port/#/mySubLocation

This takes you to your new sublocation.

1-16 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative UI introduction

Declarative user interface

Declarative UI introduction

What is the declarative UI?

A capability provided by the Active Workspace framework that allows for a concise and codeless
definition of UI view content, layout, routing, and behavior. Actions, messages, service calls and their
inputs and outputs can be mapped and described using HTML and JSON. It provides an abstracted
means of defining the client UI and its behaviors; the underlying implementation is hidden.

Why a declarative UI?

There are many reasons to use an abstracted, declarative user interface. It provides increased:

Performance Reducing the number of lines of code decreases load times.


Efficiency Enables faster iteration and reduces the need to develop and maintain code. A simple
declarative view definition allows UX specialists to author the desired UI, while working
with an application developer to wire up the view model based on the intent.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-17


© 2020 Siemens
1. Architecture concepts

Sustainabilit Since the Active Workspace declarative elements are abstracted, the underlying web
y technology can evolve with minimal to no effect on existing layouts.
Consistency Each page and panel element is built from basic, modular UI elements instead of
custom pieces.

How does it work?

Declarative pages describe a single screen of the user experience and consist of several panels.

A declarative page is the entire presentation in the browser window and uses a URL.

• A declarative page is declaratively defined and shares the following characteristics:

• Follows layout and content patterns.

• Consists of several panels.

• Creates a view that is described using UI elements.

• Contains a view model that describes the page's data, i18n, and behaviors such as actions,
conditions, messages, and routing.

• Declarative panels describe a region of the page.

1-18 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative UI introduction

Panels are also declaratively defined and share the following characteristics.

• Include a view that described using UI elements.


• Contain a view model that describes the panel's data, i18n, and behaviors such as actions,
conditions, messages, and routing.

UI architecture

The Active Workspace UI consists mainly of sublcations grouped by locations. Each sublocation is
defined by views, which rely on view models for their functionality.

The declarative definition of the UI has two main components, the view and the view model.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-19


© 2020 Siemens
1. Architecture concepts

What files are involved?

The Active Workspace UI extends HTML with custom elements, which are part of W3C's Web
Components. Several custom elements work together to create content using the declarative UI:

Kit A JSON text file that loads modules.


Module A JSON text file that defines sublocations and commands.
View A simple markup file (HTML) that controls a collection of related UI elements and their
layout. These can be panels or pages, and may be displayed as the result of a command
action or sublocation navigation. Views map to the view state which is defined in the
view model.
View model A JSON text file that is responsible for defining the view state, such as data, actions,
i18n, and so on.
i18n A JSON text file that provides localization capability for UI components.

How do I use it?

Use an Active Workspace developer environment command prompt to create a new native module,
define your commands and custom elements, and then package everything into the WAR file and deploy
it.

Visit the UI Pattern Library in the Active Workspace section of the Doc Center.

1-20 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative kit and module

Declarative kit and module

The native module

Your custom declarative definitions reside in a module directory. You must create this directory in the
TC_ROOT\aws2\stage\src directory. To help organize your configurations, you may maintain several
modules, each in its own directory. You may create this directory manually, but using the
generateModule.cmd script to create a module does this for you.

In this example, a mysamplemodule module directory was created.

kit.json

This singular file is provided OOTB, and is located in the TC_ROOT\aws2\stage\src\solution directory. It
contains the definition for your installed configuration. You must register any modules you create in the
kit.json file. You may edit this file manually, but using the generateModule.cmd script to create a
module does this for you.

The kit.json file contains too much information to list here, but the opening section is the portion of
interest.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-21


© 2020 Siemens
1. Architecture concepts

• modules
This list of modules (defined by modules.json) are part of this kit.

module.json

A module may list other modules as dependents. In this file you define commands and their actions,
conditions, and placement. Use the generateModule script to create this file initially. It creates the
necessary directory structure and boilerplate files within the module directory.

The module.json file contains the following information:

• name

1-22 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative kit and module

This is the name of the module.

• desc
This is the description of the module.

• type
This is the type of module. The declarative UI uses the native type.

• commandsViewModel
This is where you define your commands. You may instead use the commandsViewModel.json file to
declare your command block. It must be a sibling of the module.json file.

• states
This is where you define your locations and sublocations. These are ui-router states.

You can use the visibleWhen statement within your sublocation state definition to control its
visibility based upon a condition.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-23


© 2020 Siemens
1. Architecture concepts

• dependencies
This is a list of other module names that are required.

Declarative control of sublocation visibility

The visibleWhen attribute used within a sublocatoin state definition can be used to control its
visibility.

Note:
These snippets are provided for reference only, and are not designed to be production-ready code.

expression

The expression can be used to check the following:

ctx
The context object can be checked.

"expression":"ctx.selected.type=='aType'"

preferences
A preference can be checked.

"expression":"preferences.aMultiValuePreference.values.values[0]=='aVa
lue'"
parentState.data
The parent page's data section can be checked.

"expression":"data.aProp =='aValue'"
parentState.params
The parent page's params section can be checked.

"expression":"params.aParam =='aValue'"
A JavaScript function
The function should be asynchronous in nature and the .js file name should be provided in deps.

1-24 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative control of sublocation visibility

visibleWhen: {
expression:"isSubPageEnabled(ctx.loadedObject)",
deps:["js/subPageProvider"]
}

deps

You can specify the name of a JavaScript file containing a function you wish to check with your
expression. Following is a code snippet of such a file.

import app from 'app';


'use strict';
var exports = {};
export let isSubPageEnabled = function (object) {
// Logic goes here
};

/**
* This is required to load the service.
*/

export let moduleServiceNameToInject = 'subPageProvider';


export default exports = {
isSubPageEnabled
};

app.factory('subPageProvider', () => exports);

An Example

The following snippet from the OOTB state definition is an example of how the Advanced Search
sublocation is controlled by the AW_Advanced_Search_Visibility preference.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-25


© 2020 Siemens
1. Architecture concepts

Declarative view

What is a view?

The view is an HTML markup file consisting of UI elements. The view is also responsible for:

• Defining the view hierarchy including sections and content.

• Mapping to data, actions, conditions, and i18n that are defined in the view model.

• Controlling the visibility of UI elements using visibleWhen clauses.

1-26 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative view

*View.html

These files are located in the module\src\html directory.

Their file naming pattern is to prefix the page or panel name onto View.html. For example, create the
cmdQuickLinksView.html file to represent the view for the cmdQuickLinks panel.

Place your UI elements in this file to define the view.

View types

There are several types of predefined views available.

List
* With or without summary.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-27


© 2020 Siemens
1. Architecture concepts

Image

Table
* With or without summary.

1-28 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative view model

Declarative view model

What is a view model?

The view model is a JSON file. It is responsible for view state such as:

• Imports

• Actions

• Data

• Conditions

• i18n

*ViewModel.json

These files are located in the module\src\viewmodel directory.

Their file naming pattern is to prefix the page or panel name onto ViewModel.json. For example, create
the cmdQuickLinksViewModel.json file to represent the view model for the cmdQuickLinks view.

Place your UI elements in this file to define the view, and import any necessary directives.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-29


© 2020 Siemens
1. Architecture concepts

Mapping the view to the view model

Imports

Imports are used to indicate the custom elements we want to use in our view and view model:

Actions

The actions JSON object consists of the following components.

actionType
Supported options: TcSoaService, JSFunction, and RESTService
inputData
JSON data for the action input
outputData

1-30 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative view model

JSON data for the action output


events
Triggered in response to the action
actionMessages
User messages and condition support

Data

The view can refer to data and view state in the view model data section.

Using {{ }} allows declarative binding to the live data.

Conditions

Conditions evaluate to true or false, may use boolean expressions (&&, ||, ==, !=), and may be used as
follows:

• Use in visibleWhen clauses.


• Use for event handling.
• Refer to the data model state.
• Update the view model state.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-31


© 2020 Siemens
1. Architecture concepts

i18n

User-facing text is localized. The view refers to localizations defined in the i18n section of the view
model.

i18n text is provided as a JSON bundle.

Declarative messages

Messages are localized, are launched by actions, and cover information, warning, and error notifications.
Messages may also::

• Present the user with options.


• Trigger actions.
• Leverage view model data and conditions.

1-32 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative messages

Messages.json

This file is located in the module\src\i18n directory.

The file naming pattern is to prefix the module name onto Messages.json. For example, create the
quickLinksMessages.json file to represent the localized text strings used within the quickLinks
module.

Mapping messages and i18n

In the ...ViewModel.json files, strings are localized using the i18n object.

For example, the displayName here is bound to i18n.checkBoxName.

In turn, the i18n object refers to the ...Messages.json file to retrieve the actual string for display.

In this case, all of the i18n entries refer to a single file, MyModuleMessages. The system locates src
\i18n\MyModuleMessages.json to look up the localized strings. For this example, Enable the OK
button in footer, is displayed.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-33


© 2020 Siemens
1. Architecture concepts

This extra layer of abstraction allows the ...Messages.json file to be exchanged based upon locale
without having to modify the ...ViewModel.json files. You can maintain as many message files as you
need.

Learn the declarative command architecture

Declarative command object - commands

Declarative command object hierarchy

A few basic objects define a declarative command.

commands JSON object

A command is the concept of a command. Its property name in the commands object is the command
Id. Command contains the following properties:

• iconId: refers to the SVG icon stored in the image folder in the WAR location
• isGroup: true if a group command, false otherwise
• title: either an i18n key, or just a string

Below are some example commands:

1-34 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Controlling command visibility

Controlling command visibility

You can limit which commands your users see, based on various conditions. This helps reduce screen
clutter and allows you to tailor your users' experience to your company's needs.

Control the visibility of commands in the Active Workspace interface using a combination of client-side
conditions in the declarative command handlers, and server-side conditions in the Business Modeler IDE.

• Server-side conditions provide a base-level of visibility from which client-side conditions can further
restrict.

• Client-side conditions are preferable, since they are much easier to modify and do not require a server
call.

• Server-side conditions have a deeper datamodel access that might be required.

Some OOTB commands specify server-side conditions, many do not. Check the command list in the
Business Modeler IDE to see if a command has a server-side condition listed. Remember load all
appropriate templates. Even if there are no server-side conditions attached OOTB, you can still attach a
condition if you have a need.

Client-only control

Siemens Digital Industries Software recommends using only declarative client-side conditions and
expressions whenever possible. You use declarative conditions in the activeWhen and visibileWhen

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-35


© 2020 Siemens
1. Architecture concepts

clauses of your declarative command handler. Condition expressions are powerful and offer a lot of
flexibility, including the capability to check a server-side command condition.

Example:

"cmdQuickAccessHandler": {
"id": "cmdQuickAccess",
"action": "quickAccessAction",
"activeWhen": true,
"visibleWhen": {
"condition": "conditions.quickAccessVisibility"
}
}

Client and server control

This allows you to do more complex decision-making, such as checking for project membership or the
value of environment variables.

You can create server-based visibility for your custom command by registering it in the Client UI
Configuration section of the Business Modeler IDE. Remember load all appropriate templates.

You must use the ctx.visibleServerCommands declarative expression on the client-side in order to
implement server-based conditions.

Example:
You can specify a visibleWhen condition in the command handler,

and then use the following expression.

1-36 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Controlling command visibility

The Active Workspace client will ask the Teamcenter platform to evaluate the conditions attached
to the Business Modeler IDE command definition named C9command.

Where can I learn more about server conditions?

The Business Modeler IDE is where you can define these conditions. They are used for many purposes on
the server side, including workflow creation, deep copy rules, list of values, and so on. They can check
object property values, user session information, other conditions, and even things like preference
values using the Fnd0ConditionHelper object. More complete information on server conditions are
found in the Teamcenter administration documentation. If you intend to modify the visibility of a
command that uses server conditions, be sure to examine the condition closely to learn how it works,
and verify what other functionality might be using that condition.

How can I find which commands use a condition?

You must know which commands use a condition before you attempt to modify it. Use the Business
Modeler IDE search files function. One way to find command condition attachments is to search all
template files within your TC_ROOT\bmide\templates directory for the name of the command you are
interested in. You must have all your Business Modeler IDE templates installed, but not necessarily used
in the project, to get a complete result.

You can use any method you wish to search. In this example, Aut0AttachLicensesCmdCond is
searched. You should search your own extension files as well.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-37


© 2020 Siemens
1. Architecture concepts

Declarative command object - commandHandlers

Declarative command object hierarchy

A few basic objects define a declarative command.

commandHandlers JSON object

A command can have many command handlers. However at any given time, there may be at most only
one active commandHandler for a command. A declarative activeWhen condition that evaluates a
Boolean expression controls whether a handler is currently active. If more than one handler for a given
command evaluates to true, then the more specfic condition, the condition with longer expression, is
chosen to be active. The active command handler determines:

1-38 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative command object - commandHandlers

1. When a command is visible.


2. What a command will do.

A command handler has the following properties:

• id: The command Id for the associated command.


• action: The declarative action to be executed.
• activeWhen: Determines when this command handler is active for the associated command.
• enableWhen: Determines when the associated command is enabled. If a command is visible but not
enabled, it will appear grayed out. Use this for commands you want to stay in their place, even when
they're not active.
• visibleWhen: Determines when the associated command is visible. This condition is only evaluated if
this command handler is active.
Use visibleWhen=true on command groups to keep them visible at all times.
Commands contained in command groups are evaluated when the group is opened.

If there are no valid commands in a command group, the group displays the No Commands
Available message when opened.

Below are some example commandHandlers:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-39


© 2020 Siemens
1. Architecture concepts

Declarative command object - commandPlacements

Declarative command object hierarchy

A few basic objects define a declarative command.

1-40 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative command object - commandPlacements

commandPlacements JSON object

A command can have many placements. A placement is the actual visual rendering of the display of
the command. A command placement has the following properties::

• id: The command Id for the associated command.


• uiAnchor: A well known name for an <aw-command-bar> element.
• priority: The relative priority order to render commands.
• relativeTo: (optional) The command id of this command will be placed relative to another command.
The priority property will be applied relative to the specified command. In other words if multiple
commands are placed 'relativeTo' the same command, they will be placed in ascending sorted priority
order relative to the specified command. Negative priority means that this command will be inserted
before the 'relativeTo' command. Positive priority means the command will be appended after the
'relativeTo' command.

Example uiAnchor names

Following are some common anchor points. There are far too many to list, and they can be discovered
easily.

1 — aw_globalNavigationbar
2 — aw_rightWall
3 — aw_contextMenu2
This is the generic context (right-click) menu anchor point for Active Workspace tables. Declarative
tables can also have their own anchor point for context menus, adding additional commands.

How can I find other uiAnchor points?

From the developer console in your browser, inspect the page's elements. You will find the anchor listed.

For example, to find out which anchor point the home folder command uses in this position, inspect it
using your web browser.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-41


© 2020 Siemens
1. Architecture concepts

Tip:
This example shows Chrome. Firefox calls this feature Inspect Element. Others may vary.

Find the element containing the commands. It will have an attribute named anchor. In this case, aw-
command-bar.

1-42 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative command object - commandPlacements

The element inspector shows that this command is placed on the bar using the
aw_globalNavigationbar anchor point.

Example commandPlacements

Below are some example commandPlacements:

"commandPlacements": {
"Awp0UnPinObjectOneStep": {
"id": "Awp0UnPinObject",
"uiAnchor": "aw_rightWall",
"parentGroupId": "Awp0ManageGroup",
"priority": 210

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-43


© 2020 Siemens
1. Architecture concepts

},
"Awp0PinObjectOneStep": {
"id": "Awp0PinObject",
"uiAnchor": "aw_rightWall",
"parentGroupId": "Awp0ManageGroup",
"priority": 140
},
"Awp0CopyToolsAndInfo": {
"id": "Awp0Copy",
"uiAnchor": "aw_viewerCommands",
"priority": 200
},
"Awp0GoBackGlobalNavigationbar": {
"id": "Awp0GoBack",
"uiAnchor": "aw_globalNavigationbar",
"priority": 1
},
"Awp0ChangeThemeSessionbar": {
"id": "Awp0ChangeTheme",
"uiAnchor": "aw_userSessionbar",
"priority": 2,
"showGroupSelected": false
},
"Awp0GoHomeGlobalToolbar": {
"id": "Awp0GoHome",
"uiAnchor": "aw_globalToolbar",
"relativeTo": "Awp0ChangeTheme",
"priority": -1
},

...
},

Declarative command object - activeWhen

Declarative command object hierarchy

A few basic objects define a declarative command.

1-44 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative command object - activeWhen

activeWhen JSON object

This determines when a command handler is active. A command handler must be both active and visible
to display in the UI.

In the following commandHandlers, various activeWhen conditions are shown.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-45


© 2020 Siemens
1. Architecture concepts

Note:
Declarative conditions can be defined with arbitrary expressions utilizing client side
context. However, to accommodate server-side visibility logic the
IApplicationContextService keeps track of the commands which the server evaluates to be
visible. Therefore you can build expressions for your declarative condition that refer to the real-
time server-side visibility.
For example, if you want to have a condition expression that uses the server-side visibility of the
Awp0Checkout command your condition expression would simply be
"ctx.visibleServerCommands.Awp0Checkout". This variable can be used by itself or it can
be used with other client side expressions.

Declarative command object - visibleWhen

Declarative command object hierarchy

A few basic objects define a declarative command.

visibleWhen JSON object

This determines when a command handler is visible. A command handler must be both active and
visible to be displayed in the UI.

In the following commandHandlers, various visibleWhen conditions are shown.

1-46 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Declarative command object - visibleWhen

Note:
Declarative conditions can be defined with arbitrary expressions utilizing client side
context. However, to accommodate server-side visibility logic the
IApplicationContextService keeps track of the commands which the server evaluates to be
visible. Therefore you can build expressions for your declarative condition that refer to the real-
time server-side visibility.
For example, if you want to have a condition expression that uses the server-side visibility of the
Awp0Checkout command your condition expression would simply be
"ctx.visibleServerCommands.Awp0Checkout". This variable can be used by itself or it can
be used with other client side expressions.
The Business Modeler IDE documentation for your Teamcenter platform contains information on
how to create command visibility conditions.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-47


© 2020 Siemens
1. Architecture concepts

Declarative command object - actions

Declarative command object hierarchy

A few basic objects define a declarative command.

actions JSON object

• actionType supported options:

TcSoaService
JSfunction
JSfunctionAsync
RESTService
Navigate

• inputData: JSON data for the action input

• outputData: JSON data for the action output

• events: triggered in response to the action

• actionMessages: user messages, and condition support

Following is an example action that calls the checkout Teamcenter Services

1-48 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Learn about data providers

Data providers

Learn about data providers

What is a data provider?

There are two types of data providers:

client You can define a client-side data provider using declarative definitions. Use this model
view mechanism to gather data from Teamcenter or other sources for presentation in
the UI.
server You can define a custom Teamcenter server-side data provider to gather data and send
it to a client.

What are the benefits?

All server data providers use a single, common Teamcenter service operation:
Finder::performSearch. Even custom data providers are covered by this operation, which means
you do not have to write a custom service wrapper.

Client data providers are flexible enough to retrieve data from various sources without requiring Java
code.

Use an existing server data provider

Warning:
The provided server-side data providers that ship with Teamcenter and Active Workspace are not
published and are for Siemens Digital Industries Software internal use. They may be removed or
changed without notice. The following information is provided for informational purposes only.

You can use the browser's developer tools to examine data providers in action.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-49


© 2020 Siemens
1. Architecture concepts

1. Open developer tools on your browser to record network traffic.

2. Navigate to a page or perform a search.

3. Filter the network traffic to find performsearch calls.

4. Examine the Reeuqst Payload in the Headers tab.

From here you can examine the searchInput object.

Awp0SavedQuerySearchProvider

Documentation for this provider is being provided on a temporary basis.

The purpose of this server-side data provider is to run a Teamcenter query and return the results to the
client-side data provider.

In this example, the General... query is called using the Advanced Search capability of Active
Workspace.

Use the Query Builder perspective in the rich client to examine the criteria for the General... query.

1-50 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Use an existing server data provider

Following is the resulting client-side data provider call. Notice how the searchCriteria contains all of the
information to run the query on the server.

Two of these criteria are always required for this data provider.

searchID An identifier that must be unique, but does not carry any other significance. It is how
the client identifies this particular query call if it needs to.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-51


© 2020 Siemens
1. Architecture concepts

typeOfSearc This must provide the type of search being requested.


h

One of the following two criteria is required to identify which query is run.

queryUID Using this criteria removes any question as to which query is run.
(shown)
The queryUID is the unique identifier of the query being requested, also known as the
C tag or C++ BusinessObjectRef. In this example, QEff7G00qd$DyB represents the
General... query in this Teamcenter database. One way to retrieve this value is to
examine the saved query using the rich client and the Print Object view.

queryName Using this criteria is easier, but the possibility exists that the query you want might be
deleted and a new query created with the same name.

This is the name of the query. In this example, it would be General....

Example:
queryName="General..."

or

1-52 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Use an existing server data provider

queryName="Item Revision..."

Awp0FullTextSearchProvider

This provider uses the full text indexed search engine, and is used commonly throughout Active
Workspace, including the global search area.

The following criteria are of note:

searchString The text that will be queried. In this example, the wildcard asterisk is used.
searchFilter This shows any filtering criteria, like object type, owning user, and so on. In this
Map example, there is no filter.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-53


© 2020 Siemens
1. Architecture concepts

Creating a custom server data provider

You need to prepare several things in order to create your own server data provider.

Use the Business Modeler IDE to:

• Create a child business object of the Fnd0BaseProvider.

• Override the fnd0performSearch operation.

• Implement fnd0performSearchBase in your custom code.

• Build, package, and deploy your template.

You can now call the Finder::performSearch service operation from your client data provider.

Learn client-side data providers

Introduction to the client dataProvider

Use a data provider in your view model to retrieve information from virtually any source. The
dataProviders object is an abstraction layer for components which fulfill the demand to load or
paginate data and pass it to the underlying object.

Where can I use data providers?

You can use data providers in the following ui components.

• aw-list

• aw-tree

Configuring a simple data provider

Data provider objects are defined within a view model file using the following basic parameters.

dataProviders: {
}

The UI Pattern Library on Doc Center maintains up-to-date schema definitions.

You can use the following components to define the most basic data provider.

action Lists the actions available to the provider. These specify how the data is retrieved from
the source.

1-54 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using a static dataProvider with fixed lists

These are defined in the actions section of the view model file.
response A data bound array of returned objects.
totalFound A data bound value of the number of results.

dataProviders: {
"MyDataProvider": {
"action": "fetchData",
"response": "{{data.searchResults}}",
"totalFound": "{{data.totalFound}}"
}
}

Example data provider

"dataProviders": {
"imageDataProvider": {
"action": "loadData",
"response": "{{data.searchResults}}",
"totalFound": "{{data.totalFound}}"
}
},
"actions": {
"loadData": {
"actionType": "REST",
"method": "GET",
"inputData": {
"request": {
"method": "GET",
"startIndex": "{{data.dataProviders.imageDataProvider.startIndex}}",
"url": "sample_url"
}
},
"outputData": {
"totalFound": "{{results.fetcheddata.length}}",
"searchResults": "{{results.fetcheddata}}"
}
}
}

Using a static dataProvider with fixed lists

You can use a data provider to retrieve information from a fixed list.

Static data providers must define their dataProviderType to be Static.

"dataProviderType": "Static"

The data object

The UI Pattern Library on Doc Center maintains up-to-date schema definitions.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-55


© 2020 Siemens
1. Architecture concepts

Use the data object to store the information you will retrieve.

Example

"dataProviders": {
"locationLink": {
"dataProviderType": "Static",
"response": [
"{{data.Romulus}}",
"{{data.Remus}}"
],
"totalFound": 2
}
}

"data": {
"Romulus": {
"displayName": "Romulus",
"type": "STRING",
"dbValue": "Romulus",
"dispValue": "Romulus"
},
"Remus": {
"displayName": "Remus",
"type": "STRING",
"dbValue": "Remus",
"dispValue": "Remus"
}

Using an action dataProvider for most data

You can use a data provider in response to an action. Action data providers do not need to declare their
dataProviderType, it is the default.

Additional configurable parameters

selectionMo Indicate the selection mode in the data provider. Valid values are single and multiple.
delMode The default is single.
commands Add commands inside the data provider.
commandsA Specify a command anchor bar.
nchor
preSelection Indicate if the newly added object will be shown as selected. Valid values are true and
false. The default is true.

1-56 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring pagination for your dataProvider

Events triggered by a data provider

The following events are triggered when:

• {{dataProviderName}}.selectionChangeEvent: An object selection change happens in aw-splm-table


or aw-list. This event is triggered with the latest selected object.

• {{dataProviderName}}.modelObjectsUpdated: The underlying view model collection is updated.

• {{dataProviderName}}.selectAll: All objects in the data provider are selected.

• {{dataProviderName}}.selectNone: All objects in the data provider are deselected.

Example: Configure a data provider as part of an action in the view model

"actions": {
"reveal": {
"actionType": "dataProvider",
"method": "imageDataProvider"
}
}

Example: Call multiple data providers as action in the view model

"actions": {
"reveal": {
"actionType": "dataProvider",
"methods": ["getHistory", "getFavorites", "performSearch"]
}
}

Example: Pass additional data as input to the data provider

"imageDataProvider": {
"action": "loadData",
"response": "{{data.searchResults}}",
"totalFound": "{{data.totalFound}}",
"inputData": {
"someData": "{{ctx.abcd}}"
}
}

Configuring pagination for your dataProvider

You can use pagination to help minimize the initial loading time, and also help reduce the load on the
server. Pagination support for client data providers work in conjunction with the server. The server

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-57


© 2020 Siemens
1. Architecture concepts

should support and return basic parameters which are required for pagination to work. The client data
provider has two major fields to enable pagination:

response An array of data received via a SOA or REST call.


totalFound Indicates the total number of objects to be loaded in the UI element (list, table, etc.).
This number is used by the data provider to calculate the end of pagination.

The data provider calculates the startIndex for the next SOA or REST call based on the length of the
response data.

Start index

startIndex is required by the stateless server to send the next set of data upon scrolling.

"startIndex" : "{{data.dataProviders.sampledataProvider.startIndex}}"

This parameter is calculated and maintained by the data provider. This parameter should be passed as
input to the REST or SOA call.

"loadData": {
"actionType": "RESTService",
"method": "GET",
"inputData": {
"request": {
"method": "GET",
"startIndex":
"{{data.dataProviders.sampledataProvider.startIndex}}",
"url": "sample_url"
}
}
}

Learn the dataProvider selection model

The data provider comes with a default selection model. The primary responsibility of a selection model
is to:

• Maintain a list of objects that are selected inside the data provider.

• Keep the internal state information of the selection. Multi-select state, selection mode, and selection
status, for example.

Basic methods

setMode

1-58 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Learn the dataProvider selection model

Change selection the mode.


isMultiSelectionEnabled
Check if multi-select mode is active.
setMultiSelectionEnabled
Enable or disable multi-select mode.
isSelectionEnabled
Check if selection is enabled.
setSelectionEnabled
Enable or disable selection.
evaluateSelectionStatusSummary
Determine the selection state. None selected, some selected, or all selected.
getSelection
Get the current selection.
setSelection
Change the current selection.
addToSelection
Add an object to the current selection
removeFromSelection
Remove an object from the current selection
toggleSelection
Toggle an object's selection status.
selectNone
Clear the current selection. This is an alias for setSelection. It does not fire the data provider event
that tables expect.
getCurrentSelectedCount
Get the number of objects selected.
isSelected
Check if an object is selected.
getSortedSelection
Get all selected objects and sort them by the order determined in the selection model.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-59


© 2020 Siemens
1. Architecture concepts

Example: Basic selection model

You can specify multi-select capability using the selectionModelMode parameter.

"imageDataProvider": {
"action": "loadData",
"response": "{{data.searchResults}}",
"totalFound": "{{data.totalFound}}",
"selectionModelMode": "multiple"
}

Example: Customize the selection model

You can add a custom selection model based on your needs. Use the inputData parameter on the data
provider.

"imageDataProvider": {
"action": "loadData",
"response": "{{data.searchResults}}",
"totalFound": "{{data.totalFound}}",
"inputData": {
"selectionModel": "{{data.selectionModel}}"
}
}

Learn about sorting and filtering with your dataProvider

You must perform all sorting and filtering on the server. The data provider does not have its own sorting
or filtering capabilities, though it can assist server by sending the sort and filtering criteria from the
action associated with the data provider.

"dataprovider": {
"gridDataProvider": {
"action": "loadData",
"response": "{{data.searchResults}}",
"totalFound": "{{data.totalFound}}",
"inputData": {
"selectionModel": "{{subPanelContext.selectionModel}}",
"searchSortCriteria": "acending"
}
}
},
"action": {
"loadData": {
"actionType": "RESTService",
"serviceName": "GET",
"inputData": {
"request": {
"method": "GET",
"withCredentials": false,
"url": "https://some-url",

1-60 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Basic interface

"searchInput": {
"searchFilterMap": "{{ctx.activeFilterMap}}",
"searchSortCriteria":
"{{data.dataprovider.gridDataProvider.sortCriteria}}",
"startIndex": "{{data.dataProviders.gridDataProvider.startIndex}}"
}
}
}
}
}

Learn the Active Workspace user interface

Basic interface

The Active Workspace page consists of these main areas.

1. Navigation toolbar

2. Session context toolbar

3. Location

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-61


© 2020 Siemens
1. Architecture concepts

Navigation toolbar

The navigation toolbar, which displays on all pages of the UI, provides commands that are available
regardless of context. These commands typically don't take any input or have any selection awareness.
They deliver you to common locations or perform other functionality like Favorites or Previous
Location, for example.

To attach commands to this toolbar, use the aw_globalNavigationbar UI anchor.

Location

A location defines a page that supports a set of closely related sublocations. Each location includes:

• A title that provides a page name.

• One or more sublocations.


If there is only a single sublocation, the title of that sublocation is not shown.

1-62 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Active Workspace back button

1. Name of the current location

2. List of available sublocations

3. Global search

4. Sublocation

Active Workspace back button

The global navigation toobar includes an Active Workspace back button so that users can move to
previously visited locations such as Search, Changes, or an open object.

The Active Workspace back button differs from a browser back button. A browser back button moves
through each URL that was displayed in the browser address bar. In contrast, the Active Workspace back

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-63


© 2020 Siemens
1. Architecture concepts

button moves to the user's previously visited location (Search, Changes, or an open object) but not to
tabs (Results, Saved, Recent. The behavior of the Active Workspace back button allows a user to quickly
navigate from the Changes page to a target object and back, regardless of any intermediate steps taken
to view various tabs of information on the target object.

Active Workspace includes the active tab within a location and can include information such as browser
address bar URL content. This supports browser refresh and URL sharing with little or no page changes,
however the history of the Active Workspace back button is cleared on browser refresh.

Session context control

A context control for the current session is present on the global side of the UI. It allows the user to view
their profile, sign out, and change context information such as current project or program, group and
role, and the revision rule for selecting the specific revisions.

You can view your user profile, sign out, or change your current project, group, role, revision rule,
change context, workspace from this menu. If you only have a single option, you may not see the
choice. In the following example, the workspace is not shown here, because there is only a single choice
available.

1-64 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Global search

Global search

The search box is present on all locations for full-text searches. The user can enter any search string and
perform a search. Performing a search changes the location to the Search location and presents the
objects that meet the search criteria.

The search area will collapse for a cleaner look. To return it, use the Expand Search Box icon.

Sublocations and primary navigation tabs

A sublocation defines the content of the location and how it is presented. Sublocation names are
presented as the primary navigation tabs.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-65


© 2020 Siemens
1. Architecture concepts

• Users navigate between sublocations by using the primary navigation tabs.

• When a location has only one sublocation, the tabs are not displayed.

When the location is a Teamcenter business object (part, document, or change, for example), the
sublocation tabs are defined by the object's XML rendering template (XRT).

Each sublocation has a unique URL. You can use the URL to navigate to the sublocation. The component
contributing the location and sublocation defines this URL.

Sublocation content

Each sublocation has a unique URL, determined by the declarative definition. Most sublocations consist
of two work areas. The primary work area for navigation and selection, and the secondary work area
which is a collection of related properties and functionality pertaining to the object selected in the
primary work area. The layout of the secondary work area in many cases is controlled by style sheets.

1. Primary work area toolbar (navigation)

2. Primary work area search

1-66 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Sublocation content

3. Primary work area

4. Secondary navigation tabs (style sheet pages)

5. Secondary work area

6. Right wall toolbar

Navigation and information panels become visible when in use and hidden when not.

Navigation panel

Several of the primary work area commands will open a navigation panel for further input.

Tool and information panel

Several of the right wall commands will open a tool and information panel. This panel will contain
information or ask for input. Most of these panels will extend over the UI when they open, covering a
portion of the display. Once you close the panel, it will disappear. In the special cases where the panel
relies on the information in the main UI — markup, for example — it will push the UI over so it does not
cover the UI.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-67


© 2020 Siemens
1. Architecture concepts

Work area header

The work area header is displayed immediately below the work area toolbar.

This header is used for summary information such as the number of results a search has found. It also
displays the breadcrumb, which is used as an additional means of refining what is displayed.

Primary work area

The primary work area contains the rendered main content for the sublocation. Your selection in this
area determines the content of the secondary work area.

1-68 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Navigation command bar

Navigation command bar

Commands in the navigation command set apply to content in the primary and secondary work areas or
apply filters to the content in these work areas.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-69


© 2020 Siemens
1. Architecture concepts

Components can contribute a navigation command to the navigation command set.

• When there are no contributions, the navigation command set is hidden.

• Order priority is supported.

Secondary work area

The secondary work area typically shows the details of the content selected in the primary work area.
The content of this area is typically controlled by style sheets.

1-70 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Secondary navigation tabs

Secondary navigation tabs

When multiple secondary work areas exist for a sublocation, they are shown as secondary navigation
tabs in the graphic user interface. This is typically a list of pages defined in a style sheet.

Priority ordering is defined by the contributors. It is a best practice to leave gaps.

Right wall command bar

Commands in the right wall toolbar operate on the content in the primary or secondary work areas and
require user input.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 1-71


© 2020 Siemens
1. Architecture concepts

• Components can contribute to the right wall command bar.

• When there are no contributions, the right wall command bar is hidden.

• Order priority is supported.

1-72 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
2. Configuring the user interface
Active Workspace user interface configuration tasks
How do I change the user interface for Active Workspace?

You generally change the user interface for Active Workspace using customization methods. However,
there are some simpler configurations that you can perform as an administrator that only involve
changing some configuration files, such as style sheets.

Why configure the user interface?

While your end users can use Active Workspace as-is, you may want to emphasize information specific to
your company's processes, such as displaying custom properties on tiles or exposing custom business
object types.

What can I configure?

Following are some of the configurations you can perform:

• Configure the home page.

• Configure tables.

• Change which properties display on object cells.

• Change the layout of the main workarea.

• Add commands to the user interface.

• Enable your custom business object.

• Enable your custom workflow handler.

• Define the Revision Rule list.

Configuring the universal viewer


What is the Universal Viewer?

The universal viewer:

• Is a gallery-style viewer element — it has left (1) and right (2) chevrons so your users can cycle
through the available datasets.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-1


© 2020 Siemens
2. Configuring the user interface

• Consists of a collection of individual viewers, each designed to handle specific single-file document or
image formats in the client: Word, PDF, and PNG for example. Although the universal viewer is
capable of rendering single-file JTs, there is another viewer, the 3D viewer, which is normally used for
multiple-file JT assemblies.

• Uses several third-party libraries to perform the rendering for the various file types. Consult the
documentation for those libraries for possible restrictions and limitations.

How do I add the universal viewer to my style sheet?

The following XRT code snippet shows the OOTB Preview section. You can inject this same source into
your custom style sheets to use the universal viewer.

<section titleKey="tc_xrt_Preview">
<inject type="dataset" src="Awp0GalleryViewer" module="js/aw-include.directive"/>
</section>

2-2 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring the universal viewer

How does it work?

When the user selects an object, what the universal viewer displays is controlled by the
AWC_defaultViewerConfig.VIEWERCONFIG preference.

There are two types of values in this preference:

• SEARCHORDER.objectType = relationType, relationType, ...

• datasetType.viewerName = namedReference

Active Workspace recursively searches the SEARCHORDER values of the preference from top to bottom
(starting with the selected object) to build a list of related datasets. These datasets form the list of
available datasets for the gallery. When each dataset is displayed, the universal viewer searches the
preference values from top to bottom to find the viewer associated with that dataset type.

If the gallery doesn't have any content to display, it shows the icon for the object type.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-3


© 2020 Siemens
2. Configuring the user interface

Example:
If you have a folder selected, and that folder contains an item revision, and that revision has a GIF
dataset as reference, then the values of the preference that Active Workspace will use are as
follows (spaces added for readability):

SEARCHORDER.Folder = contents
SEARCHORDER.ItemRevision = ...,IMAN_reference,...
GIF.Awp0ImageViewer = GIF_Reference

The final result will be the Awp0ImageViewer showing the *.gif file contained in the dataset.

Tip:
What is actually selected by the user might be an intermediary object.

Using the universal viewer for your PDF files

You must configure the AWC_defaultViewerConfig.VIEWERCONFIG preference to view PDF files.

Using the universal viewer for your Office files

You can view and edit Microsoft office files if Teamcenter Office Online is installed.

Using the universal viewer with custom named references

If you create a custom named reference, you will need to create a new value in the
AWC_defaultViewerConfig.VIEWERCONFIG preference with your custom named reference. For
example, if you created a custom PDF dataset with a C9PDF_Reference, you would also need to create
the following value (copied from PDF and modified) to get the viewer to be able to display your files:

PDF.Awp0PDFViewer=C9PDF_Reference

Using the universal viewer for your assemblies

You might want to use the universal viewer (displayed in the Overview tab) for your assemblies instead
of the default 3D viewer (displayed in the 3D tab) if your assemblies contain:

• Monolithic JT data.

• No JT data.

• Other types of data, like Word documents, PDF files, and so on.

2-4 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Modify a command

To view assembly data in the Active Workspace client, you must have the Active Content Structure
feature installed.

In addition, to use the universal viewer as the default for assembly data, there are two things you need
to change:

• Modify a preference
The preference that controls which objects use which viewer is
AWC_defaultViewerConfig.VIEWERCONFIG.

• You must add your business object type and relations on a new SEARCHORDER line.

• For assemblies, this is the runtime business object named Awb0DesignElement.

• The relation that the design element object has to its target object is named
awb0UnderlyingObject.

Example:
Adding the following line to the preference tells Active Workspace to process any objects
referenced by the design element object.

SEARCHORDER.Awb0DesignElement=awb0UnderlyingObject

If you have an assembly of DocumentRevision objects that have datasets attached with the
TC_Attaches relation, then Active Workspace will process the new Awb0DesignElement line,
finding the underlying DocumentRevisions, and then because of the OOTB line:

SEARCHORDER.DocumentRevision=TC_Attaches

checks the DocumentRevisions for anything attached with the TC_Attaches relation.

Set client-side rendering for the universal viewer

Depending on your needs, you can choose to render 3D data on the client or the server. To set the
rendering method for the universal viewer, use the Teamcenter preference AWV0ViewerRenderOption

Modify a command
To help make your users' interface more streamlined and efficient, you can change various features of
commands.

What can I change?

Icon

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-5


© 2020 Siemens
2. Configuring the user interface

What the command looks like is part of its basic definition.

Command icons can be changed using the Icon Preview section on the Commands page of the
Command Builder.
Placement
Where a command appears is part of its commandPlacements definition.

Command placement can be changed using the Placements section of the Command Builder.
Visibility
When a command appears is part of its commandHandlers definition.

Command visibility can be changed using the Handlers section of the Command Builder.

Note:
Command visibility is determined by a combination of server-side and client-side conditions.

Action
What the command does is determined by its commandHandlers and its action definition.

Command actions can be changed using the Handlers section and the Actions page of the
Command Builder.

Organizing your users' common destinations


What is the home page?

You can use the Active Workspace home page to provide convenient tiles for your users' most commonly
used:

• pages

• objects

• saved searches

Each user will see their home page display the same content regardless of their login device, whether it
is a workstation, a laptop, or a mobile device.

2-6 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Organizing your users' common destinations

How does it work?

The tiles are displayed on the page according to tile collections Each tile collection is associated with a
scope, and can have multiple tiles related to it. The tiles shown to a user are based on a combination of
all of the valid tile collections for their session context. All tiles from each valid collection are combined
onto the display. This may cause the user to see duplicate tiles it the same tile is defined more than one
of their collections. To avoid duplicate tiles, Siemens Digital Industries Software recommends that you
plan your tile collections based on desired visibility. For example, if everyone needs to see a tile, place it
in the Site collection. If you only want certain groups to see a tile, place it in those group collections,
similar with roles, workspaces, and projects. You may also hide tiles in certain collections, overriding a
tile shown in another collection.

The user may have no more than one tile collection of each scope. All users get the tile from the site
collection, then the appropriate group, role, workspace, and project collections are added based on their
session context, and finally tiles in their personal user collection are added. If the user changes their
session context, the home page will be rebuilt using the collections appropriate to their new session
context

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-7


© 2020 Siemens
2. Configuring the user interface

What can I do with home page tiles?

The following tasks require that you are familiar with the object model (following) of the various tile
objects.

• Reset a user's home page changes.

• Pin (add) a tile to a collection.

• Protect a tile from being unpinned.

• Create a new tile.

• Create a new tile collection.

• Create a new type of tile.

Object model

A tile collection object maintains relations to a number of tile objects using Awp0GatewayTileRel
relations, and they have a reference property that points to a single scope object. Each tile object is
created using a tile a template object, which together provide the behavior of the tile.

• Awp0TileCollection
This object is a container for the tiles assigned to a given scope. The scope is attached to the untyped
awp0Scope reference property. The tiles are attached using the untyped Awp0GatewayTileRel
relation property array.

2-8 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Tile reference

• Awp0Tile
These objects are the tiles that appear in the home page. They contain any information that is specific
to the instance, like parameters and data for live tiles.

• Awp0GatewayTileRel (relation object)


This relation object links a tile to a collection. Use its properties to determine which tile group and in
which order the tile will appear when in this collection.

• Awp0TileTemplate
A tile template stores the overall configuration for a specific tile type. When you create a new tile
instance, you must specify which tile template it is based upon. The templates store information
about the tile's action, action type, content names for live tiles, and its icon.

• awp0Scope (relation)
This relation must point to an object that is a valid scope object. This scope determines whether a
user can see the tiles in the collection based on their current session context.

Tile reference

The tile object (Awp0Tile) is the actual tile that a user sees in their home page. Each tile must reference
a single tile template. Together they make up the total functionality of the tile.

Tasks you can do with the tile

• Provide arguments for command tile types

• Change the tile name

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-9


© 2020 Siemens
2. Configuring the user interface

awp0TileId

This is the tile's unique internal identifier. When creating your own tiles, use your custom prefix

awp0DisplayName

This is the tile name that is displayed to the user.

awp0TileTemplate

This is a reference to the tile template that this tile is associated with. This represents the type of tile —
its core functionality. The other tile properties allow tiles that share a tile template to have slightly
different behavior.

awp0Params

If the referenced tile template is a command (action type = 3), the this is where you can provide your
parameters to that command.

Example:
If the tile template's command is to show a create object panel to the user, then you can specify
what types of objects appear on the list. Any types specified and their subtypes will appear.

• Show all item types.

cmdArg=Item

• Show folder and document types.

cmdArg=Folder&Document

• Show 3 specific dataset types.

cmdArg=Text&MSWordx&MSExcel

Tile collection reference

You can create a tile collection for a specific scope. You can then relate tiles to the collection so that
users whose session context include the appropriate scope can see the tiles. Each user's session context
consists of many pieces of information. Of these, the tile collection scopes are concerned with the user
and their current group, role, project, and workspace. The user's home page consists of all the tiles from
up to five tile collections, one from each scope.

2-10 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Tile collection reference

The user's active tile collections have no order of precedence. The tiles from each active tile collections
are displayed. If even one active collection hides a tile, it is hidden regardless of how many other
collections contain that tile.

Example:
In this example, the user's session context is as follows:

Following are the possible tile collection


scopes for this session context:

• user = ed
• project = none
• group = dba
• role = DBA
• workspace = Active Admin

Since this user is not currently part of a


project, there is no valid project-scoped tile
collection. The user's home page tiles will
display the tiles from any of the other four
tile collections, if they exist.

Design Intent:
If the user has only a single workspace available to them based on their current group and role,
the UI will not display the Workspace option in the context control panel since they have no
choice. However, every user will always be part of a workspace, even if they don't know about it.

Tasks you can do with the tile collection

• Reset a user's home page changes


All of the user's changes to their home page are stored on their user-scoped tile collection. To reset
their home page, delete their tile collection.
User tile collections are automatically named as follows: username-TileCollection.

Example:
The user ed logs in, and makes a change to their home page. Active Workspace creates a
awp0TileCollection object named ed-TileCollection, and the awp0Scope property references
ed's user object.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-11


© 2020 Siemens
2. Configuring the user interface

• Pin (add) a tile to a collection

• Assign a scope to a collection

awp0Scope — Scope

In this property, you must add a reference to an object of one of the following types:

User (POM_system_class)

Role (POM_system_class)

Group (POM_system_class)

TC_Project (POM_application_object)

Awp0Workspace (Fnd0UIConfigurationObject)

Tile relation reference

The gateway tile relation (Awp0GatewayTileRel) is the relation type that attaches a tile to a tile
collection. It includes the properties used for determining the tile's layout in this specific collection.

Tasks you can do with the tile relation

• Determine how tiles are grouped

• Determine the order of tiles in a group

• Choose which size the tile will be

2-12 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Tile relation reference

• Hide a tile

• Prevent a tile from being unpinned

awp0Group — Tile Group

You can select which tile group in which this tile appear. There are a few groups provided, but you can
type in your own.

• Main
• Quick Links
• Favorites

awp0OrderNo — Order Number

The tiles will be ordered within the group according to this integer. Leave a gap between numbers to
make it easier to insert and rearrange tiles later on.

The lowest order number within each group will determine the order of the groups themselves.

awp0Size — Tile Size

This integer allows you to choose the size of the tile. You must choose from the list of available sizes as
defined on the tile template.

If you choose By entering The tile is

small 0 1x1

tall 1 1x2

wide 2 2x1

large 3 2x2

awp0Removed — Hidden

Setting this Boolean property to true means that the tile will not appear in the user's home page. You
would do this to override a tile that is included in a collection from another scope. For example, if the
workspace-scoped tile collection contains a certain tile, but the user's current group-scoped tile
collection contained that same tile, but hidden, then the user will not see that tile. If they change to a
different group, and that group's tile collection does not hide the tile, it will appear again.

awp0Protected — Protected

Setting this Boolean property to true means that the tile can not be unpinned through the UI.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-13


© 2020 Siemens
2. Configuring the user interface

Tile template reference

Before you can create a home page tile, you must have a tile template configured the way you want.

Once you have the tile template you want, you can use it to create a new tile.

Tasks you can do with the tile template

• Determine the tile's action type

• Choose the tile icon

• Choose the tile theme

• List available tile sizes

awp0TemplateId — Template ID

The template ID of the tile.

awp0Icon — Icon

awp0IconSource — Icon Source

awp0ActionType — Action Type

Tile templates are used to provide actions to tiles. Following are the available values to use in the
awp0ActionType property.

awp0ActionType awp0Action On click

0 - Default Active Workspace history Go to the Active Workspace history token.


token

1 - External link URL Open the URL in a new tab.

(2 - Static resource) This action style is no longer supported.


Instead, store your file in the Teamcenter
database and pin it to the home page.

3 - Command page;cmdId=commandId Go to the page and then run the command.


Command arguments are provided by the tile.

2-14 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create a new tile using the rich client

Example:
If you want the tiles created from this template to go to the home folder
(Awp0ShowHomeFolder), and then run the show create object command
(Awp0ShowCreateObject):

awp0actionType=3
awp0Action=Awp0ShowHomeFolder;cmdId=Awp0ShowCreateObject;

The types of objects that are available to be created are defined on the tile.

awp0ThemeIndex — Theme Index

A tile's theme index controls which color scheme it uses. They are categorized by their function.

This theme index Is for

0 Admin locations.

1 Pinned objects.

2 Locations.

3 Commands and actions.

4 Saved searches.

awp0Sizes — Tile Supported Sizes

Array of size options available to the tile.

If you choose By entering The tile is

small 0 1x1

tall 1 1x2

wide 2 2x1

large 3 2x2

Create a new tile using the rich client

If you want to create a new tile using the rich client, follow these general steps:

1. Create a new tile template. (optional)

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-15


© 2020 Siemens
2. Configuring the user interface

2. Create a new tile based on a tile template.

3. Relate the new tile to a tile collection.

Create a new tile template

1. Create a new business object of type Tile Template (Awp0TileTemplate)

2. Provide the required properties.

• awp0ActionType: Action type


• awp0Icon: Choose your icon
• awp0Action: Action (optional, based on action type)
• awp0ThemeIndex: Theme index
• awp0Sizes: List of allowed sizes

Create a new tile based on a tile template

1. Search for and copy a tile template (Awp0TileTemplate) object to the rich client clipboard.

2. Create a new business object of type Tile (Awp0Tile)

3. Provide the required properties.

• awp0TileId: Unique tile ID


• awp0DisplayName: Tile display name
• awp0TileTemplate: Paste the tile template from the clipboard
• awp0Params: Provide parameters if the tile template is action type 3, command.

Relate the new tile to a tile collection

1. Search for and copy a tile (Awp0Tile) object to the rich client clipboard.

2. Search for a tile template (Awp0TileTemplate) object.

3. Paste the tile onto the tile template using the Gateway Tile relation. (Awp0GateWayTileRel)

4. Provide the properties on the relation.

• awp0Group: Name of the tile group.


• awp0OrderNo: Order within the tile group.
• awp0Size: Pick the size from the available sizes.
• awp0Removed: Set this to true to hide the tile.
• awp0Protected: Ste this to true to prevent the tile from being unpinned.

2-16 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
What is Active Architect?

Active Architect

What is Active Architect?

Active Architect is a collection of pages that allows you to:

• Easily modify existing command placements, visibility, icons, and so on.

• Quickly create your own commands.

How do I enable it?

You can install Active Architect using either Deployment Center or Teamcenter Environment Manager
(TEM). The following need to be installed:

• Active Workspace Client (prerequisite)

• Active Workspace Microservices (prerequisite)

• Active Workspace Gateway (prerequisite)

• Active Architect Core

• Active Architect→UI Builder

How should I use it?

You should use Active Architect in your development and test environments. This helps improve your
implementation time for UI design changes.

Caution:
Dynamic configuration is designed for your development and testing sites, and Siemens Digital
Industries Software does not recommend using Active Architect or any other dynamic
configuration capabilities in your production environment. Your changes should go through user
acceptance testing before they are implemented into the production environment.

How does it work?

Active Architect consists of two main components:

Gateway The Active Workspace Gateway consists of multiple services and microservices that
combine to provide the underlying architecture which enables dynamic configuration.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-17


© 2020 Siemens
2. Configuring the user interface

This is a web application framework that resides between the Active Workspace client
application and your browser. It intercepts incoming requests and merges your new
and modified content with the main content so you can see your changes without
having to rebuild the web application.

Whenever you want, you can build a new Active Workspace client application that
wraps up all of your changes. You can then publish that new application and begin the
modification process again.
UI Builder The Active Workspace UI builder consists of several main locations that provide the
user interface for dynamic configuration. Dynamic configuration is designed for your
development and testing sites, and Siemens Digital Industries Software does not
recommend using Active Architect or any other dynamic configuration capabilities in
your production environment.

You can use these various pages to visually modify the Active Workspace UI. Included in
Active Architect are:

• Command Builder
Use this location to dynamically modify declarative command definitions in Active
Workspace.
You can search for commands and modify almost all of their attributes — their icon,
title, placement, even the handlers that determine what the command does.
As you make changes you can see your changes live in the client.

• Panel Builder
Use this location to dynamically modify declarative command panel definitions in
Active Workspace.
Is a visual editor that you can use to quickly author declarative panels. It is a
WYSIWYG tool where declarative panels can be created and edited by drag-and-drop
operation.

• Action Builder
Use this location to dynamically modify declarative command panel definitions in
Active Workspace.
Is a visual editor that you can use to quickly author declarative panels. It is a
WYSIWYG tool where declarative panels can be created and edited by drag-and-drop
operation.

Use the command builder to find, modify, or create a command, and then use the
panel builder to create or modify that command's panel.

Command builder

You can use the Command Builder to modify existing commands or create new ones. You can configure
nearly every aspect of the commands for the Active Workspace interface.

2-18 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Command builder

Command Builder communicates with the Gateway Service to store your changes. New content is
stored as an add, while changes to content you don't have write access to is stored as a delta.

The Command Builder is displayed only when you:

• Have the Active Architect UI Builder installed.

• Log on as an administrative user, such as a member of the dba group, for example.

• Activate developer mode by inserting ?dev in the URL.

host:port/?dev

• Are using the Default workspace.

Commands

Use this page to define a command's:

• Localized title

• Extended tool tip view name (and open the view)

• Command type

• Icon

• Placements

• Handlers

Toolbars

Use this page to view existing toolbars, and to:

• Add commands to a toolbar.

• Delete commands from a toolbar.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-19


© 2020 Siemens
2. Configuring the user interface

• Change a command's priority on a toolbar.

• Decide if a command is relative to another command.

Actions

Use this page to:

• View and modify command actions already defined.

• Create new actions for use with commands.

• Edit action properties.

Panel Builder

You can use the Panel Builder to modify the layout of declarative panels.

Panel Builder communicates with the Gateway Service to store your changes. New content is stored as
an add, while changes to content you don't have write access to is stored as a delta.

The Panel builder is displayed only when you:

• Have the Active Architect UI Builder installed.

• Log on as an administrative user, such as a member of the dba group, for example.

• Activate developer mode by inserting ?dev in the URL.

host:port/?dev

• Are using the Default workspace.

On all pages of this location, you can use the Tools panel to change to subpanel Views (and use the
breadcrumb trail to return), and work with the drag-and-drop Elements.

Canvas

2-20 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Action Builder

Use this page to:

• Modify a command's panel.

• Drag components to design the layout.

• Work with localization.

Actions

Use this page to:

• View and modify panel actions already defined.

• Create new actions for use with your panel.

• Edit action properties.

Editor

Use this page to:

• Work directly with the view and view model definition.

Preview

Use this page to:

• See a preview of the panel, including subpanels

Action Builder

Use the Action Builder to view and modify actions for declarative commands and panels.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-21


© 2020 Siemens
2. Configuring the user interface

The Action Builder does not have a location of its own. Instead, it is part of the Command Builder and
Panel Builder locations. Its behavior is the same in both locations.

Command Builder

Action Builder

Opening Panel Builder

Open the Panel Builder in one of several ways:

• Open it without a target panel and use it to follow your main UI choices.

• Create or modify command panels directly by command ID.

• Open it from the Command Builder while editing a command.

After making any changes, save your work by selecting Save Changes .

Follow the UI

In a duplicate browser tab, open the Panel Builder directly from the global navigation toolbar.

2-22 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Opening Panel Builder

As you open the Active Workspace command panels in your original browser tab , the panel builder
detects them and opens the panel definition for that command in the editor .

Open a command panel directly

You can open a command panel directly if you know the command ID. After opening the Panel Builder,
add the following to the URL:

?viewModelId={commandID}

If the command ID you enter does not have a command panel defined for it, Panel Builder creates one.
Of course, if the command doesn't use a panel, then this new panel is not used.

Example:
For example, to open the command panel for the Add command, use Awp0ShowCreateObject
for the command ID.

Open from the Command Builder

When using the Command Builder you can select Open in Panel Builder from the Open command
group.

This sends the command panel view id to the Panel Viewer and opens it for you.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-23


© 2020 Siemens
2. Configuring the user interface

Using Command Builder

Definition

Use this section to define or edit the following pieces of a command:

Title
You can enter the title of the command in the field. This field displays the value for the current
locale. Select Edit Localization to see the table of locales and their values.
Extended Tool Tip
The tool tips for commands in Active Workspace are full declarative pages, complete with a view and
view model. The name of the view file is defined here. There is no requirement on the name of the
view other than it must be unique. It is common practice to use the command ID with a postfix.

In this example, the view is Awp0CopyExtendedTooltip, which is the command ID plus


ExtendedTooltip. The view file name is Awp0CopyExtendedTooltipView.html, and the
view model file name is Awp0CopyExtendedTooltipViewModel.json
Command Type
Choose the type of command. The command types and descriptions are shown on the list.

Icon Preview

2-24 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using Command Builder

Either choose the command's icon from the list of existing icons, or select Upload to provide your own.
Any icon you upload must conform to the requirements for Active Workspace command icons found in
the UI Pattern Library on Doc Center.

https://www.plm.automation.siemens.com/locale/docs/

Placements

Change, remove, or create the command placements here. Add the command to a command group,
give it a priority, or place it relative to another command.

Handlers

Use this page to define the command handlers.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-25


© 2020 Siemens
2. Configuring the user interface

You can Edit the handler's JSON definition directly, or Open in Action Builder to work in the UI.

Select a row to see editing options for existing handlers.

Using Panel Builder

Use the Panel Builder canvas to create or modify a panel using drag-and-drop.

Navigating nested panels

The Panel Builder supports nested panels. To navigate nested panels:

1. The breadcrumb shows you where you are in the nested panel hierarchy. In this example, you are
at the top: Awp0ShowCreateObject.

2. The Views area shows you any subpanels that exists. Selecting one will change to that subpanel.

3. Subpanels are also shown in the main canvas area, and can be selected to change to that subpanel.

2-26 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using Panel Builder

1. In this example, the breadcrumb shows that you are viewing the Awp0AddObject subpanel, and
that it has a parent.

2. The Views area shows you that there are no subpanels.

Drag and drop elements

Drag elements onto the canvas to create new panel widgets, layouts, or properties.

Save your changes using the Save Changes button.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-27


© 2020 Siemens
2. Configuring the user interface

Edit properties

Select a UI element on the canvas to edit its properties in the props panel.

Save your changes using the Update button.

Using Action Builder

Use the Actions page of Command Builder or Panel Builder to define their behavior. If you make any
changes, select Save Action Flow to save your changes.

The Actions panel

1. Find and select the action you wish to view.

2. Use the Actions viewer to scroll and zoom around the action flow. Select an action or operator.

2-28 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using Action Builder

3. Use the Action Properties panel to view the various properties of the selected action or operator.

The Action Palette

1. Select Toggle Action Palette to display or hide this panel.

2. Use Operators for splits and events as well as the start and end of the flow.

3. Use Object Activities to define behavior during the action flow. Drag new activities onto the action
flow to create new nodes.

Creating connections

1. Toggle the Enable connection setting to create flow lines between actions.

2. Draw connections between a circle of one action to a circle on another action.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-29


© 2020 Siemens
2. Configuring the user interface

Editing properties

Use this panel to view or edit properties for the action selected in the action flow. After making changes,
select Update to save the definition.

Dynamic compound properties

Learn about dynamic compound properties

What are dynamic compound properties?

Compound properties are properties that are not defined on the selected object, called the primary
object, but instead defined on a related object, called the secondary object, or on a relation between the
objects.

• Traditional compound properties are static, defined in the Business Modeler IDE, and require a
schema change and deploy.

• Dynamic compound properties are defined using XML files, and are created and modified quickly and
easily.

What are the benefits?

You can:

2-30 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Learn about dynamic compound properties

• Create and modify them with no deployment or downtime required.

• Override the display name of the target property to make column titles unique.

• View, edit, filter, sort, and arrange columns in tables.

• Traverse to n-levels and n-cardinality, as well as both the primary-to-secondary and secondary-to-
primary directions.

• Experience equal or better performance compared to traditional compound properties.

Where can you use them?

You can use dynamic compound properties in tables. Tables that use data providers support dynamic
compound properties. If a table has its own data population mechanism, the dynamic compound
properties are not automatically supported. In addition to tables, you may use dynamic compound
properties in place of single properties in the following places:

• As a property in an XRT style sheet, including object set tables.

• As a property in a column configuration.

• As a source of an object set table..

What about the compound properties created using the Business Modeler IDE?

The compound properties created in the Business Modeler IDE are static and require a TEM or
Deployment Center redeploy because of the change in the data model. Dynamic compound properties
can be used instead of static compound properties in nearly every case.

Note:
However, because dynamic compound properties cannot be indexed by Solr, they cannot be used
for searching, although they will appear in the results.

What else do I need to know?

• When retrieving a string property, Active Workspace displays a string.

• When retrieving a reference property, Active Workspace displays a hyperlink.

• When the retrieved property contains multiple values, Active Workspace displays a comma separated
list.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-31


© 2020 Siemens
2. Configuring the user interface

• When multiple objects match the traversal rule, Active Workspace displays each object's property on a
separate row in the table. If the dynamic compound property it is not displayed in a table, such as in a
summary view, then only the first object's property is displayed.

Dynamic compound property column behavior

When you use Dynamic Compound Properties (DCP) in a table, they do not repeat information that has
already been presented.

Tip:
The following examples use style sheet object sets, but the same principle applies to declarative
tables.

Basic object set behavior

In the following example, there are four document revisions attached to a review object.

An object set lists all DocumentRevision objects attached with the TC_Attaches relation to the review
object.

The object set can easily retrieve properties directly from the table source objects, like object_string,
object_type, and owning_user.

<section titleKey="tc_xrt_Documents">
<objectSet source="IMAN_specification.DocumentRevision"
sortdirection="ascending"
sortby="object_string"
defaultdisplay="tableDisplay">
<tableDisplay>
<property name="object_string"/>
<property name="object_type" />
<property name="owning_user"/>
</tableDisplay>
...

2-32 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Dynamic compound property column behavior

</objectSet>
</section>

The object set shows the objects and their properties.

Basic object set behavior using DCP

The document revision objects have other objects related to them which contain properties that you
may also want to display on your table, such as the author and title from the document item's master
form, and the name of the word dataset.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-33


© 2020 Siemens
2. Configuring the user interface

You can use dynamic compound properties to easily retrieve those properties. For example, follow the
item_tag reference property to the Document item, then the item_master_tag reference property to
the Document Master form to retrieve the Author property.

<tableDisplay>
<property name="object_string"/>
<property name="object_type" />
<property name="owning_user"/>
<property name="REF(items_tag,Document).REF(item_master_tag,Document Master).Author"
titleKey="MyAuthors" />
<property name="REF(items_tag,Document).REF(item_master_tag,Document Master).Title"
titleKey="MyTitle" />
<property name="GRM(TC_Attaches,MSWordX).object_name"
titleKey="MyFilename" />
</tableDisplay>

The other properties can be retrieved in the same manner. Notice that the two properties retrieved from
the form and the single property retrieved from the dataset are listed together in the same row. This is a
convenience feature, but remember that the DCP columns from separate objects (relation paths) don't
have any correlation to each other, except that they were located from the same source object.

Bob has not yet given his document a title.

Object set behavior using DCP with more than one target

When there is more than a single destination object related to the table source object, the table displays
the results, but it does not repeat information from the other DCP columns.

Consider that a document revision may have more than a single word dataset attached.

2-34 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using dynamic compound properties with XRT

Suppose that a second dataset, doc_031491-b, is added to the 031491/A;2-Enchanting document


revision. Given the same column setup as the previous example, the table now looks like this.

A fifth row has been added to account for the fifth dataset. However, there are still only 4 objects that
are the source of the object set. Notice that the last row of the table repeats the data from the original
object set source object it is based from in the first three columns, but does not repeat the information
from the fourth and fifth columns, since they are not part of the same relation path.

Using dynamic compound properties with XRT

To use dynamic compound properties in a style sheet,

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-35


© 2020 Siemens
2. Configuring the user interface

• Use the dynamic compound property syntax within the name attribute.

• Use the titleKey attribute to override the display name, if desired.

For example, when viewing a dataset in a table, you can traverse the specification relation to find the
parent revision's current_name property, and then override the Current Name column title with
something you define in the TextServer.

<property name="GRMS2P(IMAN_specification,ItemRevision).current_name"
titleKey="tc_xrt_ds_name"
/>

If the titleKey string is not found in the TextServer definitions, it will be presented as-is.

Note:
Use titleKey only when traversing to other objects. Do not use titleKey on regular properties.

Using dynamic compound properties with column configuration

To use dynamic compound properties in column configuration definitions,

• Use the dynamic compound property syntax within the propertyName attribute.

• Use the columnName attribute to override the display name, if desired.

For example, when viewing a dataset in a table, you can traverse the specification relation to find the
parent revision's current_name property, and then override the Current Name column title with
something you define in the TextServer.

<ColumnDef objectType="Dataset"
propertyName="GRMS2P(IMAN_specification,ItemRevision).current_name"
columnName="tc_xrt_ds_name"
width="300"
/>

If the columnName string is not found in the TextServer definitions, it will be presented as-is.

Note:
Use columnName only when traversing to other objects. Do not use columnName on regular
properties.

2-36 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Dynamic compound property syntax

Dynamic compound property syntax

To use dynamic compound properties, you need to know four things.

• The traversal method.

• The relation type or reference property type.

• The target object type

• The target property name.

DCP Syntax

Following is a list of the traversal methods, the syntax required, and an example for each.

REF Traversal using the reference property. If the reference property is an array property,
there will be multiple source objects and therefore multiple property values.

REF(referencePropertyName,typeName).propertyName

Example: Traverse from an ItemRevision to an item using the items_tag typed


reference property and return item_id property.

REF(items_tag,Item).item_id
REFBY Traversal using reference property in reverse. If multiple objects are referenced by the
reference property, there will be multiple source objects and therefore multiple
property values.

REFBY(referencePropertyName.typeName).propertyName

Example: Traverse from an Item to an ItemRevision whose items_tag refers to it, and
then return the item_reivision_id property.

REFBY(items_tag,ItemRevision).item_revision_id
GRM Traversal using generic relationship management (GRM) rules, primary-to-secondary.
If the relation has multiple secondary objects, there will be multiple source objects
and therefore multiple property values.

GRM(relationName,typeName).propertyName

Example: Traverse from an ItemRevision to a Dataset using the IMAN_specification


relation and retrieve the dataset_name property.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-37


© 2020 Siemens
2. Configuring the user interface

GRM(IMAN_specification,Dataset).dataset_name
GRMS2P Traversal using generic relationship management (GRM) rules, secondary-to-primary.
If there are multiple primary objects of the relation, there are multiple source objects
and therefore multiple property values.

GRMS2P(relationName,TypeName).propertyName

Example: Traverse from a Dataset to an ItemRevision using the IMAN_specification


relation and retrieve the item_reivision_id property.

GRMS2P(IMAN_specification,ItemRevision).item_revision_id
GRMREL Traversal using generic relationship management (GRM) rules, primary-to-secondary,
but stopping on the relation instead of the other object.

GRMREL(relationName, SecondaryObject Type Name).propertyName

Example: Find the related object and display it as a link. Compare this to GRM above
which displays the related object as a string.

GRMREL(IMAN_specification,Dataset).secondary_object
GRMS2PREL Traversal using generic relationship management (GRM) rules, secondary-to-primary,
but stopping on the relation instead of the other object.

GRMS2PREL(relationName, PrimaryObject Type Name).propertyName

Example: Find the

GRMS2PREL(IMAN_specification,ItemRevision).relation_type

Advanced traversal

Multiple- To perform a multiple-level traversal, concatenate several single-level traversals


level together separated by periods.
traversal
Example: Traverse from an ItemRevision up to its Item, and from there down to the
ItemMaster form, and then retrieve the user_data_1 property.

REF(items_tag,Item).REF(item_master_tag,ItemMaster).user_dat
a_1

Example REF

Original object: ItemRevision

2-38 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Dynamic compound property syntax

Traverse to the:

• Parent item, and then retrieve the item's ID.


• Parent item, and then retrieve the item's name.

Original object: VendorPart


Traverse to the:

• Vendor, and then retrieve the supplier's address.


• Vendor, and then retrieve the supplier's contact name.
• Vendor, and then retrieve the supplier's phone number.

Traverse to the:

• Company location, and then retrieve the company's name.


Change property label to Supplied From.
• Company location, and then retrieve the company's street address.
• Company location, and then retrieve the company's city.
• Company location, and then retrieve the company's country.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-39


© 2020 Siemens
2. Configuring the user interface

Example REFBY

Original object: ItemRevision


Traverse to:

• A containing folder, and then retrieve the folder's name.

2-40 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Dynamic compound property syntax

Example GRM

Original object: ItemRevision


Traverse to a:

• Dataset, and then retrieve the dataset's name.


• Document revision, and then retrieve the document revision's name.
• Document revision, and then retrieve the document revision's release status.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-41


© 2020 Siemens
2. Configuring the user interface

Example GRMS2P

Original object: ItemRevision


Traverse to the:

• Item revision that is based upon this one, and then retrieve that revision's ID.
Change property label to DCP_BasedOn_Rev.

2-42 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Dynamic compound property syntax

Original object: Dataset


Traverse to the:

• Parent item revision, and then retrieve the item ID.


• Parent item revision, and then retrieve the revision's ID.

If the parent item revision is a document revision, then traverse to the:

• Parent document revision, and then retrieve the document's title.


• Parent document revision, and then retrieve the document's author.
• Parent document revision, and then retrieve the document's subject.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-43


© 2020 Siemens
2. Configuring the user interface

Example GRMREL

Original object: ItemRevision


Traverse to the:

• Relation between it and a dataset, and then retrieve a link to the relation type.
• Relation between it and a dataset, and then retrieve the link to the dataset.

Example GRMS2PREL

Column configuration

2-44 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Dynamic compound property syntax

Example multilevel traversal

Original object: ItemRevision


Traverse to the:

• Parent item, and then to the


• Item Master form, and then retrieve the User Data 1 property.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-45


© 2020 Siemens
2. Configuring the user interface

Configuring tables

What types of tables are there?

You will encounter two types of tables in Active Workspace.

1. Declarative tables, typically in the primary work area.

2. Object set tables, exclusively in the secondary work area.

Declarative tables

All tables in the primary work area are part of the declarative page definition, which is detailed in the
view and view model for the page. There are some locations that are completely declarative (no XRT
style sheet) and so even the secondary work area tables are declarative.

In this example, the table on the left (primary work area) is a Table with Summary showing the results
of the search in a table format. You may also see these tables when viewing assemblies or other lists of
objects that are the focus of the page.

In declarative tables, you control which columns are available to your users and in which order they
appear, by using column configuration.

Style sheet tables

The majority of the tables in the secondary work area are part of an XRT style sheet definition, which is
detailed by the page's objectSet element, but some locations are fully declarative and do not use a style
sheet. Examine the HTML UI elements of the table in your browser if you are unsure of the table type.

2-46 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
What types of tables are there?

Example:
Following is an example of an objectSet table viewed using the browser's developer tools. Notice
the use of objectSet and xrt in the class names. These provide clues that the table is an object set
table rendered using a style sheet (XRT).

Your HTML may differ!

In this example, the table on the right (secondary work area) is part of the Summary style sheet for the
selected object on the left. Part of that summary is a page showing Attachments which are displayed in
a table in the FILES section. These types of tables will display properties of (or properties of objects
related to) the object selected in the primary work area.

In object set tables, you control which columns are available to your users and in which order they
appear, by using column configuration.

Tip:
Optionally, you can define an style sheet table's initial configuration by defining it directly in the
objectSet XRT element using property tags. However, if the user makes lasting changes to the
table, a new column configuration is automatically created to manage the table and the objectSet
properties are ignored. If the user uses the Reset command in the Arrange panel , then it
will remove the column configuration and return to the original objectSet definition.
Siemens Digital Industries Software recommends using column configuration exclusively.

Do both types of tables have filtering?

Yes. Both declarative and style sheet tables are capable of using faceted filtering as long as it's enabled
in the table and supported by the data provider.

If you are creating a custom declarative table, set isFilteringEnabled=true in your table definition to
enable filtering. As long as your data provider supports it, filtering will be enabled. Get more information
from the Active Workspace 4.3 UI Pattern Library on Doc Center.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-47


© 2020 Siemens
2. Configuring the user interface

Table properties

Table properties are mentioned here because they look like a table full of many properties, but really
they are a single property that contains a table. They do not have the flexibility nor the configurability of
a true table — like column filtering, column reordering, hiding columns, and so on — and since they are
a property, creating a new one requires schema modifications to your database.

Using column configuration

What is column configuration?

Column configuration:

• Allows you to set a table's initial configuration by site, workspace, group, or role.

• Keeps track of each users' changes to a table's layout.

• Works with both declarative and object set tables.

How do I manage column configuration?

Active Workspace provides two utilities, export_uiconfig and import_uiconfig, that you work with to
specify table column configurations. You can specify normal properties and dynamic compound
properties in your configuration.

How does Active Workspace determine which column configuration to use?

Column configurations have an order of precedence based on their scope. A scope is an instance of the
column configuration which allows each user, or group, and so on to have their own personalized layout
of a table. It is possible that several tables could share a column configuration, and the changes made to
one table would be seen in the others.

GroupMember
This scope is created when a user manually modifies their column configuration. It overrides all
other scopes for that column configuration. This scope cannot be exported, and can only be
removed by:

• The user using the Reset command in the column configuration panel.

• An administrator using delete_uiconfig -column_config_id to remove all scopes for that


configuration.
Workspace
This scope takes precedence over all others, except GroupMember.
Role

2-48 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create or modify a column configuration

Takes effect for a specific role.


Group
Takes effect for a specific group.
Site
This is the default column configuration for the site. This scope will only take effect if there are no
other valid scopes assigned to the user.

Create or modify a column configuration

To modify an existing column configuration or to create a new definition, you must define it in an XML
file and then import it. Creating the XML definition is easiest if you export the existing column
configurations for reference, copy one, and then modify it for import.

Caution:
Siemens Digital Industries Software recommends not moving or replacing the first column in a
tree display. The object icon does not move from the first column.

It is recommended to export and save a copy of the default column configuration for reference before
making changes.

1. Use the export_uiconfig utility to generate an XML file containing the column configuration used
by Active Workspace.

2. Examine the column configuration definitions in the exported XML file. The table definitions
shown in the file depend on the features you have installed for Active Workspace. For example, if
you have the Active Content and Requirements features installed, the generated file contains table
definitions for these features.

3. Use the exported XML file as reference to create the column configuration for your Active
Workspace table.

Save the original export for reference and backup.

4. Use the import_uiconfig to import your new XML file.

You determine the scope to which your new definitions apply when you import the XML file.

Tip:
When importing or merging your column configuration, remember that any user that has
customized their configuration has their own GroupMember column configuration and they will
not see your new configuration until they use the Reset command in the Arrange panel .
You may delete all configurations for your target scope before you import by using the
delete_uiconfig utility.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-49


© 2020 Siemens
2. Configuring the user interface

Your column configuration definition gives you the following benefits. You may:

• Determine which properties are available to the table.


Provide all possible properties you want the user to have access to. This is an exhaustive list. There is
no way for the user to add properties that aren't defined in the column configuration.

• Choose the default order of the columns


The user may make changes to your order to suit their viewing style. This creates a GroupMember
column configuration definition for that user.

• Allow certain columns to be filterable


A filterable column gives the user the ability to reduce the number of rows they see based on their
criterion. They cannot filter on a column that isn't defined as being filterable. Dates and numbers are
automatically detected and a range will be available for the user, but all other data types will be
treated as text.

Note:

Column filtering is available in the Home folder primary work area tables, and in all style sheet
tables.

• Turn certain columns off by default


When you set a property to hidden=true, that property is available to the user if they want to add it,
but it is not displayed by default. While a property remains hidden, it is not retrieved from the
database, which improves table rendering time.

Merging a column configuration

Use the import_uiconfig utility with the -action=merge option to add new columns to an existing
configuration without having to redefine the existing columns. Any columns you specify will be
appended to the end of the table. If they already exist in the definition, they will be moved into the new
position.

Export and save a copy of the default column configuration for reference before making changes.

If there were an existing column configuration in the database with four columns defined as follows:

...
<ColumnConfig sortDirection="Descending" sortBy="1" columnConfigId="sampleColConfig">
<ColumnDef propertyName="object_name" ... />
<ColumnDef propertyName="release_status_list" ... />
<ColumnDef propertyName="fnd0InProcess" ... />
<ColumnDef propertyName="ics_subclass_name" ... />

2-50 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Merging a column configuration

</ColumnConfig>
...

You could create a new XML definition containing two columns and then merge this into the existing
configuration:

...
<ColumnConfig sortDirection="Descending" sortBy="1" columnConfigId="sampleColConfig">
<ColumnDef propertyName="release_status_list" ... />
<ColumnDef propertyName="object_desc" ... />
</ColumnConfig>
...

If you then export this configuration, your final column configuration would look as follows:

...
<ColumnConfig sortDirection="Descending" sortBy="1" columnConfigId="sampleColConfig">
<ColumnDef propertyName="object_name" ... />
<ColumnDef propertyName="fnd0InProcess" ... />
<ColumnDef propertyName="ics_subclass_name" ... />
<ColumnDef propertyName="release_status_list" ... />
<ColumnDef propertyName="object_desc" ... />
</ColumnConfig>
...

The first configuration file contained four column definitions and the second contained two. The final
configuration only contains five column definitions because the release_status_list column was
present in both original XML files and is not duplicated, so it only exists once in the final column
configuration. Notice how it moved from being the second column to being the fourth.

You can also use the merge option to change the hidden, filterable, or width options for a column, but
because of the column re-ordering, you might consider importing without using the -action=merge
option so you can replace the configuration completely.

Tip:
When importing or merging your column configuration, remember that any user that has
customized their configuration has their own GroupMember column configuration and they will
not see your new configuration until they use the Reset command in the Arrange panel .
You may delete all configurations for your target scope before you import by using the
delete_uiconfig utility.

Caution:
Siemens Digital Industries Software recommends not moving or replacing the first column in a
tree display. The object icon does not move from the first column.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-51


© 2020 Siemens
2. Configuring the user interface

Syntax for column configuration

The XML file for column configuration consists of any number of column configurations and column
configuration references. A column configuration specifies which columns are displayed, while a
column configuration reference simply points to an existing column configuration, allowing multiple
tables to share a common configuration.

Following is the general structure of this file:

<Import>

<Client abbreviation="" name="">


<ClientScope hostingClientName="" name="" uri="">
<ColumnConfig columnConfigId="" sortBy="" sortDirection="">
<ColumnDef objectType="" propertyName="" width=""/>
<ColumnDef objectType="" propertyName="" width=""/>
...
</ColumnConfig>
</ClientScope>
</Client>

<Client abbreviation="" name="">


<ClientScope hostingClientName="" name="" uri="">
<ColumnConfigRef columnConfigId=""/>
</ColumnConfig>
</ClientScope>
</Client>

...

</Import>

Within the XML file, the following elements are used:

<Import>

The root element for this file. There are no attributes.

<Client>

This element contains the name and abbreviation of the client which will use this definition. At this
time, the only valid client is Active Workspace.

abbreviation AWClient
name AWClient

<ClientScope>

This element wraps the column configuration and identifies the URI to which it applies.

2-52 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Syntax for column configuration

hostingClientName Reserved for future use.


name The name of the table you are configuring. This field is populated on
export; it is not processed during import.
uri Matches the clientScopeUri from a declarative state definition or the
objectSetUri from an object set's table display definition.

To discover a state's client scope URI, examine the page's CTX object.

Example:
In this example, the My Tasks sublocation has a clientScopeURI of
fnd0mytasks.

<ColumnConfig>

When the client asks for a column configuration, this element defines the response. Internally, it either
contains a list of column definitions, or a reference to another column configuration. Either way, the
client does not know the difference.

columnConfigId The unique identifier of the configuration being defined.


sortBy Specify the column by which the table is initially sorted. Valid values are:

0 | 1 | {null} Choose the first column.


2…n Choose another column by number. The third column is "3"
for example.
-1 Let the data provider decide.

sortDirection Ascending | Descending

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-53


© 2020 Siemens
2. Configuring the user interface

<ColumnDef>

This element specifies which property is to be displayed and must only be contained within a
<ColumnConfig> element. Each row of this column is a property taken from an object in the table.

columnName The TextServer key for the display name of the column. If this key string is
not found in by the TextServer, it will be displayed as-is by the UI.

Caution:
Only use custom column names for dynamic compound properties.
Do not override the names of real properties.

filterable Controls filtering for this column. The type of filter shown to the user will
depend on the data type of the column. Dates and numbers are
automatically detected and will allow a range filter, but everything else is
treated as a string.

The default is true. Filtering is on by default.

<ColumnDef columnName="object_name"
filterable="false" ... />
hidden If set to true, this column will not be displayed, but will be available for the
user to display if they want.

The default is false. Columns are not hidden by default.

<ColumnDef columnName="object_name"
hidden="true" ... />
objectType The type of object for which this column is valid. The column will only
appear if every object in the table is a valid objectType or one of its
children in the server-side POM.

Example:
ItemRevision will display Documents, Designs, Parts, and so on,
but not files. Dataset would show all file types, but not item
revisions. WorkspaceObject shows all normal objects, like item
revisions, files, folders, and so on.

propertyName The name of the property whose value will be displayed.


width The initial width of the column in pixels.

2-54 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example of column configuration

Caution:
Avoid specifying the same column property twice if the types have a parent-child relationship.
Table columns do not display duplicate names in column definitions.
For example, if Schedule is a child type of MyItem, and the item_id is defined for both the
MyItem parent type and the Schedule child type, only one of these columns can be displayed in
the table.

Tip:
Active Workspace is designed primarily to display item revisions. If you decide to display an item,
the item_id property of the item will not be available by default. You must add the
awp0Item_item_id property to your column configuration XML file.

<ColumnConfigRef>

Use this tag instead of <ColumnConfig> when you want to share an existing configuration. The same
configuration will be shared by all URI locations that reference it. Changes made to the configuration
from one URI location will be reflected in all other locations.

columnConfi Specify the columnConfigId of the configuration to be shared.


gId

Example of column configuration

How do I know which column configuration is being used?

In this example, you search for hard drive and then examine the search results when viewed in the table
format.

There are two pieces of information you need to determine which column configuration is used to
display the table; your current page and the configuration identifier. Both can be retrieved by using your
browser's developer tools to examine the context object.

• clientScopeURI
The current page, or client scope URI in this example, it is the Awp0SearchResults URI.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-55


© 2020 Siemens
2. Configuring the user interface

• columnConfigId
The column configuration identifier is part of the message for the network call that populates the
table. In this example, the performSearchViewModel3 call shows the searchResultsColConfig
identifier.

You might see a different version of the performSearchViewModel call, but the content will be
similar.

The column configuration

With the client scope URI and the ID of the column configuration, you can locate the definition of the
column configuration. Column configurations can be imported and registered for the Site, Group, Role,
and Workspace levels in addition to the Groupmember level created by the user in the UI. Be sure to
export the right one. Following is an example of the search result column configuration shown in the
exported XML file:

<Client abbreviation="AWClient" name="AWClient">


<ClientScope hostingClientName="" name="Results" uri="Awp0SearchResults">
<ColumnConfigRef columnConfigId="searchResultsColConfig"/>
</ClientScope>
</Client>

2-56 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example of column configuration

The column configuration associated with the search result table is a reference to another column
configuration, the Awp0ObjectNavigation URI. This is the configuration that you see in the search
results table. Following is an example of the object navigation column configuration:

<Client abbreviation="AWClient" name="AWClient">


<ClientScope hostingClientName="" name="Navigate" uri="Awp0ObjectNavigation">
<ColumnConfig columnConfigId="searchResultsColConfig" sortBy="1"
sortDirection="Descending">
<ColumnDef columnName="object_name" objectType="WorkspaceObject"
propertyName="object_name"
width="300"/>
<ColumnDef columnName="object_desc" objectType="WorkspaceObject"
propertyName="object_desc"
width="300"/>
...
</ColumnConfig>
</ClientScope>
</Client>

There are 16 columns defined in this configuration, from object name and description, down to
published object creation date and type. They will appear in this order by default in the client.

Tip:
The object navigation page is the generic page used by Active Workspace when displaying a
generic object, like a folder for example. These two pages share a column configuration. When
one is modified, the other is affected as well.

Search results with dissimilar types — Primary Work Area

The search produced multiple results, shown here in the table format. The objects returned are of
differing types, some are item revisions, some are files, and so on.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-57


© 2020 Siemens
2. Configuring the user interface

Even though there are 16 columns defined for this column configuration, you only see 6. That is
because the other 10 properties do not exist on all the different object types. For example, files do not
have an item ID or revision ID property, so that column is not displayed.

Search results with dissimilar types — Object Set

When using column configuration in an object set, all columns are shown regardless of type.

Search results with a common type

If you filter the results to show only Item Revisions, the ID and Revision columns appear, because all
the listed objects have that property.

2-58 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring columns using objectSet properties

User modification of column configuration

After the column configurations have been created and stored in the system, the end user can modify
their column layout to a certain extent using the Active Workspace interface. They can:

• Change the column order.

• Change the sorting column and direction.

• Hide certain columns.

• Change where the column freeze begins. Anything to the right of the frozen columns will scroll
horizontally if needed. The frozen columns will stay in place when the user scrolls to the right.
If the user does change which column is frozen, this change does not persist. If they navigate away
and come back, or even refresh the page, the frozen column returns to its original definition.

They can not:

• Add columns that are not present in the original definition.

• Reset more than one groupmember configuration at a time.

Tip:
All of the user's changes are stored in the Teamcenter database at the groupmember level (the
specific combination of user and their group/role). The import_uiconfig and export_uiconfig
utilities do not work with groupmember configurations. To clear a groupmember configuration for
a page, the user must go to the page as the correct group and role, and then use the Arrange
panel to Reset their configuration.
You can delete all configurations for all users for a specific page or scope by using the
delete_uiconfig utility.

Using the objectSet element

Configuring columns using objectSet properties

Tables placed in the UI by style sheets (using the objectSet element) can only be located in the
secondary work area. A few of the most common examples of object set tables are:

• Files attached to the selected object.

• Related Simulation results.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-59


© 2020 Siemens
2. Configuring the user interface

Using object sets

The source attribute of an object set not only filters all related objects down to the few you wish to
highlight for a given purpose, showing the user only what they need to see at that time, but also
restricts the creation of objects and their relations to the source combinations.

Example:
You want to create a table in which the user will only see word files that have the Attaches
relation and PDF files that have the manifestation relation.

source="TC_Attaches.MSWordX,IMAN_manifestation.PDF"

This also has the benefit of showing the user only the Word and PDF types when they add new
objects to the table. If the user chooses to add a word object to the table, then they can only
choose the Attaches relation.

The column layout of object set tables is defined and controlled using column configuration. However,
you can optionally define their initial layout using the property element.

Column configuration

To configure your objectSet table's columns using column configuration, add the objectSetURI attribute
to the table display element, and then treat it like a declarative table for everything else. Use your
objectSetURI as if it were a clientScopeUri when you define the column configuration.

<tableDisplay objectSetUri="myObjectSetTableConfig">
</tableDisplay>

The column configuration will provide the table's initial property layout and track any changes the user
makes to the table in the UI, like arranging or hiding columns for example.

2-60 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
How are objectSet tables rendered?

Property element

Optionally, you can define a style sheet table's initial configuration by defining it directly in the
objectSet XRT element using property tags. However, any changes to the table made by the user are
then managed by column configuration.

Siemens Digital Industries Software recommends using column configuration exclusively.

How are objectSet tables rendered?

When Active Workspace uses XML rendering templates (XRT), also known as style sheets, to render a
table of objects and their properties, it takes its cues from the <objectSet> element.

How does an objectSet work?

The objectSet XRT element models its table data using several runtime business objects, organized by
the Awp0XRTObjectSet object.

objectSet rendering example

You want to create a table to display the following when a user selects a DocumentRevision:

• Any word files attached using the Attaches relation.

• Any PDF files attached using the Manifestation relation.

You create a style sheet entry for the DocumentRevision with an objectSet which uses
TC_Attaches.MSWordX and IMAN_manifestation.PDF as the sources. Following is a simplified
example:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-61


© 2020 Siemens
2. Configuring the user interface

When a user selects a document revision, Active Workspace renders the associated table as follows:

1. Active Workspace creates an Awp0XRTObjectSet object, along with an


Awp0XRTObjectSetColumn object for each property to be displayed, in this case, three.

→ Awp0XRTObjectSetColumn → object_string
Awp0XRTObjectSet → Awp0XRTObjectSetColumn → object_type
→ Awp0XRTObjectSetColumn → owning_user

2. It then creates an Awp0XRTObjectSetRow for each object found that matches the source, in this
case, two. Each row references its target object with the awp0Target property.

→ Awp0XRTObjectSetRow → Sample Document (word)


Awp0XRTObjectSet
→ Awp0XRTObjectSetRow → Sample Document (PDF)

3. Each row retrieves its target object's icon along with the properties specified by the column objects.

Awp0XRTObjectSetRow → Sample MS WordX cfx5, cfx5 (cfx5)


Document

Awp0XRTObjectSetRow → Sample PDF cfx5, cfx5 (cfx5)


Document

4. The resultant table is displayed to the user.

2-62 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
objectSet tables and data providers

Caveats

The Awp0XRTObjectSetRow displays the base type icon of the awp0Target object. It does not consider
icons assigned declaratively. If you wish to display a different icon, you may dynamically assign an icon
to the Awp0XRTObjectSetRow based on what it is pointing to.

The Awp0XRTObjectSetRow does not have access to properties not defined at the source level. For
example, if you specify:

source="IMAN_reference.ItemRevision"

The table will display all ItemRevision objects attached as a reference, including any child types like
DocumentRevision, DesignRevision, and so on. However, if you added the following to the table's
properties:

<property name="DocumentTitle"/>

It would not be able to find it on related DocumentRevisions, because that property is not defined a the
ItemRevision level. In order for the object set to know about the property, you would have to modify
the source to include the object where the property is defined.

source="IMAN_reference.ItemRevision,IMAN_reference.DocumentRevision"

objectSet tables and data providers

Data providers

Data providers are subclasses of the Fnd0BaseProvider business object. In Active Workspace, they can
be specified as the source of an objectSet.

<objectSet source="< Data provider >.< Filtered BO >" defaultdisplay="..." sortby="..."


sortdirection="...">

Example

This example shows an objectSet table configured to show parent partitions.

<objectSet source="Fgf0ParentPartitionsProvider.Ptn0Partition"
defaultdisplay="listDisplay"
sortby="object_string"
sortdirection="ascending">

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-63


© 2020 Siemens
2. Configuring the user interface

objectSet tables and default relations

Default relations

In Active Workspace, when a user creates a new attachment using a table, the relation is chosen using a
combination of Teamcenter's default paste relation preferences and the table's definition.

The source="..." attribute of the <objectSet> tag not only filters the related objects which are displayed
on the table, but also defines the list of allowed relations for new objects. Object-relation pairs that are
not defined in the <objectSet> are not allowed when adding to a table.

Following is the priority used when determining the relation of a newly attached object.

1. If the type1_type2_default_relation preference exists, and the relation specified in the value also
matches a relation defined in the table, then use it.

2. If not, then check the type1_default_relation preference. If it exists and its value specifies a
relation defined in the table, then use it.

3. If neither of the preceding were successful, then set the relation to the first value defined in the
table.

Example

In the following scenarios, a table is defined on an ItemRevision business object as shown,

<objectSet source ="IMAN_reference.Dataset,IMAN_specification.Dataset,


IMAN_manifestation.Dataset,IMAN_Rendering.Dataset"

and the following preferences are set.

ItemRevision_default_relation = IMAN_specification
ItemRevision_DirectModel_default_relation = IMAN_Rendering
ItemRevision_MSWORD_default_relation = TC_Attaches

• Scenario 1 — A UGMaster is added.

1. There is no ItemRevision_UGMaster_default_relation preference defined.

2. The value of ItemRevision_default_relation is IMAN_specification. This relation combination


is allowed by the table (IMAN_specification.Dataset), so this is chosen to be the relation
of the new dataset.

• Scenario 2 — A DirectModel is added.

2-64 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
objectSet tables and default relations

1. The value of ItemRevision_DirectModel_default_relation is IMAN_Rendering. This relation


combination is allowed by the table (IMAN_Rendering.Dataset), so this is chosen to be the
relation of the new dataset.

• Scenario 3 — An MSWORD is added.

1. The value of ItemRevision_MSWORD_default_relation is TC_Attaches. This relation


combination is not allowed by the table.

2. The value of ItemRevision_default_relation is IMAN_specification. This relation is allowed by


the table (IMAN_specification.Dataset), so this is chosen to be the relation of the new
dataset.

User modifiable relations

To allow the user to modify the relation of an attachment in an objectSet, you must add the
modifiable="true" attribute to the relation property tag. For example:

<objectSet source="IMAN_specification.Dataset,IMAN_reference.Dataset,
IMAN_manifestation.Dataset, IMAN_Rendering.Dataset"
defaultdisplay="listDisplay" sortby="object_string" sortdirection="ascending">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="relation" modifiable="true"/>
<property name="release_status_list"/>
</tableDisplay>
<thumbnailDisplay/>
<listDisplay/>
</objectSet>

Doing this allows the user to change the relation type using a drop-down list.

To disable this ability, remove the modifiable attribute from the property tag.

<objectSet source="IMAN_specification.Dataset,IMAN_reference.Dataset,
IMAN_manifestation.Dataset, IMAN_Rendering.Dataset"
defaultdisplay="listDisplay" sortby="object_string" sortdirection="ascending">
<tableDisplay>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-65


© 2020 Siemens
2. Configuring the user interface

<property name="object_string"/>
<property name="object_type"/>
<property name="relation"/>
<property name="release_status_list"/>
</tableDisplay>
<thumbnailDisplay/>
<listDisplay/>
</objectSet>

objectSet tables and secondary-to-primary relations

Normally when retrieving related objects, you start with the primary object, and look for a secondary
object attached with a certain relation. This is called a primary-to-secondary relation. When defining the
source of an objectSet, this is the default behavior.

Secondary-to-primary relations

Active Workspace also allows you to retrieve a related primary object from a secondary object. This uses
the same relation but in the opposite direction, and is called a secondary-to-primary relation (S2P), also
commonly called where-referenced information.

Retrieving primary related objects in an objectSet table is accomplished by adding S2P: in front of the
relation type.

<objectSet source="S2P:relation.object, ..."

Example

If there is a Design Revision which has a Document Revision related to it using the References
relation, you can show the related Design Revision in an objectSet from the Document Revision XRT
as follows:

<objectSet source="S2P:IMAN_reference.Design Revision"

Using dynamic compound properties with objectSet

If you want to display a table of properties from objects that are more than a single relation away, you
must use dynamic compound properties (DCP) in your source attribute.

You can use any combination of DCP and regular source clauses in a comma-separated list. Pagination,
sorting, filtering, and editing are supported on tables using DCP source attributes.

Warning:
Table authoring commands like Add to, Paste, Delete, and so on are not supported when you use
DCP in your source attribute. Sometimes these commands might still be available on the right wall
toolbar, but they are not supported.

2-66 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using dynamic compound properties with objectSet

Because the source attribute is expecting objects, the DCP must point to an object, relation, or a
reference to an object. It cannot point to a regular property.

Example:
SUPPORTED - A DCP source pointing to a typed or untyped reference:

<objectSet source="REF(items_tag,Item).owning_user" >

This returns the owning_user typed reference which would point to a User object.

Example:
SUPPORTED - A DCP source resolving a reference, pointing to the target object, but without a
property at the end:

<objectSet source="REF(items_tag,Item).REF(owning_user,User)" >

This returns the User object for the owner of the item, but doesn't specify a property.

Example:
NOT SUPPORTED - A DCP source pointing to a normal property. This is how DCP is normally used to
find properties.

<objectSet source="REF(items_tag,Item).REF(owning_user,User)
.user_name" >

This returns user_name, which is a string value from the User object, and will be ignored by the
object set.

Supported syntax

You can use the following DCP syntax types in your source attribute, including multiple-level traversal:

• Typed Reference property (REF)

• Back pointer reference property (REFBY)

• GRM Primary to Secondary (GRM)

• GRM Secondary to Primary (GRMS2P)

• Properties on Relation (GRMREL or GRMS2PREL)

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-67


© 2020 Siemens
2. Configuring the user interface

Full example

In this example table, from the item revision, you want to show the datasets of related documents
without forcing the user to navigate through the document revisions.

Follow any specification relations to any document revisions, then follow any attaches relations to any
datasets.

<objectSet
source="GRM(IMAN_specification,DocumentRevision).GRM(TC_Attaches,Dataset)" ...>
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
...
</tableDisplay>
...
</objectSet>

2-68 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Table properties (are not objectSets)

Your table shows the properties of all datasets attached to documents that are related using the
specification relation.

Table properties (are not objectSets)

A table property might seem like a table containing multiple properties, but it is actually a single
property containing a table of values.

Table A table property is a persistent table of property values stored on a single object. You
property can think of it like a spreadsheet as a single property.

Object set An object set is a runtime table of properties where each row is a set of properties from
a separate object.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-69


© 2020 Siemens
2. Configuring the user interface

Note:
Information on creating table properties is found in the Business Modeler IDE Help.

Example

You want to display a table property c9myTestTable that is defined on a custom business object
C9TestItemRevision..

The individual properties are stored on a child of the Fnd0TableRow object, in this example
C9myTableRowObject.

To display the table property in Active Workspace, use the tableProperty element in your custom Active
Workspace summary style sheet. For example:

<page title = "Table Property" visibleWhen="object_type==C9TestItemRevision">


<section title ="Employee Information - Definition Details">
<tableProperty name="c9myTestTable">
<property name="C9Title"/>
<property name="C9FirstName"/>
<property name="C9LastName"/>
<property name="C9EmployeeID"/>
<property name="C9LoginID"/>

2-70 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using XML rendering templates (XRT) with Active Workspace

</tableProperty>
</section>
</page>

Configuring page layout

XRT information specific to Active Workspace

Using XML rendering templates (XRT) with Active Workspace

XRT files use the XML format. They are used to configure layout in Teamcenter clients, including Active
Workspace, based on object type, group, and role. XRT files are also commonly referred to as style
sheets; however, they neither follow CSS or XSL standards, nor do they perform transformations.

In Active Workspace, XRT files control areas such as the secondary work area and the tools and
information panel.

Active Workspace style sheet preference names follow this format:

AWC_<type-name>.*RENDERING

The value of the preference points to a style sheet dataset name, which is used by the Active Workspace
XRT renderer to produce the UI. Create a copy of an OOTB style sheet for your custom layout, and then
modify or override the preference value to use your new dataset instead. Use the XRT Editor to assist
in editing style sheets.

Considerations for using XRTs in Active Workspace

Although Active Workspace uses XRTs like the other clients do, there are some differences:

• Active Workspace XRT rendering preferences include AWC_ as a prefix to the preference name,
allowing for the assignment of style sheets that are unique to Active Workspace.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-71


© 2020 Siemens
2. Configuring the user interface

For example, normally the ItemRevision.SUMMARYRENDERING preference registers the XRT used
for the summary display for the ItemRevision in all clients, but there is also an
AWC_ItemRevision.SUMMARYRENDERING preference that overrides it for the Active Workspace
client, allowing a separate XRT for Active Workspace. The Active Workspace XRTs typically have an
Awp0 prefix when compared to the normal XRTs.

• Layout of Active Workspace XRTs in landscape mode is wide compared to the rich client and thin client
and, therefore, requires multiple columns.

• When creating copies of the out-of-the-box XRT files for Active Workspace, create the XRT files with
unique names and assign them using the AWC_<type-name>.*RENDERING preferences.

• Active Workspace can share XRT files with the rich client for the Summary tab. The default summary
XRT preference for Active Workspace is AWC_ItemRevision.SUMMARYRENDERING. If you remove
this preference, Active Workspace uses the default summary XRT preference used by the rich client
and thin client: ItemRevision.SUMMARYRENDERING.

• If you do not want to use the header on the overview page, you can remove it from the XRT files used
by the AWC_<type-name>.SUMMARYRENDERING preferences.

• Active Workspace supports:

• Multiple pages using visibleWhen.


• A single level of columns, sections, and separators.
• You can use a percentage in the width attribute for the <column> XRT element. The default is
100% divided by the number of columns.

<column width="30%" ... />

This is always a percentage, even if the percent sign is not used. This is a percentage of the overall
screen width. When the column percentages add to less than 100%, Active Workspace will not fill.
When the column percentages add to more than 100%, Active Workspace will place overflow
columns on a new row.
• Labels
• Breaks

• The following are not currently supported in Active Workspace:

• Custom rendering hints

• Multiple levels of columns, sections, and separators.

• conditions, GoverningProperty, and Rule tags.

• Using the visibleWhen attribute with preferences.

• Using the visibleWhen attribute with multiple-level property traversal.

2-72 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure the information panel using XRTs

• Using the following renderingHints with array properties:

■ checkbox
■ toggle
■ radioButton

Note:
Embedded task actions replace the Perform Task button in the Task Overview. For customers
with custom stylesheets that wish to retain the perform command in place of the embedded
actions set the WRKFLW_Hide_Perform_Task_Command_ToolAndInfo preference to false. The
default value is true.

Configure the information panel using XRTs

The Active Workspace information panel displays details about the opened object and is accessed by
clicking the button.

Information panel

You use XRT datasets to configure the layout of the information panel. By default, there is an XRT
dataset for WorkspaceObject and ItemRevision object types. To modify the information displayed in
the information panel for other types, you must create an XMLRenderingStylesheet dataset, attach an
XML file to it, and then create a preference to point to the dataset. The XRT is registered using the
AWC_<type-name>.INFORENDERING preference.

1. Create a dataset of type XMLRenderingStylesheet.

Tip:
You can copy an existing XRT dataset and rename it rather than create a new one. Find
existing XRT datasets in the rich client by searching for XMLRenderingStylesheet dataset
types. Then copy an existing XRT dataset by selecting it and choosing File→Save As. Make
sure you change the named reference file attached to the dataset to point to a unique file
name.

2. Attach the XML file to the new dataset as a named reference.


Siemens Digital Industries Software recommends that your XRT be set up to display content in the
information panel as follows:

• Limit to one or two pages

• Limit to one column per page

• Use list displays for object sets

Keep in mind the following:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-73


© 2020 Siemens
2. Configuring the user interface

• Keep it simple. Do not make the layout the same as the summary or overview pages.

• Active Workspace supports multiple pages with the visibleWhen tag, sections, and objectSet
tables (use the tile/list mode to fit the narrow display).

• The XRT used in the user interface is based on the selected object’s hierarchy. For example, if you
select an Item object type, but it does not have an XRT associated with it, the XRT for
AWC_WorkspaceObject.INFORENDERING is used because an Item is also a WorkspaceObject.

3. Use the rich client to create a preference using the following parameters:

• Name: AWC_<type-name>.INFORENDERING, for example,


AWC_WorkspaceObject.INFORENDERING.

• Value: Name of the dataset created in step 1.

• Scope: Site preference.

Create Active Workspace-specific style sheets

If you want to have different style sheets in Active Workspace than you have in other Teamcenter
clients, you can create AWC_ preferences in the rich client to tell Active Workspace which style sheet to
use. This has no effect on the other clients or on any customer-created style sheets.

1. Create a dataset with a type of XMLRenderingStylesheet.

2. Attach the XRT style sheet to the new dataset as a named reference.

3. Use a text editor to edit the style sheet as necessary.

4. Create a preference in the rich client using the following parameters:

• Name:
AWC_<type-name>.SUMMARYRENDERING
AWC_<type-name>.CREATERENDERING
AWC_<type-name>.INFORENDERING
AWC_<type-name>.REVISERENDERING
AWC_<type-name>.SAVEASRENDERING
For example:

AWC_WorkspaceObject.INFORENDERING

• Value: Name of the dataset created in step 1.

• Scope: Site preference.

2-74 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Modular style sheets

When rendering style sheets, Active Workspace first searches for AWC_<type_name>.
[SUMMARYRENDERING, CREATERENDERING, ...]. If no match is found, it searches for <type-name>.
[SUMMARYRENDERING, CREATERENDERING, ...]. If it still does not find a match, it continues with the
standard lookup mechanism for style sheets.

It is possible to register style sheets to a specific location, sublocation, or object type in Active
Workspace.

Use the following format to create the registration preferences:

type.location.sublocation.SUMMARYRENDERING

• type specifies the type of object. PartRevision or DesignRevision, for example.

• location specifies the location in the UI. For example, if the context is
com.siemens.splm.clientfx.tcui.xrt.showObjectLocation, then the location is
showObjectLocation.

• sublocation specifies the sublocation in the UI. for example, if the context is
com.siemens.splm.client.occmgmt:OccurrenceManagementSubLocation then the
sublocation is OccurrenceManagementSubLocation.

As with normal registration preferences, the value of this preference is the name of the dataset. When
rendering a page, the system will search for the most specific case to the most general.

• type.location.sublocation.SUMMARYRENDERING

• type.location.SUMMARYRENDERING

• type.SUMMARYRENDERING

If none of the above preferences are found for the object, the immediate parent type will be searched in
the same manner. This process continues until a match is found.

Modular style sheets

It is possible to use the <inject> tag to refer to another XMLRenderingStylesheet dataset that
contains a block of XML rendering tags. This XML rendering style sheet would be incomplete on its own,
normally containing only a single page or section, but they allow a modular approach to style sheet
design and maintenance.

In the example below, a second XMLRenderingStylesheet dataset exists with the name myXRTblock.

There are two methods of specifying which dataset is to be used.

• Directly, by referring to the name of the XMLRenderingStylesheet dataset.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-75


© 2020 Siemens
2. Configuring the user interface

<inject type="dataset" src="myXRTblock"/>

• Indirectly, by referring to a preference which contains the name of the dataset.

<inject type="preference" src="additional_page_contributions"/>

Then create the additional_page_contributionspreference, containing the value myXRTblock.

If the preference contains multiple values, then each dataset will be located and injected in order.

As well formed XML files must have a root node in order to be well-formed, the XRT you inject must be
wrapped in a <subRendering> element.

<subRendering>
<label text="This text will get injected."/>
</subrendering>

Someone leveraging injection must think about the resulting XML file, so that the resulting XRT will be
correct. The injection mechanism does not make any assumptions about where it is injecting data.

Tip:
• Using a large amount of <inject> elements in your XML rendering templates can negatively
impact the performance of the client.

• Avoid using visibleWhen to check object types in an XRT. The object type is determined when
the XRT is registered. Do not attempt to create a single, over-arching XRT for all object types.

Conditional content

visibleWhen

Active Workspace supports the visibleWhen attribute for the following tags:

• <content>

• <page>

Active Workspace processes visibleWhen in the following manner:

Property type Exact match NULL


string, char, note Yes Yes
int, short, double, float
logical Yes (see below) Yes
date, typed reference, Not available Yes

2-76 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Hidden required properties

Property type Exact match NULL


untyped reference

Note:
To test logical (boolean) values, compare to true first, then if not true and not NULL, it is false. Use
Y, YES, T, TRUE, 1, or ON to match true.
Verify the property type you are comparing. Some object properties, like Owning User for
example, are reference properties, not strings.

<content>

When writing XRT files for Active Workspace, you have access to a <content> tag. This wrapper tag
allows you to use the visibleWhen attribute.

<content visibleWhen=[condition]>
...
</content>

These content tags can be nested to provide flexibility and control over the final displayed information.

<content visibleWhen=[condition 1]>


<...>
<content visibleWhen [condition a]>
...
</content>
<content visibleWhen [condition b]>
...
</content>
</...>
</content>

<page>

Examples of visibleWhen are shown in Teamcenter's <page> tag XML element documentation.

Hidden required properties

In the Business Modeler IDE Operation Descriptor tab, it is possible to set a property to be both hidden
(Visible=false) and required (Required=true). This allows for a rare scenario where a custom client
programatically populates the property during the operation without prompting the user for input, and
yet won't allow the operation to continue if the client is unable to populate the required property.

For operations that use an Operation Descriptor, the Active Workspace XML rendering template (XRT)
processor does not automatically fill in all missing required properties, nor does it display any properties
which are hidden by the descriptor, even if they are requested by the operation's XRT.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-77


© 2020 Siemens
2. Configuring the user interface

In this special case, the Active Workspace client will not allow the operation to continue because the
required property cannot be populated.

To avoid this behavior, either change the property to be visible in the Business Modeler IDE Operation
Descriptor tab, or remove the property from the operation's XRT.

Name-value properties

Name-value properties are a specialized form of the table property designed for name-value pairs.

To display a name-value property in Active Workspace, use the nameValueProperty tag instead of the
objectSet tag in your custom Active Workspace summary style sheet.

• Use the nameValueProperty tag.

• Use the name attribute to specify the name of your name-value property.
In this example myNVProp.

• Within the tag, specify the fnd0Name and fnd0Value properties.

For example:

<section title=...>
<nameValueProperty
name="myNVProp">
<property name="fnd0Name"/>
<property name="fnd0Value"/
>

</nameValueProperty>
</section>

Note:
You must use the fnd0Name and fnd0Value properties.

SaveAs new and naming rules

The ItemID and ItemRevID properties are not displayed by default on the SAVEASRENDERING.

If you are using multiple naming rules for either of these properties, they must be added to the style
sheet.

<property name=”items_tag:item_id” />


<property name=”item_revision_id” />

2-78 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Add the ability to send a newly created business object to a workflow

Add the ability to send a newly created business object to a workflow

As an administrator, you can add the ability to send a business object to a workflow while creating the
business object. To do so:

1. In Business Modeler IDE, locate the required business object, for example, ItemRevision.

2. In the Main tab, go to the Business Object Constants tab.

3. Locate Awp0EnableSubmitForCreate and set the value to true.

4. In My Teamcenter, locate the XML rendering stylesheet for the business object. For example, locate
the Awp0ItemCreate stylesheet for the ItemRevision business object.

5. In the Viewer tab, add the following property to the stylesheet:

<property name="revision:awp0ProcessTemplates"/>

6. Click Apply.

7. In Business Modeler IDE, locate the business object, click Operation Descriptor→CreateInput, and
verify that the awp0ProcessTemplates property is added.
This ensures that users can submit business objects to a workflow while creating the objects.

Display form properties using a style sheet

In Active Workspace, you can create a new form XML rendering style sheet to render only those form
properties you want to display.

There are three possible property display configurations for form style sheets in Active Workspace:

• To display only the properties belonging to that form type, use the following tagging:

<all type="form"/>

• To display the properties of the form type and include properties from objects in the form type's
hierarchy, use the following tagging:

<all type="property"/>

By default, if there is no style sheet defined for the form type, the default style sheet is loaded, which
includes the configuration for including all properties, for example:

<rendering>
<page titleKey="tc_xrt_Summary">
<all type="property"/>
</page>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-79


© 2020 Siemens
2. Configuring the user interface

</rendering>

• To display only the properties defined in the page tag, use tagging like the following:

<page>
<property name="property-1"/>
<property name="property-1"/>
<property name="property-1"/>
</page>

Tip:
For examples of Active Workspace form templates, see the Awp0FormSummary and
Awp0FormInfoSummary XML rendering style sheet datasets. (They use the
AWC_Form.SUMMARYRENDERING and AWC_Form.INFORENDERING preferences.)

Working with HTML panels in XRT

HTML panel in Active Workspace XML rendering datasets

The <htmlPanel> tag supports URL and HTML content to be included in an XML rendering.

• <htmlPanel> can be specified as a child tag in <page>, <column>, and <section> tags.

Note:
The <htmlPanel> tag is supported only in Active Workspace XML renderings.

• The URL and HTML content can have the value of properties of the currently selected object
introduced into them. This technique is known as data binding.

Instead of embedding HTML directly into an XRT, it is possible to use the <inject> tag to refer to an
HTML dataset instead. There are two methods of specifying which HTML dataset is to be used. The HTML
dataset must contain only valid HTML code, with no XML style sheet tags.

In the example below, an HTML dataset exists with the name myHTMLblock.

There are two methods of specifying which dataset is to be used.

• Directly, by referring to the name of the HTML dataset.

<inject type="dataset" src="myHTMLblock"/>

• Indirectly, by referring to a preference which contains the name of the dataset.

<inject type="preference" src="additional_page_contributions"/>

2-80 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Specifying a URL

Then create the additional_page_contributionspreference, containing the value myHTMLblock.

If the preference contains multiple values, then each dataset will be located and injected in order.

Caution:
Uncontrolled JavaScript code included in the HTML panels can be used to exploit a security issue or
other network policy violation. System administrators must exercise care to ensure the XML
rendering preferences, datasets, and any WAR build changes are monitored and require DBA level
access.

Specifying a URL

The src attribute is used to specify the fully qualified URL as the source of the content to display in a new
iframe.

• The src attribute can be complete or can contain references to various properties in the currently
selected object.

• You can specify multiple properties.

Example: simple static URL

To display the contents of the given URL within the iframe:

<htmlPanel src=”https://www.mycorp.com/info”/>

Example: include a property value in a URL

To display the contents of the given URL with the current value of the item_id property used as the ID in
the URL query:

<htmlPanel src=”https://www.mycorp.com/info?
id={{selected.properties[‘item_id’].dbValue}}”/>

If the item_id property for the selected object is Part 1234, the final <iframe> tag is encoded as:

<iframe src=”https://www.mycorp.com/info?id=Part%201234”/>

Note:
The resulting URL is made safe—all characters are encoded to assure they are valid for a URL.
For example, any space characters in the property value for the object are encoded as %20 in the
final URL.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-81


© 2020 Siemens
2. Configuring the user interface

Specifying HTML content

HTML content in an <htmlPanel> entity can be rendered by using the declarativeKey property. In the
following example code snippets, the itemIdObjectStringView.html declarative view will be inserted.
Just like any other declarative view, there must be a corresponding declarative view model file along
with any other supporting files that may be needed.

Note:
These snippets are provided for reference only, and are not designed to be production-ready code.

htmlPanel

<htmlPanel declarativeKey="itemIdObjectString"/>

itemIdObjectStringView.html

<aw-panel>
<aw-label prop="data.objectString"></aw-label>
<aw-label prop="data.itemId"></aw-label>
</aw-panel>

itemIdObjectStringViewModel.json

{
"schemaVersion": "1.0.0",
"imports": [
"js/aw-panel.directive",
"js/aw-label.directive"
],
"data": {
"itemId": {
"displayName": "Item Id",
"type": "INTEGER",
"isRequired": "false",
"dbValue": 1075,
"dispValue": 1075
},
"objectString": {
"displayName": "Object String",
"dispValue": "Displaying object string value"
}
}
}

2-82 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Calling a Teamcenter service from an htmlPanel

Calling a Teamcenter service from an htmlPanel

To call a Teamcenter service from an htmlPanel, create a simple view and a view model to perform the
service call as an action.

In the following code snipped example, the view defines two buttons; checkItOut and checkItIn. Only
one button is displayed at a time because of the visible-when conditions. When these buttons are used,
actions associated with the action attribute of the aw-button element is called. This action is defined in
the view model to make the requested Teamcenter service call and will also display the messages
associated with the service call's success or failure.

Note:
These snippets are provided for reference only, and are not designed to be production-ready code.

htmlPanel

<page titleKey="HtmlPanel Check In/out">


<htmlPanel declarativeKey="htmlPanelCallTcService"/>
</page>

htmlPanelCallTcServiceView.html

<aw-panel>
<aw-button action="checkItOut"
visible-when="selected.properties.checked_out.

dbValue==''">Check Out</button>
<aw-button action="checkItIn"
visible-when="selected.properties.checked_out.

dbValue!=''">Check In</button>
</aw-panel>

htmlPanelCallTcServiceViewModel.json

{
"schemaVersion" : "1.0.0",
"imports": [
"js/aw-panel.directive",
"js/aw-button.directive",
"js/visible-when.directive"
],
"data": {},
"actions": {
"checkItOut": {
"actionType": "TcSoaService",

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-83


© 2020 Siemens
2. Configuring the user interface

"serviceName": "Core-2006-03-Reservation",
"method": "checkout",
"inputData": {
"objects": [
{
"uid": "{{ctx.selected.uid}}",
"type": "{{ctx.selected.type}}"
}
]
},
"outputData": {
"checkOutPartialErrors": "partialErrors"
},
"actionMessages": {
"success": [
{
"message": "checkoutSuccess"
}
],
"failure": [
{
"condition": "(ctx.selected &&
ctx.selected.length
=== 1)",
"message": "checkoutFailure"
}
]
}
},
"checkItIn": {
"actionType": "TcSoaService",
"serviceName": "Core-2006-03-Reservation",
"method": "checkin",
"inputData": {
"objects": [
{
"uid": "{{ctx.selected.uid}}",
"type": "{{ctx.selected.type}}"
}
]
}
}
},
"messages": {
"checkoutSuccess": {
"messageType": "INFO",
"messageText": "Checkout Successful",
"messageTextParams": [
"{{ctx.selected.length}}",

2-84 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Data binding

"{{ctx.selected.length}}"
]
},
"checkoutFailure": {
"messageType": "ERROR",
"messageText": "Failed to checkout",
"messageTextParams": [
"{{ctx.selected[0].props.object_string.uiValues[0]}}",

"{{data.checkOutPartialErrors[0].errorValues[0].message}}"
]
}
},
"functions":
{
},
"conditions":
{
},
"i18n":
{
}
}

Data binding

Data binding is a way to connect the current property values of an object model to attributes and text in
an HTML content view.

A section of HTML to be replaced with some other value is enclosed in double braces, {{xxxx}}, with xxxx
indicating a reference to a property in the current scope object.

Specialized HTML tags

In addition to standard HTML tags such as <b>, for bold text, and <br> (to force a line break), XML
rendering can use new specialized tags to simplify the work to display and edit Teamcenter data. This
new tag reduces the amount of HTML required to accomplish common tasks.

<aw-property>

The <aw-property> custom tag is used to simplify label and value display for Teamcenter properties. It
also handles the editing of these properties when appropriate.

You can use the <aw-property> tag to display all supported Teamcenter property types including single
and multiple values, images, object sets, and object references.

The <aw-property> tag supports these attributes:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 2-85


© 2020 Siemens
2. Configuring the user interface

• prop
For labels and values, this required string attribute specifies the property to display. This attribute
supports data binding value substitution.

• hint
This optional string attribute specifies variations in the way a property is displayed.
The valid values are:

• label

• objectlink

• modifiable
This optional Boolean attribute specifies whether the property can be modified during edit
operations. It applies only when the property is otherwise editable.

<aw-frame>

The <aw-frame> custom tag is used to simplify displaying URL contents in an iframe. It supports a
single src attribute.

The <aw-frame> attribute inserts HTML structure and CSS styling to correctly display the iframe using
the full width and height available in the page, column or section in which it is placed.

There are limitations on what can be shown in an iframe:

• Not all external URLs can be used within an <iframe> tag.


Some sites detect this tag and prevent their content from being displayed within an <iframe> tag.
This is a way sites control content display.

• Some browser, site, and network settings prevent some scripts from running if they come from a
location other than the root location of a page.
This capability, also called cross-site scripting, is a potential source of network attack.
This tag supports the following attribute:

src
This required attribute specifies the URL to be displayed in the iframe.
The src attribute supports data binding value substitution.

Specifying CSS styling

Creators of HTML content are free to specify their styling in their application. However, all existing Active
Workspace CSS styling selectors are available for use in HTML content contributed by the <htmlPanel>
tag. Use these existing styling selectors to save time and ensure UI consistency.

2-86 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
3. Working with platform customizations
Integrating Teamcenter platform customizations
What are platform customizations?

The following are considerations for the Active Workspace client when you perform platform
customizations:

• Enabling your custom business object.

• Enabling your custom preferences.

• Integrating your custom workflow handlers.

What do I need to make these examples work?

These examples assume you have already installed Active Workspace. In addition, you will need:

• Access to the TC_ROOT\aws2\stage directory.

Enable a custom business object in Active Workspace


1. Perform the following steps to create the business object in the Business Modeler IDE:

a. Import the Active Workspace (aws2) template into your Business Modeler IDE project.

b. Create the new business object and create custom properties on the business object.

c. Use the Operation Descriptor tab to ensure the custom properties appear on the creation
page in Active Workspace.

d. Ensure that the custom business object and its properties are included in searches by applying
the Awp0SearchIsIndexed business object constant and property constant.
If you have installed Active Content Structure and you want to make the custom business
object available on the Content tab, add the custom business object to the
Awb0SupportsStructure global constant.

e. Install the custom template to the server.

For details about using the Business Modeler IDE, see Configure your business data model in
BMIDE in the Teamcenter help collection.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 3-1


© 2020 Siemens
3. Working with platform customizations

2. Update the search indexer by merging the Teamcenter schema with the Solr schema and
reindexing.

3. Add the custom business object type to the AWC_DefaultCreateTypes preference. This preference
defines the object types to display when creating a new object in the Active Workspace client. The
list of available types is displayed in the Create panel. All subtypes associated with the object types
defined in the preference are also displayed in the list of available types.

4. If you want a unique page layout for the business object, set up style sheets for the business
object’s create page, summary page, and information panel.

Adding custom type icons


You can use two main ways to assign icons to business object types.

• Match a type icon in the image directory


You do not have to write any code or create any modules, but you do have to build the Active
Workspace application.

• Assign a type icon declaratively


You must create a module, work with JSON files, and then build the Active Workspace application.
More detail is provided in the advanced icon topic.

Match a type icon in the image directory

Active Workspace uses a naming convention for its icons. As long as you follow this convention, it is easy
to add icons for your custom business object types. The icons that get compiled into the web application
are located in the STAGE\src\image directory. Simply add your new icon into this directory, and then
build the Active Workspace application.

The naming pattern for type icons is:

typetypename48.svg

To use this method, typename must be the database name of the object type.

Example:
For example, if you want to add a new icon for the Robot Revision, you need to find the database
name of that type:
The database names of the objects can be located using the Business Modeler IDE.

3-2 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Registering icons (advanced)

You find that Mfg0MERobotRevision is the database name of the Robot Revision business
object. So you would name your icon:

typeMfg0MERobotRevision48.svg

Custom business objects follow the same rule. For example, if you have created a new business object
called C9BoltRevision with a display name of Bolt Revision, you would add a new icon with the
following name:

typeC9BoltRevision48.svg

Note:
If a business object type does not have an icon specifically assigned to it either by an
appropriately-named icon in the source directory or by an advanced method, then Active
Workspace will display the default icon for that class of objects.

Registering icons (advanced)


You can specify icons for object types without needing their names to match. This allows you to register
an icon to an object type:

• Regardless of their names using aliasRegistry.

• Based on a condition using typeIconsRegistry.

Both of these methods require you to use the development environment.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 3-3


© 2020 Siemens
3. Working with platform customizations

aliasRegistry — Assign icons to types with mismatched names

The aliasRegistry contains the icon/type pairing when the names do not match.

The aliasRegistry.json file is a sibling to your custom module.json. Use the generateModule script to
create this file automatically.

This file must contain a JSON object listing icons and the business objects to which they are assigned.

Example:
The following registers the typemyTypeIcon48.svg to the myCustomTypeRev business object.

{
"typemyTypeIcon48": [
"myCustomTypeRev"
]
}

The following registers two different icons to a total of three business objects.

{
"typemyTypeIcon48": [
"myCustomTypeRev",
"myOtherCustomTypeRev"
],
"typemyNewCustomIcon48": [
"myNewCustomTypeRev"
]
}

typeIconsRegistry — Assign icons conditionally

You can register type icons based on conditions using typeIconsRegistry. This technique is commonly
used when your custom object is being represented by an intermediary object, like a BOM line or table
row, for example. The intermediary object's icon changes based on the object it's representing.

The typeIconsRegistry is contributed from within a typeIconsRegistry.json file in your custom module.
This file is a sibling to your module.json. You must create this file manually.

This file must contain a JSON array of JSON objects which define a business object, and how its icons are
associated.

• Type names are logically ORed, which means a single definition can apply to multiple types.

• Property names are logically ANDed, which means all properties and their conditions are evaluated,
and if one of them is false the icon is not returned.

3-4 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Registering icons (advanced)

• The value for iconFileName is evaluated from the aliasRegistry.

• Icon registration supports a priority value for specifying precedence. If you define an entry in your
custom typeIconsRegistry.json file but it doesn't appear, they may already be a higher priority defined
OOTB.

Example:
In the following example, for any objects of type Ase0FunctionalElement, Ase0LogicalElement
or Ase0LogicalElement that have a reference property awb0Archetype, the type icon for the
referenced object will be shown.

[{
"type": {
"names": [
"Ase0FunctionalElement",
"Ase0LogicalElement",
"Awb0Connection"
],
"prop": {
"names": [
"awb0Archetype"
],
"type": {
"names": [
"BusinessObject"
]
}
}
}
}]

Example:
In the following example, for any objects of type Bhv1BranchNode has a reference property
bhv1OwningObject, the type icon for the referenced object will be shown only if it is of type
Fnd0Branch.

[{
"type": {
"names": [
"Bhv1BranchNode"
],
"prop": {
"names": [
"bhv1OwningObject"
],
"type": {
"names": [
"Fnd0Branch"
]
}
}

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 3-5


© 2020 Siemens
3. Working with platform customizations

}
}]

Example:
In the following example, for any objects of type EPMTask that have a property fnd0PerformForm
which has a non-null value, the type icon for typeFormTask48 will be shown

[{
"type": {
"names": [
"EPMTask"
],
"prop": {
"names": [
"fnd0PerformForm"
],
"iconFileName": "typeFormTask48",
"conditions": {
"fnd0PerformForm": {
"$ne": ""
}
}
}
}
}]

Example:
In the following example, for any objects of type EPMTask that have a property fnd0PerformForm
which has a non-null value, the type icon for typeFormTask48 will be shown

[{
"type": {
"names": [
"EPMTask"
],
"prop": {
"names": [
"fnd0PerformForm"
],
"iconFileName": "typeFormTask48",
"conditions": {
"fnd0PerformForm": {
"$ne": ""
}
}
}
}
}]

3-6 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Enabling your custom preferences in Active Workspace

Example:
In the following example, there are two icon assignments for the EPMTask object. One that checks
the fnd0PerformForm property, and the other checks the type_description property.
If either condition is true, then the object will have the appropriate icon. However, if both
conditions are true, then the object will have the typeWorkflowIcon48 icon, because the second
condition has a higher priority.

[{
"type": {
"names": ["EPMTask"],
"prop": {
"names": ["fnd0PerformForm"],
"iconFileName": "typeFormTask48",
"conditions": {
"fnd0PerformForm": { "$eq": "HelloWorld" }
}
}
},
"priority": 50
},
{
"type": {
"names": ["EPMTask"],
"prop": {
"names": ["type_description"],
"iconFileName": "typeWorkflowIcon48",
"conditions": {
"type_description": {"$eq": "HelloTypeDescription"}
}
}
},
"priority": 65
}]

Enabling your custom preferences in Active Workspace


For any custom Teamcenter preference that you want to use in Active Workspace, you must add it to the
AWC_StartupPreferences preference. Otherwise, the preference will not be loaded by Active
Workspace.

The AWC_StartupPreferences preference defines the list of preferences to be retrieved at startup by


the Active Workspace client from the Teamcenter server. Each entry in the list is a valid Teamcenter
preference name.

Enable your custom workflow handler in Active Workspace


If you have a custom workflow handler, Siemens Digital Industries Software recommends that you
create a corresponding JSON file describing the handler.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 3-7


© 2020 Siemens
3. Working with platform customizations

Why should I to do this?

Without a corresponding JSON file, the Workflow Designer handler panel offers no assistance to the user
for that handler.

The Active Workspace client reads the handler JSON files to create a handler panel populated with
available arguments and value hints, instead of making the user type them in manually, reducing errors
and increasing efficiency. The handler panel:

• Provides a drop-down list of optional arguments.

• Enforces required arguments so the user cannot forget to add the

• Provides drop-down lists for possible values.

• Tracks mutually exclusive or dependent arguments.

Where do I put the handler JSON file?

Add your custom JSON file to the provided files in the TC_DATA\workflow_handlers directory. The
filename must match the handler name. Reference the OOTB files as examples when creating your own.

Example:
The handler named EPM-auto-assign-rest has a file:
TC_DATA\workflow_handlers\EPM-auto-assign-rest.json

How is the handler defined?

In the JSON file, you must define all arguments as either mandatory or optional. For any arguments
you defined, you may also specify if they are dependent upon each other, if they are mutually exclusive,
required, allowed to be left blank, or never take any value at all. The following syntax allows you to
create all of these possibilities.

Syntax

The JSON file may contain any of the following attributes:

{
"mandatory": [...],
"optional": [...],
"dependent": [...],
"mutex": [...],
"required_one_of": [...],
"nullable": [...],
"nullvalue": [...],

3-8 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Enable your custom workflow handler in Active Workspace

"undefined_arg_value": [...]
}

Or, if the handler takes no arguments, then you can define it as follows:

{
"no_arguments": true
}

Design Intent:
If a handler has no corresponding JSON file, or if the definitions are blank, then the user can
(must) manually type in any arguments and values they want.

Attributes

mandatory
Define any arguments which are mandatory, along with the list of available value hints for each
argument. Required arguments will appear pre-populated in the handler panel. If no value hints are
provided, the user must type in the values.

Example:
Shown are two mandatory arguments: -name which has three value hints to choose from,
and -assignee (which requires the user to manually enter a value).

"mandatory": [
{
"-name": [
"PROPOSED_RESPONSIBLE_PARTY",
"ANALYST",
"CHANGE_SPECIALIST"
]
},
{
"-assignee": [ ]
}
]

Tip:
dynamic hints and multiselect are available when defining argument values.

optional
Define any arguments which are optional, along with the list of available value hints for each
argument.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 3-9


© 2020 Siemens
3. Working with platform customizations

Example:
Shown are two optional arguments: -from_attach (which has three values to choose from)
and -target_task (which requires the user to manually enter a value).

"optional": [
{
"-from_attach": [
"target",
"reference",
"schedule_task"
]
},
{
"-target_task": [ ]
}
]

Tip:
dynamic hints and multiselect are available when defining argument values.

dependent
Specify which arguments that are dependent upon other arguments being chosen. This is a one-way
relation. If you have arguments that are dependent upon each other, you need to specify all
combinations.

Example:
Shown are two sets of dependent arguments. If the user selects -latest or -targetstatus, then
-status is required. However, if there are no other restrictions, the user could select -status by
itself.

"dependent": [
{
"-latest":["-status"]
},
{
"-targetstatus":["-status"]
}
]

mutex
Specify which arguments are mutually exclusive. Each group is processed separately.

Example:
Shown are two sets of mutually exclusive arguments. If the user selects -primary_type they
cannot also select -secondary_type, and vice-versa. The same with -

3-10 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Enable your custom workflow handler in Active Workspace

check_only_for_component and -check_only_for_assembly, the user can only choose one


of them.

"mutex": [
{
"-primary_type": "",
"-secondary_type": ""
},
{
"-check_only_for_component": "",
"-check_only_for_assembly": ""
}
]

required_one_of
Specify arguments from which at least one must be chosen.

Example:
"required_one_of": [
{
"-allowed_status": "",
"-include_related_type": "",
"-relation": ""
}
]

You can specify multiple sets of required arguments. In the following example, the user must
choose either arg1 or arg2 and also choose either argA or argB.

"required_one_of": [
{
"-arg1": "",
"-arg2": ""
},
{
"-argA": "",
"-argB": ""
}
]

nullable
Specify which arguments may have a value. The user is allowed to provide a value, but it is not
required.

Example:
"nullable": [
"-ce",
"-auto_complete",

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 3-11


© 2020 Siemens
3. Working with platform customizations

"-clear_signoffs",
"-check_first_object_only",
"-required"
]

nullvalue
Specify which arguments can not have a value. The user can not add any value to the arguments.

"nullvalue": [
"-bypass",
"-check_first_target_only"
]
undefined_arg_value
If a JSON file has this specified, then the user would be allowed to add any argument name and a
corresponding value for it of his\her choice. The handler panel will have a free text to provide any
argument name as well as argument value that may not be specified in the JSON mandatory or
optional sections.

Dynamic hints

Within the argument definition sections (mandatory and optional), you can add dynamic hints. The
server will replace the following keywords with a list of values before sending to the client. Supported
keywords are:

To get a list of... use...


Relations DYNAMIC_HINT_RELATIONS
Supported types DYNAMIC_HINT_TYPES
LOVs DYNAMIC_HINT_LOV
Release statuses DYNAMIC_HINT_STATUS
Available workflow process templates DYNAMIC_HINT_TEMPLATE
All ACLs DYNAMIC_HINT_ACLS
Workflow ACLs DYNAMIC_HINT_WORKFLOW_ACLS
System ACLs DYNAMIC_HINT_SYSTEM_ACLS
BMIDE conditions DYNAMIC_HINT_CONDITIONS
Group names DYNAMIC_HINT_GROUPS
User names DYNAMIC_HINT_USERS
Revision rules DYNAMIC_HINT_REVISION_RULES
Form type names DYNAMIC_HINT_FORMS
Queries DYNAMIC_HINT_QUERIES
Note types DYNAMIC_HINT_NOTETYPES

3-12 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Enable your custom workflow handler in Active Workspace

To get a list of... use...


Participant types DYNAMIC_HINT_PARTICIPANTS
Single participant types DYNAMIC_HINT_SINGLE_PARTICIPANTS

Example:
The following provides a list of all relations when the user selects the -from_relation argument.

{
"-from_relation": [
"DYNAMIC_HINT_RELATIONS"
]
}

Multiselect

Within the argument definition sections (mandatory and optional), you can allow multiselect.

Use multiselect=true to allow the user to pick multiple values for the argument. This should be present
as the first value in the list of values for a given handler argument.

Example:
The user is allowed to choose several values from the list of types.

{
"-to_include_type": [
{
"multiselect": true
},
"DYNAMIC_HINT_TYPES"
]
}

Examples

Explore all the provided JSON files for examples. Following are some examples chosen from the provided
JSON files. They each have interesting content to examine for sample content.

EPM-assert-targets-checked-in
As there are no arguments for this handler, this JSON file is empty. A blank template.

EPM-check-target-object
An example of using a combination of multiselect, explicit values, and dynamic hints.

EPM-attach-related-objects
An example of several mutually exclusive groups of arguments.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 3-13


© 2020 Siemens
3. Working with platform customizations

3-14 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
4. Changing Active Workspace behavior
Active Workspace development environment

What do I need to know about the development environment?

• Learn how the development environment works with the gateway architecture.
The gateway and microservices architecture are an important component in the development
environment. You must configure the gateway to read from your local site instead of the file
repository so you can see your command-line development changes.

• Learn the environment directories


NPM is the package manager for Active Workspace. The STAGE directory can be loaded by a JavaScript
project IDE, such as Microsoft's VSCode, for example.

• The provided scripts help you define, build, and publish your customizations.

• Your custom module's file structure must be followed, and is created and maintained by the scripts.

What are these examples for?

These examples demonstrate how to use the generateModule script to create various declarative Active
Workspace customizations from the command line. For example, adding a new sublocation or creating a
new theme.

Tip:
Siemens Digital Industries Software recommends using the command builder page to create and
modify commands.

What do I need to make these examples work?

These examples assume you:

• Have write access to the TC_ROOT\aws2\stage directory.

• Use JavaScript-capable project editor, like Visual Studio Code for example.

Tip:
If you are using a Linux environment, you will need to install the version of Node.js specified in
the hardware and software certifications.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-1


© 2020 Siemens
4. Changing Active Workspace behavior

The Windows environment includes Node.js.

What examples are available?

You can configure the following aspects of Active Workspace's behavior using the developer
environment.

• Create a new theme.

• Add a visual indicator.

• Create a new page.

• Add a command.

The Active Workspace gateway

The Active Workspace gateway architecture

Using the Active Workspace development environment with the microservices framework requires
knowledge of how the gateway architecture is designed, and how its components work together.

4-2 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
The Active Workspace gateway architecture

Active Workspace gateway architecture

Active Workspace Gateway


Provides the reception area into Active Workspace. From here, users' requests are directed to various
other microservices or locations depending on your site's configuration.

Note:
Not all communication goes through the microservices yet. Some functionality still
communicates directly to Teamcenter, for example.

File Repository
A web-based file storage system. It stores both the baseline Active Workspace application web site
and the declarative artifact service overlays in two separate repositories.
Declarative Artifact Service
Manages any changes made by the UI builder tools, like Command builder, Panel Builder, and so
on. The changes are stored in the file repository separately from the main site. When you use the
development mode of Active Workspace, those changes are overlayed onto the baseline site which
is stored in the file repository.
Active Workspace Client
The STAGE directory, which is used for local development and builds.
Teamcenter GraphQL
An experimental assistant for Active Workspace which helps consolidate and locate data.
Teamcenter
The entirety of the 4-tier Teamcenter architecture. The Active Workspace application communicates
with Teamcenter as a 4-tier client.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-3


© 2020 Siemens
4. Changing Active Workspace behavior

Login without seeing UI Builder changes

What is happening?

The user connects to the gateway service using port 3000. They experience the Active Workspace site as
it exists on the file repository.

• The gateway retrieves the Active Workspace full site and configuration from the file repository.

• Any changes managed by the declarative artifact service or created in your local developer
environment are not displayed.

4-4 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Login to see UI Builder changes (developer mode)

Login to see UI Builder changes (developer mode)

What is happening?

The user connects to the gateway service using port 3000, but adds the ?dev query string in the URL to
activate developer mode. They experience the Active Workspace site as it exists on the file repository,
plus any changes that have been made using the UI builder tools, like Command Builder, Panel
Builder, and so on.

• The gateway requests the Active Workspace configuration from the declarative artifact service.

• The declarative artifact service retrieves and overlays its stored configuration deltas onto the full site.

• If the user has administrator privileges (by being a member of the dba group for example) they can
use the UI builder tools to make changes to the UI.

• Any changes made to the UI using the UI builder tools are stored by the declarative artifact service in a
separate section of the file repository as adds or deltas. No changes are made to the full site file
repository.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-5


© 2020 Siemens
4. Changing Active Workspace behavior

Note:
Using the ?dev query string in the URL takes precedence over the siteDir setting when retrieving
configuration data.

Configure the gateway to see your local site

What is happening?

The user connects to the gateway service using port 3000. They experience the Active Workspace site as
it exists on the local stage directory. This allows developers to make changes without impacting the full
site served from the file repository service.

Setup

• You must add the siteDir setting in the config.json file found in the AW ROOT/microservices/gateway-
nnnn directory.

• The siteDir typically designates your STAGE/out/site directory.

• After changing the gateway's config.json file, you must restart the gateway for the changes to take
effect.

Use

4-6 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Work with a declarative module

• The gateway requests the Active Workspace site and configuration from the siteDir instead of the file
repository.

• Use this setup when working with modules. For example, creating a new theme, location, type icon
registry, and so on.

Note:
Using the ?dev query string in the URL takes precedence over the siteDir setting when retrieving
configuration data.

Work with a declarative module

What is happening?

You can create and edit your declarative modules in this environment. You have read access to the repo
directory, which contains the OOTB source for Active Workspace for reference and builds. Even if you
have write permissions to the repo directory, do not modify those files. Make all your changes in your
custom modules.

Setup

• If you haven't done so already, prepare your gateway to view your local site.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-7


© 2020 Siemens
4. Changing Active Workspace behavior

• Optionally, run the awbuild script to start with a clean build. You can run it directly, without preparing
a special runtime environment.

• Use a JavaScript project editor to work in your environment. Our examples use Microsoft's VSCode.

Use

• Use your editor to load the entire STAGE directory.

• From the command-line, generate modules to hold your customizations.

Note:
The changes you make will not be visible until you refresh or build the application.

Commit your UI Builder changes to your module

What is happening?

After any UI builder changes, you must export them from the declarative artifact service into your
declarative module to be able to publish them This is like a commit for your UI builder changes, however
they still only exist in the local module until they are published.

Setup

4-8 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Refresh or build your module

• If you haven't done so already, prepare a declarative module.

• Open a command prompt to the STAGE directory.

• If you are using Windows, run the initEnv script from the STAGE directory to initialize the
environment.

Use

• From the command-line, use the npm run exportToSrc script to contact the gateway service and
export the UI builder changes into your custom module.

Refresh or build your module

What is happening?

You can build your declarative modules along with the local source into the local site.

Setup

• If you haven't done so already, prepare a declarative module and possibly export your UI builder
changes.

• Open a command prompt to the STAGE directory.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-9


© 2020 Siemens
4. Changing Active Workspace behavior

• If you are using Windows, run the initEnv script from the STAGE directory to initialize the
environment.

Use

• From the command-line, refresh or build the Active Workspace application from the local source files
into the local site.

Publish your local site

What is happening?

You can publish your local site to the file repository services as the new full site. This makes it your new
baseline for this environment. This is similar to a full commit for all your customizations.

Setup

• If you haven't done so already, perform a build of your local files.

• Open a command prompt to the STAGE directory.

• If you are using Windows, run the initEnv script from the STAGE directory to initialize the
environment.

4-10 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
The stage directory

Use

• From the command-line, use the publish script to contact the gateway service and push the Active
Workspace application from the local site to the file repository service.

Tip:
As a convenience you can use the awbuild script, which performs the following actions for you:

1. initenv

2. npm run build

3. npm run publish

The Active Workspace development environment

The stage directory

Like many JavaScript applications, Active Workspace uses npm to manage dependencies and other build
tooling. The primary files related to npm are the package.json file and the node_modules folder.

Following is a description of several of the important directories. Not all directories present in the
environment are shown.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-11


© 2020 Siemens
4. Changing Active Workspace behavior

stage

This is the base directory for Active Workspace customization. It is located in TC_ROOT\aws2. This is the
root of the development environment. Open this folder with your JavaScript project editor.

repo

This directory contains the declarative source code for Active Workspace, and is required when building
the application.

You can use the declarative source definitions in this directory for reference; all of the installed OOTB
kits are located here in their respective directories.

Caution:
Siemens Digital Industries Software recommends not modifying any of the files in the repo
directory. Instead, create your own modules and add your customizations there.

out

This is where the local build can be found.

4-12 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Development scripts

site This directory is analogous to a WAR file. It is a live application web site which can be
served by Express, if you configure your gateway to view your local site.

src

The files and directories located here are for your customizations. They are pre-populated with actual
source code and resources that are built along with the contents of the repo directory. The src directory
contains the following directories:

image Contains the icons used by the Active Workspace UI are located here. If you want to
add custom icons for your modules, place them in this directory. Follow the file and
naming conventions for icons as specified in the UI Pattern Library, located on Doc
Center.
mysamplem This is an example custom module that you might create. If you use the
odule generateModule script, this is the module that is automatically created if you don't
use another one. You may have as few or as many modules as you need to organize
your content, but each module must be registered in the main kit.json file, which is
located in the solution directory.

Each module will have its own module.json file, and must conform to the declarative
file and directory structure.
solution In this directory, you will find the main kit.json file and all of the workspace
definitions. Your custom modules must be registered in this file for the build script to
find them. When you use the generateModule script to create your module, it will
register your custom module in the kit.json for you.

Development scripts

To create custom Active Workspace components, you must work within an environment configured for
Active Workspace development. Siemens Digital Industries Software provides several scripts to assist in
the development of component modules. Unless otherwise stated, all scripts must be run from the
stage directory.

initEnv.cmd

In a Windows environment, run this script to configure the command-line environment variables
necessary for Active Workspace development.

awbuild

This script (awbuild.cmd or awbuild.sh) performs both npm run build and npm run publish. It also
initializes the command-line environment.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-13


© 2020 Siemens
4. Changing Active Workspace behavior

npm run generateModule

This script assists you in creating boilerplate files and directories for individual components. This script
does not require any arguments. If you do not provide any, it prompts you to enter the information it
requires.

npm run audit

This script checks your declarative definitions against the stated schema version. It reports any errors it
encounters, which you must fix before continuing. The current schema file is available in the UI Pattern
Library on Doc Center.

For example, if a view model file contains "schemaVersion" : "1.0.0", then it will be audited
versus schema version.1.0.0, even if 1.0.1 were current.

npm run refresh

This script quick-builds the Active Workspace application locally from STAGE/src and STAGE/repo into
STAGE/out/site.

It does not clean first, nor does it perform minification. If you experience any issues with Active
Workspace after making changes and performing a refresh, then perform a build instead.

npm run exportToSrc

When you are done making your changes in the UI using Active Architect and you want to commit
them, you need to export them into your local source repository.

All of the changes that were made with Command Builder, Panel Builder, and so on, are stored in the
declarative artifact service, but any time Active Workspace (the artifact service specifically) is rebuilt,
that history and all changes are cleared. Think of exporting back to source as similar to checking in code
to source control.

The syntax for the exportToSrc script is as follows:

npm run exportToSrc <Gateway Client URL> --moduleName=<name of module>

• The Gateway Client URL defaults to http://localhost:3000, if not provided.

• The name of module is the name of the existing module in which the changes should be stored. It will
not create one. You can create a custom module using the generateModule script.

After running the tool, you can rebuild Active Workspace as much as you want without losing those
changes. Any future changes will be stored in the artifact service until you run this script again. This
process is similar to checking your code into a source control manager.

4-14 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
The declarative module

npm run build

This script performs a clean build and minification of the Active Workspace application from STAGE/src
and STAGE/repo into STAGE/out/site.

npm run publish

Publishes the Active Workspace application to the gateway deployment specified in STAGE
\tem.properties.

The target gateway can be overridden by running npm run publish <gateway deployment URL>.

npm run convertTemplates

Imports SOA templates from the Business Modeler IDE for use in Active Workspace. The imported
templates are initially located in the out/soa/json folder and will override any files there. Once testing is
completed, move any files in the out/soa/json directory to the src/soa/json directory to avoid upgrade
issues.

npm run genSoaApi

This tool will generate a local site documenting all of the SOA APIs available in Active Workspace. The
output directory is STAGE/out/soa/api.

The declarative module

Your custom module must follow the declarative file and directory structure. Following is an example of
a module with several customizations (yours will differ):

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-15


© 2020 Siemens
4. Changing Active Workspace behavior

Tip:
Use the generateModule script to create boilerplate files for you.

npm run generateModule

mysamplemodule

This is an example of a base directory for your custom module. It is located in the STAGE\src folder. Your
module.json file (required) is located here. Depending on your customizations, you may also have the
following files:

• aliasRegistry.json
Assign type icons to business objects in this file.

• typeIconsRegistry.json
Assign business objects conditionally to icons in this file.

• commandsViewModel.json
Define new commands here, including handlers and placements.

4-16 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
The declarative module

• states.json
Define your custom locations or sublocations here.

• indicators.json
Assign visual indicators in this file.

• typeProperties.json
Specify any additional properties that you want the client to pre-load. This can be useful when
defining visual indicators, for example.

src

This directory contains the main organizational directories for your module: html, i18n, js, and
viewmodel. If you created a theme, you will see your SCSS file here.

html

Your view definitions are located in this directory. The definitions have the following naming
convention:

sublocationNameView.html

sublocationNameListView.html

sublocationNameTableView.html

i18n

All your localization keys for your module are located in this directory. The English translation file is
named moduleNameMessages.json. Additional language files will have a suffix distinguishing them.

Example:
moduleNameMessages_de.json for German
moduleNameMessages_ja_JP.json for Japanese
For more examples, refer to the provided source files in the components\activeworkspace\repo\kit
directory.

js

If you created a command, the JSFunction method will be located in this directory. The default name of
the file is commandNameService.js

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-17


© 2020 Siemens
4. Changing Active Workspace behavior

viewmodel

This directory contains your view model files. Each view (html) file must have an associated view model
(json) file.

Active Workspace development examples

Using generateModule to create boilerplate definitions

Creating your own custom declarative definitions for Active Workspace requires a container so the build
scripts can locate your files. This container is a kit.json file. If your kit file is located anywhere under the
stage\src directory, it will be found by the build scripts. Each kit file contains a list of modules, solution
definitions, and other dependency information. The system will automatically find any registered
modules under the stage\src directory.

Typically, you would create one kit that contains several modules, each of which contains your
declarative definitions. Active Workspace ships with a single kit already in place, the solution kit, located
in the stage\src\solution directory.

Caution:
Siemens Digital Industries Software recommends that you use the OOTB solution kit instead of
creating your own.

How do I run generateModule?

As long as you are working in the development environment (set up using initenv), you can run
generateModule. You do not have to be in any particular directory. The utility prompts you for the input
it requires, and it validates many of the choices you must make against existing options.

What can generateModule create?

The utility currently assists you with the creation of the following declarative components.

• module
Create your own module to contain related declarative configuration files. The utility will create a
directory for each of your custom modules in the stage\src directory and create the various module
files.

Note:
If you do not explicitly create your own module, mysamplemodule will be created for you.

• type

4-18 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Add a custom theme

Use the declarative framework to assign an icon to an object type. The utility will create
aliasRegistry.json in your module directory. Using alias registry allows you to register an icon from
the stage\src\image directory to a given object type or types.

• theme
Create a new theme that you can modify. The utility will create ui-<themeName>.scss in the module's
src directory. This new SCSS file will be configured with your color choice, but can be modified if
desired.

• command
Define a command. The utility creates a command definition in commandsViewModel.json in the
module directory.

Tip:
Siemens Digital Industries Software recommends installing the Gateway Client and the UI
Builder to make changes to commands. As part of Active Architect, these provide you with the
Command Builder and Panel Builder locations for easier command editing and creation.

• location
Create a new location to organize your sublocations. The utility creates a location definition in
states.json file in the module directory.

• subLocation
Create a new sublocation. The utility creates a sublocation definition in states.json file in the module
directory. Sublocations must be assigned to an existing location.

• workspace
Create the server-side definitions for a new workspace. The utility creates a workspace definition file
in the solution directory, and adds an entry in the main kit.json file. In the module directory, it creates
an entry in the messages file.

Example: Add a custom theme

Variables defined in SCSS files control all of the colors for Active Workspace. When you change the SCSS
file, it propagates throughout the interface. Changing individual CSS files is not supported.

In this example, you create a red theme.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-19


© 2020 Siemens
4. Changing Active Workspace behavior

These steps must be performed in an Active Workspace developer environment. Your utility feedback
may differ based on which kits and modules are available.

1. Run the generateModule script and create a new red theme.

Enter type to generate: theme


Theme name: myRedTheme
Color: red

The following structure shows the stage/src/mysamplemodule folder after creating the theme.
These files are reviewed following the steps.

2. Edit your theme, if desired.

Various files and directories are created or updated, including a new command to switch to your
theme, but there are two main files of interest:

• theme scss

4-20 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Add a custom theme

Your theme file is located in the module's src directory. In this example, ui-myRedTheme.scss.
This file contains the base color definitions, and can be modified to suit your needs. See the
color override example.

• messages json
Your messages file is located in the module's src\i18n directory. In this example,
mysamplemoduleMessages.json. This file contains translations for your module, including the
command title, myRedThemeTitle. In this example, change the title to something more easily
understood by the user.

"myRedThemeTitle": "Red"

3. Build and deploy the awc application.

4. Test your new theme.

Select your new theme with the Change Theme icon in the global toolbar. Notice the name of the
theme is translated using the messages file.

Following are the files that are created or modified.

kit.json

The OOTB kit file is automatically updated with the name of your custom module. This file is not located
in your module directory.

"name": "tc-aw-solution",
"modules": [
"mysamplemodule",
"tc-aw-solution"
],
...

mysamplemodule

This folder is created to store your module's configuration.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-21


© 2020 Siemens
4. Changing Active Workspace behavior

module.json

A module file is created and populated in your module directory with the basic information about your
custom module.

{
"name": "mysamplemodule",
"description": "This is the mysamplemodule module",
"skipTest": true
}

ui-myRedTheme.scss

This file contains your new theme definition. Its name is ui-themeName.scss and is referred to in the
actions and conditions sections of the command view model.

commandsViewModel.json

This file creates the client side model for the command, and defines the command handlers,
placements, actions, conditions, and a pointer to the messages file. Only a skeleton of the file is shown
here for brevity.

{
"commands": {
"myCommand": {
},
"commandHandlers": {
"myCommandHandler": {
},
"commandPlacements": {
"aw_rightWall": {
},
"actions": {
"activatemyCommand": {
},
"conditions": {
"objectIsSelected": {
},
"i18n": {
"myCommandTitle": [
}
}

mysamplemoduleMessages.json

This file contains all of the English localized text for the command. You can modify the displayed text by
making changes here.

4-22 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Add a custom theme

{
"header": "Header",
"body": "Body",
"footer": "Footer",
"checkBoxName": "Enable the OK button in footer",
"save": "Ok",
"textValue": "Contents here",
"myCommandTitle": "myCommand"
}

You can copy this file and add the appropriate suffix to create a new translation file for another
language. Active Workspace will automatically find your files depending on the user's locale.

Example:
Add _de for a German language file.

mysamplemoduleMessages_de.json

Overriding a default color

You feel the red theme doesn't go far enough — search results are still highlighted in yellow, but you
want red. In this example, you change the color of Active Workspace's highlighting from yellow to red.

1. Examine the OOTB theme scss files to find the variable you want to override. In this case it is the
highlighted background color.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-23


© 2020 Siemens
4. Changing Active Workspace behavior

Find the provided theme files under the stage\repo directory. Custom themes are based on the _ui-
theme.scss and _ui-theme-settings.scss.

2. Copy the line defining the highlighted background color from the ui theme settings scss.

$aw_highlighted_background_color: $AW_SiemensAccentYellow5;

3. Paste the line into your custom theme SCSS file after the theme settings import, but before the ui
theme import.

@import 'ui-theme-settings';

$aw_highlighted_background_color: $AW_SiemensAccentYellow5;

@import 'ui-theme';

4. Change the color of the highlighting. You can specify any standard color or hexadecimal color
code. In this example, use one of the defined red highlight colors.

@import 'ui-theme-settings';

4-24 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Create a visual indicator

$aw_highlighted_background_color: $AW_SiemensAccentRed5;

@import 'ui-theme';

5. Build and deploy the awc application.

6. Test your new highlight color.

Example: Create a visual indicator

Visual indicators require a native module.

In this example, you create a visual indicator that shows when an object has an IP License attached. It is
assumed that you have an SVG icon.

1. If you don't already have a module created, use the generateModule script to create a module. In
this example, you create mysamplemodule.

S:\>npm run generatemodule


Enter type to generate: module
Module name: mysamplemodule

The following structure shows the stage/src/mysamplemodule directory after creating the
module.

2. Create an indicators.json file in your module as a peer to the module.json, and enter the
information about your indicator.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-25


© 2020 Siemens
4. Changing Active Workspace behavior

{
"ipindicator": {
"iconName": "ipIndicator",
"tooltip": {
"pre_message": "",
"propNames": [
"license_list"
],
"post_message": ""
},
"modelTypes": [
"ItemRevision"
],
"conditions": {
"license_list": {
"$ne": ""
}
}
}
}

3. Create a typeProperties.json file in your module as a peer to the module.json, and enter the
information about your properties.

{
"typeProperties": {
"ItemRevision": {
"additionalProperties": [
{
"name": "license_list"
}
]
}
}
}

4-26 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Create a visual indicator

4. Add your icon to the stage\src\image directory. The file must begin with indicator and end with
16.svg.

In this example, indicatoripIndicator16.svg.

5. Build the application, deploy, and test.

Since you specified a tooltip containing the value of the license_list property, the list of attached
licenses will appear when you hover over the object. In this example, IP_License_01.

kit.json

The OOTB kit file is automatically updated with the name of your custom module.

"name": "tc-aw-solution",
"modules": [
"mysamplemodule",
"tc-aw-solution"
],
...

module.json

A module file is created and populated with the basic information about your custom module.

{
"name": "mysamplemodule",
"desc": "This is the mysamplemodule module",
"type": [
"native"
],

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-27


© 2020 Siemens
4. Changing Active Workspace behavior

"skipTest": true
}

indicator.json

Add the definition of your indicator in this file. The basic syntax is:

{
"INDICATORNAME": {
"iconName": "ICONNAME",
"tooltip": {
"showPropDisplayName": false,
"propNames": ["PROPERTYNAME1", "PROPERTYNAME2"]
},
"modelTypes": ["TYPE1", "TYPE2"],
"conditions": {
"PROPERTYNAME": {
"$eq": "This is a test"
}
}
}
}

The conditions can test using many operators in an AND configuration. If any condition is false, the
indicator will not appear.

$eq Equal.
$ne Not equal.
$lt Less than.
$lte Less than or equal to.
$gt Greater than.
$gte Greater than or equal to.

typeProperties.json

In order to conserve time and memory, Active Workspace does not retrieve every property associated
with an object when it is retrieved; it only retrieves a few pre-determined properties that are required for
the initial display. Commands, sublocations, and even style sheets can specify additional properties to be
retrieved if they are needed. For example, the license_list property is not normally retrieved for initial UI
use, but when you select the Attach Licenses command, the definition for that panel is configured to
retrieve that property since it will be needed for the action.

4-28 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Create a sublocation

In this example, the condition happens to test a property that is not one of these pre-loaded properties.
Because of this, you must add an entry to the typeProperties section to tell Active Workspace to also
load the license_list property whenever it loads an ItemRevision object.

Example: Create a sublocation

Declarative pages in Active Workspace are called sublocations.

• A sublocation must belong to a location.

• A location may contain one or more sublocations.

• Sublocations under a single location should have a related use.


The Inbox location, for example contains My Tasks, Team, Tracking, and so on.

• Location and sublocation definitions require a custom module.

In this example, you create a custom location and subLocation.

1. Use the generateModule script to create a location. In this example, you create myLocation.

S:\>npm run generatemodule


Enter type to generate: location
Location name: myLocation

The following structure shows the stage/src/mysamplemodule folder after creating the location.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-29


© 2020 Siemens
4. Changing Active Workspace behavior

2. Use the generateModule script to create a sublocation. In this example, you create
mySubLocation.

S:\>npm run generatemodule


Enter type to generate: subLocation
Location name: myLocation
Sublocation name: mySubLocation

The following structure shows the stage/src/mysamplemodule folder after creating the
sublocation.

3. Build the application, deploy, and test.

Notice how the name of the sublocation is used in the URL, but is not shown in the UI because there is
only a single sublocation registered to that location.

4-30 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Create a sublocation

kit.json

The OOTB kit file is automatically updated with the name of your custom module.

"name": "tc-aw-solution",
"modules": [
"mysamplemodule",
"tc-aw-solution"
],
...

module.json

A module file is created and populated with the basic information about your custom module.

{
"name": "mysamplemodule",
"desc": "This is the mysamplemodule module",
"type": [
"native"
],
"skipTest": true
}

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-31


© 2020 Siemens
4. Changing Active Workspace behavior

states.json

Your locations and sublocations are defined in this file. All titles are localized, which leaves nothing here
to modify.

mysamplemoduleMessages.json

This file contains all of the localized text for the module. You can modify the display names by making
changes here.

{
"myLocationHeaderTitle": "myLocation",
"myLocationBrowserTitle": "myLocation",
"myLocationBrowserSubTitle": "myLocation",
"mySubLocationTitle": "mySubLocation",
"mySubLocationChartTitle": "mySubLocation"
}

mySubLocation{type}View.html

These files create the UI for each type of view available. By default there are three view types: list, table,
and image.

Each file defines a declarative layout for the sublocation. Descriptions of the declarative elements can be
found in the UI Pattern Library found on Doc Center. The list view is shown:

<aw-scrollpanel>
<aw-list dataprovider="data.dataProviders.listDataProvider" show-context-menu="true">
<aw-default-cell vmo="item"></aw-default-cell>
</aw-list>
</aw-scrollpanel>

mySubLocation{type}ViewModel.json

These files create the client side model for each view. These define any needed actions, data providers,
events, and so on. Only a skeleton of the file is shown here for brevity.

4-32 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Create a command using the command-line

{
"schemaVersion" : "1.0.0",
"imports":
[
"actions":
{
"reveal":
{
"search":
{
],
"dataProviders":
{
"listDataProvider":
{
},

"onEvent": [{
"eventId": "dataProvider.reset",
"action": "reveal"
}, {
"eventId": "mySubLocationList.contentLoaded",
"action": "reveal"
}]
}

Example: Create a command using the command-line

Caution:
Although it is possible to create custom commands using the steps shown here, Siemens Digital
Industries Software recommends using the command builder page instead. Not only can it create
new commands, but it can also modify OOTB commands.

The following steps must be performed in an Active Workspace development environment.

1. Use the generateModule script to create the command. In this example, you create myCommand,
choosing an existing icon and placing it on the right wall command bar. Learn more about
command placement.

S:\>npm run generatemodule

Enter type to generate: command


Command name: myCommand
Icon name: cmdWalk
Placement name: aw_rightWall

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-33


© 2020 Siemens
4. Changing Active Workspace behavior

The following structure shows the stage/src/mysamplemodule folder after creating the command.
These files are reviewed following the steps.

2. Edit your module's messages file to give your command a user-readable name.

"myCommandTitle": "My Command"

3. Refresh your local build.

npm run refresh

View your results in the UI. Notice how the command appears on the right wall command bar.

Following are the files that are created or modified.

4-34 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example: Create a command using the command-line

kit.json

The OOTB kit file is automatically updated with the name of your custom module. This file is not located
in your module directory.

"name": "tc-aw-solution",
"modules": [
"mysamplemodule",
"tc-aw-solution"
],
...

mysamplemodule

This folder is created to store your module's configuration.

module.json

A module file is created and populated in your module directory with the basic information about your
custom module.

{
"name": "mysamplemodule",
"description": "This is the mysamplemodule module",
"skipTest": true
}

commandsViewModel.json

These files create the client side model for the command. These define the command handlers,
placements, actions, conditions, and a pointer to the messages file. Only a skeleton of the file is shown
here for brevity.

{
"commands": {
"myCommand": {
},
"commandHandlers": {
"myCommandHandler": {
},
"commandPlacements": {
"aw_rightWall": {
},
"actions": {
"activatemyCommand": {
},
"conditions": {

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-35


© 2020 Siemens
4. Changing Active Workspace behavior

"objectIsSelected": {
},
"i18n": {
"myCommandTitle": [
}
}

mysamplemoduleMessages.json

This file contains all of the English localized text for the command. You can modify the displayed text by
making changes here.

{
"header": "Header",
"body": "Body",
"footer": "Footer",
"checkBoxName": "Enable the OK button in footer",
"save": "Ok",
"textValue": "Contents here",
"myCommandTitle": "myCommand"
}

You can copy this file and add the appropriate suffix to create a new translation file for another
language. Active Workspace will automatically find your files depending on the user's login language.

Example:
Add _de for a German language file.

mysamplemoduleMessages_de.json

Development utilities

Extended tooltip bulk update

Use the generateExtendedTooltip script to assign an extended tooltip view name to your commands in
bulk.

Normally, you might define your custom commands in the Command Builder, but if you have
generated them using the command-line, or created a new theme which includes a command, then you
would have to manually add an extended tooltip definition if you wanted one. For single or a few
commands this is feasible, however if you want to update the name of the extended tooltip view on
many commands at the same time, you want to use this script.

You can assign your own view or accept the default extended tooltip view provided with Active
Workspace, extendedTooltipDefault .

4-36 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Extended tooltip bulk update

How does it work?

The most simple use case is to have the script modify all commands defined within your STAGE\src\**
\commandsViewModel.json files. To do this, use the following syntax:

node node_modules/afx/build/js/generateExtendedTooltip.js

It will prompt you for the view name, and then modify the command definitions of all commands
defined in all your custom modules.

Example:
If you had created a red theme, your commands view model file might look like this before you
run this script:

"commands": {
"red": {
"iconId": "cmdSettings",
"title": "{{i18n.redTitle}}" }
}
},

But after, it would contain the tooltip view assignment.

"commands": {
"red": {
"iconId": "cmdSettings",
"title": "{{i18n.redTitle}}",
"extendedTooltip": {
"view": "extendedTooltipDefault"
}
}
},

Options

• If you intend to use this script regularly, you can register it in your package.json by adding the
following entry into the scripts section:

"generateTooltip": "node node_modules/afx/build/js/


generateExtendedTooltip.js"

Then you can run it using:

npm run generateTooltip

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-37


© 2020 Siemens
4. Changing Active Workspace behavior

• The script locates its source from the build.json file. If it cannot find this file, it will assume the STAGE
\src directory.

• The script assumes write permissions on the commandsViewModel.json files.

Reducing your AngularJS footprint

Use the following scripts to help you identify and reduce the amount of AngularJS content in your
custom JS files. Although still not recommended, the use of JS glue-code was sometimes necessary for
your customization.

All scripts must be run from, and all paths are relative to, the STAGE directory.

amdToES6
Converts the requireJS define pattern to the ES6 import pattern in the specified file or files.

SYNTAX:

node node_modules/afx/build/js/amdToES6.js
--sourcePath=<filePath/GlobalPath>

Example:
node node_modules/afx/build/js/amdToES6.js
--sourcePath=src/**/*.js

convertTestToUseInjector
Refactors the unit tests in preparation for services conversion.

SYNTAX:

node node_modules/afx/build/js/convertTestToUseInjector.js
--sourcePath=<filePath/GlobalPath>

Example:
node node_modules/afx/build/js/convertTestToUseInjector.js
--sourcePath=src/**/*.js

sourceInspect
Inspect the codebase to identify the number of factories, services, and directives. Also produces the
dependency tree for services.

SYNTAX:

4-38 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Reducing your AngularJS footprint

node node_modules/afx/build/js/sourceInspect.js
--sourcePath=<filePath/GlobalPath>
--destPath=<filePath/GlobalPath>

Example:
node node_modules/afx/build/js/sourceInspect.js
--sourcePath=src/**/*.js
--destPath=./out

convertService
Convert level 1 (leaf) services from the dependency tree produced by sourceInspect to insulate
angular dependency.

SYNTAX:

node node_modules/afx/build/js/convertService.js
--baseSourcePaths=<filePath/GlobalPath>
--sourcePathsToConvert=<filePath/GlobalPath>

Example:
node node_modules/afx/build/js/convertService.js
--baseSourcePaths=node_modules/afx/src/**/*,src/**/*
--sourcePathsToConvert=src/thinclientfx/tcuijs/**/*

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 4-39


© 2020 Siemens
4. Changing Active Workspace behavior

4-40 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
5. Administration
Utilities

Command-line utilities

In order to perform some administrative activities, you must run command-line utilities. Even if it's not
the only option, sometimes using command-line utilities can also make some administrative tasks
easier.

To run command-line utilities, you must have access to the Teamcenter platform command-line
environment.

For information about working with command-line utilities, refer to the Utilities Reference in the
Teamcenter collection.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-1


© 2020 Siemens
5. Administration

awindexerutil

Refreshes indexed objects if you make changes to them and you want the synchronization flow to
refresh the index for those objects. The awindexerutil utility marks those objects to be picked up during
the next synchronization flow batch. This allows you to update the index without the downtime of a full
index flow.

You can refresh your index for only the delta of changes since the last completed synchronization. You
can index changes for types and properties that have been added, modified, or removed, by performing
a delta update when you remerge Solr and Teamcenter schemas and update the index.

Running awindexerutil does not interfere with current synchronization flows.

Run the utility from the TC_ROOT\bin directory (TC_BIN if it's set).

SYNTAX

awindexerutil -u=user-id -p=password -g=group [-refresh] [-delta [-dryrun] [-daterange]] -h

ARGUMENTS

-u
Specifies the user ID. The user needs administration privileges.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the user and password
arguments are authenticated externally through SSO rather than against the Teamcenter
database. If you do not supply these arguments, the utility attempts to join an existing SSO
session. If no session is found, you are prompted to enter a user ID and password.

-p
Specifies the password.
-g
Specifies the group associated with the user.
-refresh
Starts the synchronization flow according to the batch size.
-delta
Updates the index for the delta of changes to object types and properties since the last completed
synchronization. Be sure to run -delta -dryrun to evaluate the changes before running the -delta
index update.

5-2 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
awindexerutil

Use this approach to remerge Solr and Teamcenter schemas and to update the index.
-dryrun
Use with -delta to compare the changes in object types and properties for delta reindexing. No
indexing is performed. The differences are output to the command window and a log file. The .log
file path is returned after the operation is complete.
-daterange
Use with -delta or -delta -dryrun to set a date range for object types and properties that can be
indexed in the updated schema. To set the date range, use the following year-month-day form:

YYYY/mm/dd HH:MM:SS-YYYY/mm/dd HH:MM:SS

The time (HH:MM:SS) is optional. You can specify multiple ranges in a comma-separated list. If the
specified date range contains spaces, enclose the entire specification in quotation marks.
-classification
Used together with the -delta argument, evaluates the schema files and marks the changes in
classification data for indexing in the next scheduled indexing synchronization run. Run the utility
with the -classification -delta -dryrun arguments to receive a list of changes that will be marked for
indexing when the awindexerutil is run.
-h
Displays help for this utility.

EXAMPLES

• Start the synchronization flow to refresh data objects:

awindexerutil -u=admin -p=pwd -g=group -refresh

• Start the dry run comparison of the delta of indexing changes. All instances of new, modified, and
deleted types and properties are identified. For newly indexed types, only those instances that were
changed during the specified date range (2012/12/12 – 2016/12/31) are included. Only a report is
returned. No indexing changes are made.

awindexerutil -u=admin -p=pwd -g=group -delta -dryrun

-daterange=2012/12/12-2016/12/31

• Start reindexing the delta of changes. Updates all new, modified, and deleted types and properties.

awindexerutil -u=admin -p=pwd -g=group –delta

• Start reindexing the delta of changes. Updates all new, modified, and deleted types and properties.
For types that are newly added, only those objects last modified in the specified date range are
indexed.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-3


© 2020 Siemens
5. Administration

awindexerutil -u=admin -p=pwd -g=group –delta –daterange=

”2015/12/12 15:30:00 – 2015/12/31 22:00:00, 2016/02/01 07:00:00

– 2016/12/31 14:00:00”

• Mark changes in classification data for indexing:

awindexerutil -u=admin -p=pwd -g=group –delta –classification

5-4 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
bomindex_admin

bomindex_admin

Adds structured content to the search index.

SYNTAX

bomindex_admin [-u=user-id {-p=password | -pf=password-file} -g=group] -logfile=location_of_logfile


-function=[create | delete | list | upgrade] -inputfile=location_of_inputfile

ARGUMENTS

-u
Specifies the user ID. This is a user with administration privileges.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the user and password
arguments are authenticated externally through SSO rather than being authenticated against
the Teamcenter database. If you do not supply these arguments, the utility attempts to join an
existing SSO session. If no session is found, you are prompted to enter a user ID and password.

-pf
Specifies the password file that holds the cleartext or encrypted password. For enhanced
security, use a password file instead of the password. If the -pf argument is not used, the system
uses the given password.
-p
Specifies the password.

This argument is mutually exclusive with the -pf argument.


-g
Specifies the group associated with the user.

If used without a value, the user's default group is assumed.


-logfile
Specifies the location of the log file written by the utilities. You can specify a different location for
each utility.
-function=function-name
Performs the following functions:

create Creates the BOMIndexAdminData objects based on the input file.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-5


© 2020 Siemens
5. Administration

delete Finds the BOMIndexAdminData objects in the input file and marks them as
deleted.
list Creates the input file for update or delete operations for existing
BOMIndexAdminData business objects. The generated file also reports
BOMIndexAdminData properties such as window-uid.
upgrade Upgrades the definition of BOM index tables when the property set is modified.

-inputfile
Specifies the location of a file containing the list of structure objects to index. The input file line
format is as follows:

item-query-string | item-revision-ID | base-revision-rule | effectivity-unit |


effectivity-end-item-query-string | effectivity-date (dd-mmm-yyyy hh:mm:ss) |
variant-rules | subscribers | closure-rules

An example of an input file (bomindex_admin_input.txt):

item_id=HDD-0527 | B | Any Status; Working | 5 | item_id=HDD-0527 |


31-May-2013 00:00:00 | vrule1:item_id=OwnItem1:B,vrule2:,vrule3:item_id=OwnItem3:A |
MMV | closurerule1

• effectivity-unit
If you have multiple effectivity units, their numbers must be comma-separated. Also, you must
repeat the effectivity end item query string for each effectivity unit, for example:

| 5,10,12 | item_id=HDD-0527,item_id=HDD-0527,item_id=HDD-0527 |

The maximum number of effectivity units you can specify is 960.

• variant-rules
The variant rules (also known as saved variant rules) are comma-delimited, and follow this
format:

SVR-name:owning-item-query-string:owning-itemrevision-ID

The topline item revision is the default owner.


The maximum number of saved variant rules you can specify is 960.

• subscribers
(Optional) You may specify one of the following:

• MMV
Specifies that this product configuration is indexed for Massive Model Visualization (MMV).
MMV is a visualization technology that uses Visibility Guided Rendering (VGR) to increase
performance and scalability for the viewing of extremely large 3D models, such as cars,
airplanes, and ships. Use of MMV requires deployment of the Visualization Data Server.

5-6 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
bomindex_admin

• VDS
Specifies that this product configuration is indexed for viewing using the Visualization Data
Server. This makes the structure available faster in visualization. VDS requires deployment of
the Visualization Data Server.

• closure-rules
(Optional) If a closure rule is applied for a configuration, content in the structure (excluded by the
closure rule) does not appear in where used query results for top-level contexts.

• structure-type
(Optional) The type of structure that the product represents. Specify OCC if the product is the
occurrence type ItemRevision. Specify 4G if the product is a 4GD collaborative design type. OCC
is the default value if not specified.

• owning-user
(Optional) If Visualization for MMV is enabled for the product, specify the user who owns the
MMV delta collection dataset.

• MMVIdxAccessControllers
(Optional) Specify the users that control access to MMV index files.

HOW TO SPECIFY OWNING USER AND MMVIDXACCESSCONTROLLERS

Each VDS site can be configured to run as a different user. BOMIndexAdminData table entries are
returned according to the permission specified for the configured VDS user. This helps you implement
export compliance using these attributes.

Example:
Site owners configured for each VDS site:

• USA is VDSadmin

• Mexico is mex_VDSadmin

• Canada is can_VDSadmin

• China is chi_VDSadmin

BOMIndexAdminData (BIAD) entries are defined as follows:

MMV
Revision Structure Owning MMV Access
BIAD Product Rule Type User Users
Biad1 Ship Latest 4GD VDSadmin mex_VDSadmin
Working

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-7


© 2020 Siemens
5. Administration

MMV
Revision Structure Owning MMV Access
BIAD Product Rule Type User Users
can_VDSadmin
Biad2 Truck Latest BVR VDSadmin mex_VDSadmin
Working
can_VDSadmin
chi_VDSadmin
Biad3 Car Latest BVR VDSadmin chi_VDSadmin
Working

To summarize the access for each VDS site:

• USA site user VDSadmin


Access to Biad1, Biad2, and Biad3 because it is specified as the MMV owning user.

• Mexico site user mex_VDSadmin


Access to Biad1 and Biad2 only. No access to Biad3.

• Canada site user can_VDSadmin user


Access to Biad1 and Biad2 only. No access to Biad3.

• China site user chi_VDSadmin user


Access to Biad2 and Biad3 only. No access to Biad1.

EXAMPLE

The following command creates a search index of structures:

bomindex_admin -u=username -p=password -g=dba


-logfile=C:\Scratch\log\log1.txt
-function=create -inputfile=C:\Scratch\log\bomindex_admin_input.txt

OVERRIDING EFFECTIVITY

When you want to specify override effectivity, do not specify it in the input file containing the product
configurations to index. The override effectivity in the input file is ignored during index generation,
causing a discrepancy between the indexed BOM and the BOM in use.

To set override effectivity during index generation, add the effectivity data to a Revision Rule.

For example, the Revision Rule might contain:

5-8 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
csv2tcxml.perl utility

Z_ACE_DateOverride_Rule23_10Jan2020

which includes entries for the effective date 10-Jan-2020 00:00:00.

The corresponding input file entry for bomindex_admin would have this corresponding effectivity
override entry:

item_id=ACE_KK_EC01 | A | Z_ACE_DateOverride_Rule23_10Jan2020 | | | | | |

csv2tcxml.perl utility

Note:
The TC_DATA\csv2tcxml_perl\csv2tcxml.perl utility described here is deprecated and support will
be removed in a future release.
The replacement utility is TC_DATA\csv2tcxml\csv2tcxml.perl (named the same, but stored in a
different directory). This replacement utility is recommended for new data migrations. Refer to the
CSV2TCXML Converter Guide in the TC_DATA\csv2tcxml directory for instructions on its use.
See Choosing a CSV to TC XML converter version in Teamcenter help.

Converts a file formatted similar to a CSV file into a TC XML file that can be imported into a Teamcenter
site. You use this utility to migrate data from a legacy system into Teamcenter using the bulk load
function of the tcxml_import utility. For more information, see Teamcenter help.

Note:
The csv2tcxml_config.txt file contains default values for many of the arguments. You can override
any of the variable values in this file temporarily by adding them into the command line
arguments when you type the command. Use the format argument-name=argument-value.

Syntax

perl csv2tcxml.perl [split] {file-name | reports input-directory}


[split-file-integer]

Arguments

split
Indicates that the input file is processed as a set of subfiles. The converter processes the number of
lines indicated by the split-file-integer argument as a subfile. The next set of lines are then
processed until it has processed all lines in the indicated file. This allows more efficient use of
memory for very large files and can prevent memory limit errors.
file-name

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-9


© 2020 Siemens
5. Administration

Defines the name of the TC XML output file that you use to import the legacy data into the target
Teamcenter site. This argument is required unless you are generating reports.
reports
Generates the HTML report from the log files in the indicated directory. This report shows summary
information, breakup of the objects created, performance of the conversion with time taken for
each step, and the number of errors and warnings the converter generated. It also includes a link to
the log file.
input-directory
Indicates the directory containing the log files used to generate the HTML report.
split-file-integer
Indicates the number of lines to process as a subfile when you specify the split argument. If you do
not specify a split value, the converter uses 100,000 as the default value.

Examples

• To read the input CSV file and generate a puid-based TC XML file for items:

perl csv2tcxml.perl items.csv

• To read the input CSV file and generate a puid-based TC XML file for datasets that does not contain
item or revision information in the file:

perl csv2tcxml.perl dataset.csv item=exist

• To read the input CSV file and generate a puid-based TC XML file for datasets that does not contain
BOM or GRM information in the file:

perl csv2tcxml.perl bom.csv item=exist

• The following is an example of the converter's progress indicator output:

D:\tcxml> perl D:\scripts\csv2tcxml.perl D:\scripts\samples\items.csv source_site=10000


-> 0 of 5 : Processing
[D:\scripts\samples\items.csv] in [puid] with item-exists=[0] ...
-> 1 of 5 : Generating GSids
!
-> 2 of 5 : Converting GSids to Puids
-> 3 of 5 : Converting CSV to TCXML
!
-> 4 of 5 : Creating tcxml file
-> 5 of 5 : Printing & Validating tcxml stats
NOTE: *** 3 errors 0 warnings 0 duplicates logged in
[D:\scripts\samples\items.csv.log] ***
-> Total time = 0 seconds

5-10 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
csv2tcxml.perl utility

• To import a custom form that is attached to an item revision, in csv2tcxml_mapping.txt add the
following line file to the #CREATE_OBJECT_COLUMNS section and replace CostDataForm with the
custom form type name.

CustomFormName|CostDataForm:object_name<-IMAN_reference<-ItemRevision

In the .csv file, add the following column name and provide a value in each row to create the custom
form.

!Item:item_id|ItemRevision:item_revision_id|CustomFormName
100223|A|cost-frm-1
100778|A|cost-frm-2

• To process multiple imports for an assembly, include the occurrence ID (occ_id) property. A unique
occ-id column must be provided if the BOM data is updated multiple times as shown in the following
example:

!parent_item|parent_rev|child_item|child_rev|occ_id
car|A|wheel|A|front-left
car|A|wheel|A|front-right
car|A|wheel|A|rear-left
car|A|wheel|A|rear-right

Errors and warnings

The converter generates the following error messages:

• Required input (source_site) missing in config file and command line.


• Column count in Header is different than columns in a row.
• Item id value length is less than 1.
• Custom Item type used in csv file is missing in csv2tcxml_datamodel.txt
file.
• Island 0 (admin) objects are not on top of xml file.
• Class/type in item, itemrevision, form, psbomview objects is not valid.
• Dataset type, tool/format and volume/sdpath definition is missing.
• Puid value of BO is invalid in itemrevision, form, dataset, bvr, psocc,
relation and generic BO.
• Unsupported secondary object during generic BO creation with GRM.
• Primary object missing during generic BO creation thru attribute
reference.
• Duplicate Puid generated.
• Business object/attribute name(s) used in column name is missing in
Teamcenter schema.
• Item helper classes/types defined in csv2tcxml_datamodel.txt is missing in
Teamcenter schema.
• Dataset/ImanRelation types used in csv file is missing in Teamcenter
schema.
• Category defined in mapping is unknown or unsupported.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-11


© 2020 Siemens
5. Administration

The converter generates the following warning messages:

• Unsupported command line parameters.


• Certain column in csv file is not mapped in mapping file.
• Required attribute is empty.

5-12 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
delete_uiconfig

delete_uiconfig

Deletes column configuration objects.

SYNTAX

delete_uiconfig [-u=user-id] { [-p=password | -pf=password-file] } [-g=group] (args)

ARGUMENTS

This is a pre-upgrade utility to delete column configuration objects and their related BusinessObject
instances. Execute the utility by using one argument at a time. If multiple arguments are used, then only
one argument is considered and the rest are ignored. The order of precedence is as follows.

1. -prefix

2. -client_scope

3. -column_config_id

4. -col_def_obj_type

Only administrative users are allowed to run the utility and is not intended to be used as a general
purpose utility.

-u
Teamcenter user ID.
-p
Teamcenter password.
-g
Teamcenter group.
-prefix
Deletes all client scopes and column configurations whose ID starts with the specified
prefix. ColumnDef objects referencing the column configuration are also deleted.
-client_scope
Deletes the client scope, its associated column configurations, and the ColumnDef objects
referenced by the client scope.
-column_config_id
Deletes the column configuration object specified by this ID. Multiple values can be provided using
comma separators.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-13


© 2020 Siemens
5. Administration

-col_def_obj_type
Deletes the ColumnDef objects referencing the specified type. Multiple values can be provided
using comma separators
-log
Full path to write execution results. If the log file option is not specified, then the default log file will
be created in the TEMP directory
-h
Displays the help for this utility.

5-14 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
export_uiconfig

export_uiconfig

Exports column configuration XML files.

SYNTAX

export_uiconfig [-u=user-id] { [-p=password | -pf=password-file] } [-g=group] (args)

ARGUMENTS

-u
Specifies the user ID.

Typically infodba or another user with administration privileges is used as the value name for the
user ID. If -u is used without a value, the operator system user name is automatically applied.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the -u and -p arguments
are authenticated externally through SSO rather than being authenticated against the
Teamcenter database. If you do not supply these arguments, the utility attempts to join an
existing SSO session. If no session is found, you are prompted to enter a user ID and password.

-p
Specifies the password.

If used without a value, the system assumes a null value. If this argument is not used, the system
assumes the user-ID value to be the password.

This argument is mutually exclusive with the -pf argument.


-pf
Specifies the password file.
-g
Specifies the group associated with the user.

If used without a value, the user's default group is assumed.


-file
Specifies the path and file name for the output file.
-for_group
Specifies the group or groups to which user interface configuration objects are exported.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-15


© 2020 Siemens
5. Administration

To specify more than one group, use commas to separate the group names.
-for_role
Specifies role or roles to which user interface configuration objects are exported.

To specify more than one role, use commas to separate the role names.
-for_workspace
Specifies workspace or workspaces to which user interface configuration objects are exported.

To specify more than one workspace, use commas to separate the workspace names.
-client_scope_URI
Specifies, for export only, the column configurations and command contributions corresponding to
the indicated client scope only.

The Awb0OccurrenceManagement scope must be added if you use this argument.

Note:
Client scope refers to a sublocation in the client, not group or role.

-client
Specifies, for export only, the column configurations and command contributions corresponding to
this client only.
-h
Displays help for this utility.

EXAMPLES

To export all the site-wide column configurations:

export_uiconfig -u=<user_id> -p=<password> -g=dba -file=exported.xml

To export all the column configurations specific to the Engineering group:

export_uiconfig -u=<user_id> -p=<password> -g=dba -file=exported.xml


-for_group=Engineering

To export the inbox table column configuration specific to the Engineering group.

export_uiconfig -u=<user_id> -p=<password> -g=dba -file=exported.xml


-for_group=Engineering -client_scope_URI=fnd0Inbox

5-16 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
export_wsconfig

export_wsconfig

Exports workspace configuration XML files.

SYNTAX

export_wsconfig [-u=user-id] { [-p=password | -pf=password-file] } [-g=group] (args)

ARGUMENTS

-u
Specifies the user ID.

A user with administration privileges is used as the value name for the user ID. If -u is used without a
value, the operator system user name is automatically applied.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the -u and -p arguments
are authenticated externally through SSO rather than being authenticated against the
Teamcenter database. If you do not supply these arguments, the utility attempts to join an
existing SSO session. If no session is found, you are prompted to enter a user ID and password.

-p
Specifies the password.

If used without a value, the system assumes a null value. If this argument is not used, the system
assumes the user-ID value to be the password.

This argument is mutually exclusive with the -pf argument.


-pf
Specifies the password file.
-g
Specifies the group associated with the user.

If used without a value, the user's default group is assumed.


-for_workspace=<workspace-name>
Specifies workspace or workspaces which are exported.

To specify more than one workspace, use commas to separate the workspace names.
-file

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-17


© 2020 Siemens
5. Administration

Specifies the path and file name for the output file.
-h
Displays help for this utility.

EXAMPLES

To export all the workspace configurations:

export_wsconfig -u=<user_id> -p=<password> -g=dba -file=exported.xml

To export the workspace configuration for the myCustomWorkspace workspace:

export_wsconfig -u=xxx -p=xxx -g=dba -for_workspace=myCustomWorkspace -file=exported.xml

5-18 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
generate_admin_data_report

generate_admin_data_report

Generates a report showing the specified administration data for the site where you run the utility or for
an export package. The export package can be from a remote site.

The report contains HTML pages for the administration data objects, showing their properties with
hyperlinks to referenced objects. If an object is referenced by other objects, its HTML page contains a
where-used table that indicates the categories and objects that have references to the current object.

The report has a summary showing all the administration data types included in the report and the
instances of each element present within the category. The report also has a glossary page with
descriptions of the administration data categories and the elements available in each of the categories.

SYNTAX

generate_admin_data_report -u=user-ID {-p=password | -pf=password-file}


-g=group
-adminDataTypes=Admin-data1,Admin-data2,…,Admin-dataX | all
[-inputPackage=input-package-path]
-outputDir=path-to-directory-for-report-files
[-listTypes]
[-h]

ARGUMENTS

-u
Specifies the user ID. The user must have administrative privileges.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the -u and -p arguments
are authenticated externally through SSO rather than being authenticated against the
Teamcenter database. If you do not supply these arguments, the utility attempts to join an
existing SSO session. If no session is found, you are prompted to enter a user ID and password.

-p
Specifies the user's password.

This argument is mutually exclusive with the -pf argument.


-pf
Specifies the password file.

For more information about managing password files, see Utilities Reference in Teamcenter help.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-19


© 2020 Siemens
5. Administration

This argument is mutually exclusive with the -p argument.


-g
Specifies the group associated with the user.
-adminDataTypes
Specifies the types of administrate data to include in the compare report. You provide the data types
as a comma-separated list (no spaces). You may also specify the all value to include all data types
defined in the local system or the specified input package.

Tip:
Use the -listTypes argument to get a list of available administration data types.

If the report contains multiple data types, it includes a where used table showing where each object
is referenced.
-inputPackage
Specifies the full path, including the file name, of the export administration data package from the
site for which the report is generated. If you do not specify this argument, the utility generates a
report for the local site.
-outputDir=
Specifies the path to directory where you want the report saved. You must specify this argument.
-listTypes
Displays a list of the available administration data types that you can include in the report.
-h
Displays help for this utility.

ENVIRONMENT

As specified in Manually configure the Teamcenter environment in Utilities Reference in Teamcenter


help.

This is a Java utility that, by default, has the maximum Java heap size set to 1024M. For reports that
contain a large number of objects, you may need to increase maximum Java heap size to avoid out-of-
memory errors or poor performance. If possible, set the maximum heap to at least to 4096M for large
reports. You can set this value using the BMIDE_SCRIPT_ARGS environment variable, for example:

set BMIDE_SCRIPT_ARGS=-Xmx4096M

5-20 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
generate_admin_data_report

Note:
Java standards require that no more than 25 percent of total RAM be allocated to virtual memory
(VM). If the amount allocated to the Java VM exceeds this percentage, degradation of
performance can occur.

FILES

EXAMPLES

• Generate a list of the administration data types that you can export:

generate_admin_data_report -u=admin-username -p=admin-password -g=dba


-listTypes

• Generate a report containing the preferences and their values at the local site:

generate_admin_data_report -u=admin-username -p=admin-password -g=dba


-adminDataTypes=Preferences -outputDir=C:\temp\admin_data\siteA
\preferences_report

• Generate a report containing the Access Manager and Organization administration data from an
export package of a remote site:

generate_admin_data_report -u=admin-username -p=admin-password -g=dba


-adminDataTypes=AccessManager,Organization -inputPackage=C:\temp
\admin_data\siteB\siteB.zip -outputDir=C:\temp\admin_data\siteB
\am_and_organization_report

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-21


© 2020 Siemens
5. Administration

import_uiconfig

Imports column configuration XML files.

SYNTAX

import_uiconfig [-u=user-id] { [-p=password | -pf=password-file] } [-g=group] (args)

ARGUMENTS

-u
Specifies the user ID.

Typically infodba or another user with administration privileges is used as the value name for the
user ID. If -u is used without a value, the operator system user name is automatically applied.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the -u and -p arguments
are authenticated externally through SSO rather than being authenticated against the
Teamcenter database. If you do not supply these arguments, the utility attempts to join an
existing SSO session. If no session is found, you are prompted to enter a user ID and password.

-p
Specifies the password.

If used without a value, the system assumes a null value. If this argument is not used, the system
assumes the user-ID value to be the password.

This argument is mutually exclusive with the -pf argument.


-pf
Specifies the password file.
-g
Specifies the group associated with the user.

If used without a value, the user's default group is assumed.


-file
Specifies the path and file name for the input file.
-for_group
Specifies the group or groups to which user interface configuration objects are imported.

5-22 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
import_uiconfig

To specify more than one group, use commas to separate the group names.
-for_role
Specifies role or roles to which user interface configuration objects are imported.

To specify more than one role, use commas to separate the role names.
-for_workspace
Specifies workspace or workspaces to which user interface configuration objects are imported.

To specify more than one workspace, use commas to separate the workspace names.
-action=<value>
override (default): Specifying this option will override the existing column configuration with the
new one.

skip: Specifying this option will cause the existing column configuration to be retained and will not
be updated. However, if there is no existing configuration, then one will be created.

merge: Specifying this option will merge the new column configuration with the existing one. This
may cause column order to change.
-h
Displays help for this utility.

Note:
If neither -for_group or-for_role arguments are included, user interface configuration objects are
imported with Site scope.

EXAMPLES

To import the configuration specified in the XML file for multiple roles, in this case: Designer and
engineer.

import_uiconfig -u=<user_id> -p=<password> -g=dba -file=exported.xml


-for_role=Designer,engineer

To import the configuration specified in the XML file for the Engineering group.

import_uiconfig -u=<user_id> -p=<password> -g=dba -file=exported.xml


-for_group=Engineering

To import the configuration specified in the XML file for multiple groups, in this case Engineering,
system and "Validation Administration".

import_uiconfig -u=<user_id> -p=<password> -g=dba -file=exported.xml


-for_group=Engineering,system,"Validation Administration"

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-23


© 2020 Siemens
5. Administration

Note:
A parameter containing spaces, such as Validation Administration in the preceding example,
must be enclosed in double quotation marks (").

5-24 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
import_wsconfig

import_wsconfig

Imports workspace configuration XML files.

SYNTAX

import_wsconfig [-u=user-id] { [-p=password | -pf=password-file] } [-g=group] (args)

ARGUMENTS

-u
Specifies the user ID.

A user with administration privileges is used as the value name for the user ID. If -u is used without a
value, the operating system user name is automatically applied.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the -u and -p arguments
are authenticated externally through SSO rather than being authenticated against the
Teamcenter database. If you do not supply these arguments, the utility attempts to join an
existing SSO session. If no session is found, you are prompted to enter a user ID and password.

-p
Specifies the password.

If used without a value, the system assumes a null value. If this argument is not used, the system
assumes the user-ID value to be the password.

This argument is mutually exclusive with the -pf argument.


-pf
Specifies the password file.
-g
Specifies the group associated with the user.

If used without a value, the user's default group is assumed.


-action=<value>
Currently, the only action available is delete.

The delete option will remove existing workspace configurations.


-file

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-25


© 2020 Siemens
5. Administration

Specifies the path and file name for the input file.
-h
Displays help for this utility.

EXAMPLE

To import the workspace configurations specified in the XML file:

import_wsconfig -u=<user_id> -p=<password> -g=dba -file=ws.xml

5-26 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
req_word_html_converter

req_word_html_converter

As an administrator, you can selectively convert requirement content in HTML format to Microsoft Word
format (or the reverse, depending on the option selected). You can perform a selective conversion by
providing a criteria file or a comma separated file containing fullText UIDs or directory containing
multiple such Fulltext UID files. In non-permanent selective conversion from rich text to Microsoft Word,
the converted requirements have the necessary named reference attachments as MSWordXPart;
however, the content type remains rich text. Similarly, in non-permanent conversions from Micorsoft
Word to rich text, the converted requirements have the named references attachments as Arm0HTML
and Arm0HTMLIMG, but the content type is still rich text.

Note:
Before you run this utility, ensure that the Active Workspace Requirements Management feature is
installed. Several files are created in the transient volume folder when you run the utility:

• failed_ID.txt contains failed UIDs separated by commas

• invalidIDs.txt contains invalid UIDs

• validIDs.txt contains valid UIDs

• dumpLogs.log if you use dumpLogs options

• All log files are located in the transient volume folder.

• The utility performs conversion for the following objects only: SpecElementRevision,
SpecElement, or SpecificationRevision.

SYNTAX

req_word_html_converter [-u=user-id -p=password | password-file -g=group]


] [-path=full file path of HtmlConverter01.exe
] [-dumpLogs] [-forceUpdate] [-h][-htmlToWord] [-wordToHtml]
[-processObjectList=full path of the text file containing FullTextUIDs -in=full file path of criteria file ][-
permanentConvert] [-dryRun]

ARGUMENTS

-u
Specifies the user ID to be used for the upgrade.

This is generally infodba or another user with administration privileges.


-p
Specifies the password for the specified user ID.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-27


© 2020 Siemens
5. Administration

-g
Specifies the group associated with the user.
-failedObjects
(Optional) Specifies the full path to the failed_IDs.txt file that reports the specification element
subtypes that were not converted.
-path
Specifies the full path to the (.Net)-HtmlConverter01.exe utility.
-dumpLogs
(Optional) Dumps a detailed debug log with more information about the point in the code the utility
is failing or which full-text dataset is causing the error.
-forceUpdate
(Optional) Forces the update and repair of all requirements in database even if they were previously
converted.
-h
Displays help for this utility.
-htmlToWord
Converts requirements from HTML format to Microsoft Word.
-wordToHtml
Converts requirements from Microsoft Word format to HTML.
-processObjectList
Specifies the full path of the text file containing FullText UIDs.
-in
Specifies a selective conversion of an entire requirement specification structure to html. The input is
a criteria file that defines this structure.

The schema for the file is as follows:

KEYWORD_SEPARATOR=KWS

KEY_VALUE_SEPARATOR=KVS

RULE_SEPARATOR=RS

keys KWS key1=value1 KVS keyN=valueN RS rev_rule KWS revision-rule RS topline_rev KWS
topline rev

keys KWS key1=value1 KVS keyN=valueN RS rev_rule KWS revision-rule RS

5-28 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
req_word_html_converter

keys KWS key1=value1

Note the following conditions:

• The KEYWORD_SEPARATOR, KEY_VALUE_SEPARATOR, and RULE_SEPARATOR entries are


required and you must enter in the order indicated. These entries define the separators that
segregate the key-value pairs and keywords from corresponding values. You cannot use the
equals sign (=) as the value for these entries. For example, the entry RULE_SEPARATOR= = is
invalid.

• Separate all entries with the new-line character (\n).

• Staring in the fourth row, define the entries as follows:

• Segment 1 (Required)
Consists of multi-field key-value (MFK) pairs. Based on the MFK, requirement revisions are
retrieved, and then further configuration is applied based on Segment 2 and Segment 3.
Syntax
keys KWS key1=value1 KVS key2=value2 KVS keyN=valueN
Example
keys : item_id=REQ-000002 , object_type=Requirement

• Segment 2 (Optional unless Segment 3 is defined)


Denotes the revision rule to apply to the revision retrieved based on the MFK pairs in Segment
1.
If you do not define this segment, then the defined revision rule as read from preference
TC_config_rule_name is applied.
Syntax
rev_rule KWS revision_rule_name
Example
rev_rule : Latest Working

• Segment 3 (Optional)
Defines the revision of the item retrieved on the basis of the MFK pairs defined in Segment 1.
You can use this segment to determine the structure of interest. If you do not define this
segment, then the latest revision is considered for configuring structure. If this segment is
defined then you must define Segment 2 also.
For example, if the MFK pairs in Segment 1 return a particular item such as
item_id=REQ-000002, then there can be different structures for different revisions of this
item. Revision A as a top line might contain 6 children items; revision B might contain 12
children items.
Syntax
topline_rev KWS topline_revision
Example
topline_rev : A

• Example: valid input criteria file


KEYWORD_SEPARATOR=:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-29


© 2020 Siemens
5. Administration

KEY_VALUE_SEPARATOR=,
RULE_SEPARATOR=|
keys: item_id=REQ-000001 | rev_rule:Any Status; Working | topline_rev:A
keys: item_id=REQ-000002 , object_type=Requirement | rev_rule:Latest Working
keys: item_id=REQ-000002 , object_type=Requirement | rev_rule:Precise Only
keys: item_id=REQ-000003 keys: item_id=REQ-000003 | rev_rule:Precise Only

• Example: invalid input criteria file


KEYWORD_SEPARATOR= = (invalid because the equals sign (=) is not a valid separator)
KEY_VALUE_SEPARTOR=, (invalid because KEY_VALUE_SEPARATOR is misspelled)
RULE_SEPARATOR| (invalid because the equals sign (=) is missing)
keys: item_id=REQ-000001 | rev_rule: | topline_rev:A (invalid because the revision rule name is
not provided)
rev_rule:Latest Working | keys: item_id=REQ-000002 , object_type=Requirement (Invalid
because Segment 1, Segment 2, and Segment 3 must be defined in that order: Segment 1 is the
MFK, Segment 2 is the revision rule, and Segment 3 is the topline revision )
keys: item_id=REQ-000003 | topline_rev:A (Invalid because Segment2 is skipped and directly
Segment3 is defined)
-permanentConvertToHTML
(Optional) Permanently converts requirements to one of the following formats:

• If you include the -wordToHtml switch, converts to HTML format, which is editable in the CK
Editor in the Documentation tab.

• If you include the -htmlToWord switch, converts to Word format, which is not editable in the CK
Editor in the Documentation tab.
-dryRun
Dumps the valid UIDs in validIDs.txt and invalidIDs.txt, and the actual conversion does not occur.

EXAMPLES

req_word_html_converter -u=user_id -p=password -g=group -path=full file path of


WordHtmlConverter.exe

req_word_html_converter -u=user_id -p=password -g=group -path=full file path of


WordHtmlConverter.exe -forceUpdate -htmlToWord

req_word_html_converter -u=user_id -p=password -g=group -path=full file path of


WordHtmlConverter.exe -dumpLogs -htmlToWord

req_word_html_converter -u=user_id -p=password -g=group -path=full file path of


WordHtmlConverter.exe -in=full path of the criteria file for selective conversion -wordToHtml

req_word_html_converter -u=user_id -p=password -g=group -path=full file path of


WordHtmlConverter.exe -processObjectList=full path of the process uidst text file -wordToHtml

5-30 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
req_word_html_converter

req_word_html_converter -u=user_id -p=password -g=group -path=full file path of


WordHtmlConverter.exe -dir=full path of the folder that contains text files with process uids -
htmlToWord

req_word_html_converter -u=user_id -p=password -g=group -path=full file path of


WordHtmlConverter.exe -permanentConvert -htmlToWord

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-31


© 2020 Siemens
5. Administration

runTcFTSIndexer

Indexes Teamcenter data into the Solr search engine. Run this command from the FTS_INDEXER_HOME
directory, for example, TC_ROOT\TcFTSIndexer\bin.

SYNTAX

runTcFTSIndexer-debug -maxconnections -status -stop -service -shutdown -task=[objdata |


multisite | structure | fourgd]:flow-action -h

ARGUMENTS

-debug
Reports a summary of the flow in progress, including connections and the logs associated with
them, to the command window and to the TcFtsIndexer logs in TcFTSIndexer\logs\. Run -debug in a
separate command window.

runTcFTSIndexer -debug
-maxconnections
Sets a new value for maximum tcserver connections to use at any given time, for example:

runTcFtsIndexer -maxconnections=5
-status
Checks the status of the indexer and reports the flows running in the indexer. For example, the
following shows the status for all the flows:

runTcFTSIndexer -status

This argument can also be used with the -task argument. For example, the following command
shows the status of the objdata:index flow:

runTcFtsIndexer -status -task=objdata:index


-stop
Stops indexing flows that use an interval.

runTcFTSIndexer -stop

This argument can also be used with the -task argument. For example, the following command
stops the objdata:sync flow with intervals:

runTcFtsIndexer -stop -task=objdata:sync


-service

5-32 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
runTcFTSIndexer

Starts the indexer as a Java Remote Method Invocation (RMI) service in a console, for example:

runTcFtsIndexer -service

This argument can also be used with the -task argument to run a flow when starting the service, for
example:

runTcFtsIndexer -service -task=objdata:index


-shutdown
Shuts down the service after stopping all the flows.

runTcFTSIndexer -shutdown
-task
Runs an indexing task using this format:

-task=type:flow-action

The type of task can be objdata for object data indexing, multisite for multi-site published records,
structure for structured content indexing, or fourgd for 4GD. Flow actions are specific to the type
of task.
-h
Displays the help for this utility.

OBJDATA FLOW ACTIONS

• objdata:clear
Clear existing indexed data, records, and cached files. This option is most often used prior to running
objdata:index. Specify the numeric code of the option you want to run using the form -
task=objdata:clear n.

1 clears the indexer cache.

2 clears the Solr index.

3 clears the object data indexing records from the accountability table.

4 clears the data covered by options 1, 2, and 3.

5 clears the UIDs passed in from the accountability table.


When you specify this option, append the path_to_uid_file to the directory containing the uid.txt
file, using the form:

-task=objdata:clear n path_to_uid_file

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-33


© 2020 Siemens
5. Administration

6 cancels the clear flow.

7 cleans up the scratch table records, where the last saved date precedes the last processed date
of the subscription table.

Example:
runTcFtsIndexer -task=objdata:clear 5 d:\uids\uid.txt

• objdata:errors
Return the errors for indexing failures to a specified directory. The directory must be empty. You can
optionally specify the number of errors to return. The default, if not specified, is 50 errors.
The error directory contains a directory for each UID of the failed object. Each UID directory contains
the following information:

• Properties such as object name and type provide information on the failed objects.

• The TC XML and Solr XML files are generated and saved for debugging.

• Syslog information.

• TcFtsIndexer log files with the errors.

In this example, the first 100 errors are sent to the specified output directory:

runTcFtsIndexer -task=objdata:errors d:\TcFTSIndexer\errors 100

• objdata:index
Without clearing the existing index, this flow action performs indexing for the time period specified in
the TC_ROOT\TcFTSIndexer\conf\TcFtsIndexer_objdata.properties file.
For a clean start, first use objdata:clear to clear indexed data and cached files.

• objdata:indexsyncfailures
Use this flow to index synchronization failures that required manual intervention.

• objdata:recover
Recovers failed indexed objects.
If failures are reported during initial indexing, run the recover flow action after initial indexing
completes. Recover failures from the initial index by running objdata:recover repeatedly until there
are no failures reported or the failures are consistent and need to be fixed.
You can choose to fix the errors or leave them for later and proceed with the synchronization flow. If
you leave them, these errors are logged as failures during synchronization. You can return at a later
time to fix them. The recover flow action operates by time slice. The recover flow action processes all
failed objects as one entire set.

• objdata:show

5-34 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
runTcFTSIndexer

Returns objects that are in a specified indexing state in two text files. Specify the state code and a
directory for the output files using the form -task=objdata:show n uid_file_dir.
The show number to specify the state is 1, 2, or 3:

1 returns objects in the replication pending state

2 returns objects in the indexing complete state

3 returns objects in the indexing failed state

In this example, the output files contain the objects that failed indexing:

runTcFtsIndexer -task=objdata:show 3 d:\TcFTSIndexer\uid_output

The output returns two text files:

• uid.txt
Contains the UIDs of the objects that match the specified state. Each UID is on one line.
You can synchronize the objects again using objdata:sync uid_file_dir. Specify the directory
containing the uid.txt file, for example:

runTcFTSIndexer.bat -task=objdata:sync d:\TcFTSIndexer\uid_output

• uid_prop.txt
Contains UIDs in the output format UID|object_string|object_type, for example:

TRa3S5qd$DyB | Breaker Panel Anchor Plate/AP02-A | Physical Part Revision

• objdata:sync
Updates the index with changes to data between the previous run and the current run.

• The sync action can take the -interval=seconds argument.


For example, to synchronize object data using the stand-alone indexer every 300 seconds (5
minutes):

runTcFTSIndexer -task=objdata:sync -interval=300

The value must be greater than 0.


To run sync once, omit -interval=seconds.

• The sync action can take a file path to a uid.txt.


You can synchronize the objects again using objdata:sync filepath. Specify the directory
containing the uid.txt file, for example:

runTcFTSIndexer.bat -task=objdata:sync d:\TcFTSIndexer\uid_output

• objdata:test

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-35


© 2020 Siemens
5. Administration

Verify whether the environment is set up correctly prior to running the indexer.

MULTI-SITE FLOW ACTIONS

• multisite:clear
Clear indexed data and cached files for existing multi-site published records.
Use prior to running multisite:index.

• multisite:index
Without clearing the existing indexed multi-site published records, index for the time period specified
in the TC_ROOT\TcFTSIndexer\conf\TcFtsIndexer_multisite.properties file. For example:

runTcFTSIndexer -task:multisite:index

During indexing, duplicate published records are removed.


For a clean start, first use multisite:clear to clear indexed data for multi-site published records and
cached files.

• multisite:indexuids
Index the UIDs for a specific Object Directory Services (ODS) site.
Specify the ODS site name and the directory containing the uid.txt file, for example:

runTcFTSIndexer -task=multisite:indexuids ODS_Site_name D:\UID_dir

• multisite:indexsyncfailures
Index synchronization failures that required manual intervention.

• multisite:sync
Updates the index with changes to published record data between the previous run and the current
run.
The sync action can take the -interval=seconds argument to repeat the sync action at the specified
interval. For example, to synchronize multi-site published record data every 300 seconds (5 minutes):

runTcFTSIndexer -task=multisite:sync -interval=300

The value must be greater than 0.


To run multisite:sync once, omit -interval=seconds.

• multisite:recover
Recovers failed indexed published record objects.
If some published records fail during indexing, run the recover flow action after multi-site indexing
completes. Recover failures by running multisite:recover repeatedly until there are no failures
reported or the failures are consistent and need to be fixed.

• multisite:test
Verify whether the environment is set up correctly prior to running the multi-site indexer.

5-36 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
runTcFTSIndexer

STRUCTURE FLOW ACTIONS

• structure:recoverfailures
Changes all product configurations with failed states to the ReadyToIndex state or the
MarkedForDeletion state. For example:

runTcFTSIndexer -task=structure:recoverfailures

• structure:reset product-configuration-UID
Resets the given product configuration UID setting to the ReadyToIndex state or the
MarkedForDeletion state. For example:

runTcFTSIndexer -task=structure:reset goZRkWxoqd$DyB

• structure:resetall
Downloads the latest transform and schema files, resets all active product configurations to the
ReadyToIndex state, and resets all deleted product configurations back to the MarkedForDeletion
state. For example:

runTcFTSIndexer -task=structure:resetall

• structure:show
Shows a summary of all configured product configurations, for example:

runTcFTSIndexer -task=structure:show

• structure:sync
Queues synchronization and delete actions for all product configurations, for example:

runTcFTSIndexer -task=structure:sync

• structure:syncone product-configuration-UID
Queues synchronization and delete actions for a single product configuration UID, for example:

runTcFTSIndexer -task=structure:syncone goZRkWxoqd12DyB

On a Solaris system, if the product-configuration-UID contains a $ special character, you must enclose
the product-configuration-UID in single quotes. For example:

./runTcFTSIndexer.sh -task=strcture:syncone 'Abed$b8dBhGXHA'

• structure:test
Verifies that the environment is set up correctly prior to running the indexer, for example:

runTcFTSIndexer -task=structure:test

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-37


© 2020 Siemens
5. Administration

4GD FLOW ACTIONS

The 4GD product structure is initially indexed using the bomindex_admin utility.

• fourgd:reset product-configuration-UID
Resets the given 4GD product configuration UID setting to the ReadyToIndex state. For example:

runTcFTSIndexer -task=fourgd:reset goZRkWxoqd$DyB

• fourgd:resetall
Downloads the latest transform and schema files, resets all active 4GD product configurations to the
ReadyToIndex state. For example:

runTcFTSIndexer -task=fourgd:resetall

• fourgd:show
Shows a summary of all 4GD configured product configurations, for example:

runTcFTSIndexer -task=fourgd:show

• fourgd:sync
Queues synchronization and delete actions for all 4GD product configurations, for example:

runTcFTSIndexer -task=fourgd:sync

• fourgd:syncone product-configuration-UID
Queues synchronization and delete actions for a single 4GD product configuration UID, for example:

runTcFTSIndexer -task=fourgd:syncone goZRkWxoqd12DyB

On a Solaris system, if the product-configuration-UID contains a $ special character, you must enclose
the product-configuration-UID in single quotes. For example:

./runTcFTSIndexer.sh -task=strcture:syncone 'Abed$b8dBhGXHA'

5-38 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
s2clsocial_delete_utility

s2clsocial_delete_utility

Deletes the commentary objects (questions, answers, comments, ratings, and helpful objects) for item
revisions. If a commentary object is referenced by a noncommentary object, this utility cannot delete
the commentary.

Based on the entered target string, a list of matching item revisions are listed, and you are prompted to
delete the associated comments. Enter y=yes, n=no, or q=quit.

SYNTAX

s2clsocial_delete_utility [-u=user-id -p=password -g=group]


[-target=item-revision-name] [-h]

ARGUMENTS

-u
Specifies the user ID.

This is generally infodba or another user with administration privileges. If this argument is used
without a value, the operating system user name is used.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the -u and -p arguments
are authenticated externally through SSO rather than being authenticated against the
Teamcenter database. If you do not supply these arguments, the utility attempts to join an
existing SSO session. If no session is found, you are prompted to enter a user ID and password.

-p
Specifies the user's password.

If used without a value, the system assumes a null value. If this argument is not used, the system
assumes the user-ID value to be the password.

This argument is mutually exclusive with the -pf argument.


-g
Specifies the group associated with the user.

If used without a value, the user's default group is assumed.


-target
Specifies the item revision name from which to remove comments. A wildcard (*) is valid.
-h

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-39


© 2020 Siemens
5. Administration

(Optional) Displays help for this utility.

EXAMPLES

To delete all commentary associated with an item revision name beginning with hdd-0500-C:

s2clsocial_delete_utility -u=user-id -p=password -g=dba -target=hdd-0500-C*

To delete all commentary associated with an item revision name hdd-0500-Cover Label:

s2clsocial_delete_utility -u=user-id -p=password -g=dba -target="hdd-0500-Cover Label"

Active Admin

The active admin workspace

What is the active admin workspace?

This workspace is an exclusive workspace designed for Active Workspace administrators. Since it is
exclusive, there are a limited set of pages and commands that the administrator is allowed to visit. For
example, there is no access to initiate a workflow, change management, scheduling, or other end-user
functionality.

The workspace provides quick access to the most common administrative functions on the home page
tiles.

5-40 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Global constants

How do I enable it?

The active admin workspace is a separate downloadable kit, available where you download the Active
Workspace software. Once you download it, use Deployment Center or the Teamcenter Environment
Manager to install it.

After installation, the workspace definition file, workspace_TcActiveAdminWorkspace.json, will be


added to the STAGE\src\solution directory of your Active Workspace development environment.

What applications does it contain?

See the workspace definition file for a complete list of available pages and commands. Following are the
applications are displayed in the active admin workspace home page by default:

• People
Manage your organization. Create, modify, and remove groups, roles, and users.

• Preferences
Manage your Teamcenter preferences from within Active Workspace.

• Workflow Designer
Use a graphical editor to view and design workflows and task templates.

• Viewer administration
Help troubleshoot your active visualization installation.

Business Modeler IDE constants

Global constants

Following are the global constants unique to Active Workspace:

• Awb0SupportsStructure
Specifies the business objects that can have a structure under it. If you want to display a custom
business object in the Content tab, add the custom business object to this constant. This constant is
added by the Active Content Structure template (activeworkspacebom).

• Awp0FilterCategoryDisplayCount
Specifies the default number of search filter categories to display in the Search Filters panel.

• Awp0FilterValueDisplayCount
Specifies the default number of search filter values to display within a search filter category. If
additional values are available for filtering in any category, a More button appears to display the
remaining values within each category.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-41


© 2020 Siemens
5. Administration

• Awp0IndexableFileTypes
Specifies the list of file types that are allowed for text content extraction during search indexing. By
changing the value of this constant, you can specify the file types you want to index. (This global
constant is used if no value is set for the AW_Indexable_File_Extensions preference.)
The following values are supported:

.as .dot .mdb .sxc .xls


.aw .dotm .mif .txt .xlsm
.csv .dotx .msg .various .xlt
.dat .eml .ods .vdx .xltm
.dc .epub .pdf .wo .xltx
.dif .fff .ppt .wpd .xlw
.doc .htm .pptx .xml .xlsx
.docm .html .rtf .xla
.docx .ip .stc .xlam

Business object constants

Following are the business object constants unique to Active Workspace:

• Awb0AvailableFor
Lists the business object types for which a feature should be made available. The values are comma
separated. This constant honors type hierarchy.
When this constant is used with the Ase0ArchitectureFeature business object, the constant controls
visibility of the Architecture tab for business object types. The Architecture tab is made visible for all
listed business object types and their all subtypes. The types should be those that represent the top
line in structures. This constant supports comma-delimited values of business object types, for
example:

Functionality
Fnd0LogicalBlock
RequirementSpec
Requirement
Paragraph
Fnd0SystemModel

Note:
The Architecture tab is not visible for custom business objects. Determine the business object
types that require the Architecture tab. From these types, determine those that are the top line
in structures. Add only those types to the value of the Awb0AvailableFor business object
constant on the Ase0ArchitectureFeature business object.

5-42 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Business object constants

You can edit the display name configured for the Ase0ArchitectureFeature business object in
Business Modeler IDE to suit your business processes. By default, the display name of the tab is
Architecture.

• Awb0BOMArchetypeToOccurrence
Determines the instance of which particular subtype of the Awb0Element business object is created.
This business object constant is a comma-separated list of item revision or GDE subtypes. Using such a
list avoids the need to create a separate Awb0Element business object for each item revision type.

• Awp0SearchIsIndexed
Indicates that the business object will be indexed for searching when this constant is set to true. This
information is propagated through the business object hierarchy. For example, if ItemRevision is
selected for indexing, all business objects under ItemRevision (such as Part Revision and
DocumentRevision) are also indexed.

Note:
Do not set this constant to true for the WorkspaceObject business object. This results in
indexing errors.

• Awp0SearchIsIndexedExt
Indicates that external business objects are indexed for searching. By default, the value of this
constant is false, meaning that external objects are not indexed. The scope for this constant is the
Awp0AWCExternalSystemObject business object, which designates objects originating in systems
external to Teamcenter.
To change the value to true, open the Awp0AWCExternalSystemObject business object and select
the Awp0SearchIsIndexedExt business object constant on the Business Object Constants tab. Then
click Edit and select the Value check box.

• Awp0SearchClassifySearchEnabled
Enables the searching and filtering of classification data.

• Awp0SearchIsClassifyDataIndexed
For the specified business object type and below, specifies that classification data be indexed for
searching and filtering.

• Awp0SearchDatasetIndexingBehavior
Defines the behavior of inline indexing for dataset file contents. The scope for this constant is
WorkspaceObject types and their subtypes. Specify one of the following:
Inline Dataset content is indexed inline with the parent business object. When a search
matches dataset content, the search results returns the parent business object
instead of the dataset. The datasets are defined using
Awp0DatasetTypeToBeIndexedInline.
Relation Dataset content is indexed as part of the dataset but it maintains the reference to
the parent business object. When a search matches dataset content, the search
results return the dataset as well as the parent business object.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-43


© 2020 Siemens
5. Administration

The default value is Inline except for DocumentRevision, where the default is Relation.

• Awp0DatasetTypeToBeIndexedInline
Identifies the datasets to be indexed along with the business object. The scope for this constant is
WorkspaceObject types and their subtypes.
Set this property only for types that are also marked for indexing and
Awp0SearchDatasetIndexingBehavior is set to Inline.
The format is:

<INHERIT | NO_INHERIT>:RelationName:DatasetTypes

The keyword specifies the behavior to apply to the rule:


INHERIT Applies the rule to the specified type and all its subtypes. For example, index PDX
dataset content related to TC_Attaches for ItemRevision and its subtypes:

INHERIT:TC_Attaches:PDF
NO_INHERIT Applies the rule only to the type where the rule is defined. A rule applied to a parent
is not inherited by child types. Specifying NO_INHERIT can help improve
performance.

NO_INHERIT:IMAN_Specification:Text
You can specify one to many relationships between RelationName and DatasetTypes.
RelationNam is a relation name or the wildcard character *. Specify one or more clauses separated
e by commas.

INHERIT: TC_Attaches: PDF, INHERIT: IMAN_Specifiation: Text

INHERIT: *: PDF
DatasetTypes is a dataset type. Specify one or more values separated by a tilde ~.

INHERIT:TC_Attaches: PDF~MSWordX
Specifying only wildcards is not valid (for example, do not specify INHERIT: *: * ).
No default value is specified with the exception that SpecElementRevision is set to INHERIT: *:
FullText.

As a best practice, do not specify all relations (*) for inline indexing and then subsequently try to limit
inheritance by setting a subtype clause to index only a specific relation to a specific type. You can avoid
inheritance by:

• Using NO_INHERIT to limit the scope of indexing for a specific type.


For example, if all ItemRevision PDFs for any relation are being indexed inline, do not write a
qualifying INHERIT rule for a subtype. For example:

If an INHERIT rule for ItemRevision is defined as INHERIT:*:PDF,

5-44 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Property constants

And, an INHERIT rule for an ItemRevision subtype indexes only PDFs associated with the
TC_Attaches relation,

Then the indexing behavior at the subtype level might not behave as expected, because you
already specified all ItemRevision subtypes to index all PDFs,

• Configuring the subtype to override the parent. For example, to index PDX content for all the relations
of the subtype, set INHERIT: *: PDX .

• Setting Awp0DatasetTypeToBeIndexedInline to an empty string for the subtype avoids all


inheritance from the parent type.

• Setting Awp0SearchIsIndexed to false to turn off indexing for the type.

By default, the indexing of FullText datasets is not enabled because they are indexed inline for
SpecElementRevision and its subtypes. If you choose to enable indexing of FullText datasets, users see
FullText and SpecElementRevision objects in search results.

Property constants

The following property constants are unique to Active Workspace:

• Awp0FilterPropFromRefType
Applicable only when the property to be indexed is a reference type or a compound property whose
source property is a form data file property.
You can use the awp0MasterFormStorageClass compound property, available by default on all
Master forms for ItemRevision and its subtypes, to index and filter the properties of the form.
Specify a comma-separated list of properties that are a subset of the properties listed in the
Awp0SearchPropFromRefType property constant. For example, you can set the following constants
for the property constant reference type you want to filter:
Awp0SearchIsIndexed
Set the Boolean value to true to search on the property.
Awp0SearchCanFilter
Set the Boolean value to true to filter on the property.
Awp0SearchPropFromRefType
Enter the list of properties to index.
Awp0FilterPropFromRefType
Enter the list of properties to filter.
Awp0SearchRefTypesNames
Enter the referenced object type names.

• Awp0InboxCanFilter

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-45


© 2020 Siemens
5. Administration

Indicates that tasks shown in the inbox can be filtered on a specific property of a workflow business
object (EPMTask and its subtypes). The following example shows tasks found when selecting the
Team tab.

By default, the following properties are shown as filters for workflow business objects in the inbox:

• object_type – The type of object.

• due_date – The date the object is due.

• fnd0Assignee – The user to whom the task is assigned.

• fnd0Priority – The priority of the task.

• fnd0WorkflowInitiator – The user who initiated the workflow on the task.

• Awp0InboxFilterPriority
Sets the priority of the property of a workflow business object (EPMTask and its subtypes). It
determines the property’s order in the list of filters displayed in the inbox. The lower the value, the
higher its priority and, therefore, the higher its position in the list of filters.
Siemens Digital Industries Software recommends that you assign values from a range to
accommodate additional properties in the future. For example, assign priorities such as 100, 200, and
300, instead of 1, 2, and 3.

• Awp0SearchCanFilter
Indicates that the search results can be filtered on the specific property. It assumes that the property
was marked for indexing using the Awp0SearchIsIndexed property constant. For the filters to show
up correctly in the user interface, this property constant should be set for the property on its source
business object.
In a Multi-Site Collaboration environment, apply Awp0SearchCanFilter to published record objects so
that they can be indexed using the POM_owning_site property.

• Awp0SearchFilterPriority
Sets the priority of the property that determines its order in the list of filters displayed in the client—
the lower the value, the higher the priority. This means that the filter is positioned higher in the list of
filters shown in the filters panel. Siemens Digital Industries Software recommends that you assign

5-46 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Property constants

values from a range in order to accommodate additional properties in the future. For example, assign
priorities such as 100, 200, and 300, instead of 1, 2, and 3.
For the filters to show up correctly in the user interface, this property constant should be set for the
property on its source business object.
When a Table type property is marked for filtering, all valid properties of the referenced TableRow
type are available as filters. All the table row properties get the same filter priority, so they are
displayed together, vertically listed in the filter pane.

• Awp0SearchIsIndexed
Indicates that the property on the business object will be indexed for searching by the indexing
engine. This information is propagated through the business object hierarchy. For example, if
object_type on ItemRevision is marked for indexing, all business objects under ItemRevision (such
as Part Revision and DocumentRevision) also have their object_type property indexed. The
following constraints apply when indexing properties:

• Only attribute, compound, table, reference, and publication record properties can be indexed.
Indexing of runtime and relation properties is not supported.

• For multi-site searching the POM_owning_site property can be indexed out of the box. Apply the
Awp0SearchIsIndexed to published objects to enable indexing.

• To index compound properties, they must reference attribute properties from the source object.

Note:
If the compound property value comes from a form, the compound property must use the
form storage class in the property definition rather than the form itself, or indexing fails.

• To index reference properties, the Awp0SearchRefTypeNames and


Awp0SearchPropFromRefType property constants must contain valid values.

• Table type property indexing is only supported for properties that reference Fnd0TableRow and its
subtypes. Indexing is not supported for Fnd0NameValue and its subtypes.
When a table type property is marked for indexing, all the valid properties of the referenced table
row type are indexed. You do not need to mark individual table row properties.

Incorrect values are omitted from indexing; no message appears.

• Awp0SearchPropFromRefType
Applicable when the property to be indexed is a reference type or a compound property whose source
property is a form data file property.
You can use the awp0MasterFormStorageClass compound property, available by default on all
Master forms for ItemRevision and subtypes, to index and filter the properties of the form.
Specify a comma-separated list of properties that are on the business objects specified in the
Awp0SearchRefTypeNames property constant. For example, on the owning_user reference
property on ItemRevision, specify a value of user_id,user_name.
The following rules apply:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-47


© 2020 Siemens
5. Administration

• You can only specify attribute and compound properties.

Note:
If the compound property value comes from a form, the compound property must use the
form storage class in the property definition rather than the form itself, or indexing fails.

• Each property in the list specified for Awp0SearchPropFromRefType is matched against each
business object in the list specified for the Awp0SearchRefTypeNames property constant. Only
properties that are valid and applicable on a business object are considered for indexing. In
addition, if filtering is enabled on the reference property, only the first property from the list is
used.

• The first property in the list must be a string property.

Incorrect values are omitted from indexing; no message appears.

• Awp0SearchRefTypeNames
Applicable only when the property to be indexed is a reference type or a compound property whose
source property is a form data file property. Specify a comma-separated list of business object names
that the reference property can contain. For example, on the owning_user reference property on
ItemRevision, specify a value of User. The following rules apply:

• If no value is specified on typed reference properties, the business object that is specified as the
referenced type is used as the type. For example, release_status_list results in ReleaseStatus.

• On untyped reference properties, if no value is specified, the POM_object is used as the type.

Incorrect values are omitted from indexing; no message appears.

• Cm1ChangeCanFilter
Indicates that the changes in the Changes page can be filtered on a specific property of the change
business object (ChangeItemRevision and its subtypes). The following example shows the changes
found when clicking the Submitted tab.

5-48 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Property constants

The default properties of a change object that can be filtered are:

• creation_date – The date the change was created.

• CMMaturity – The degree of completion of the overall change process (its Maturity).

• object_type – The type of change.

• cm0Analyst – The user assigned as the analyst.

• cm0ChangeSpecialist1 – The user assigned as the change specialist.

• cm0Requestor – The user who created the change.

• Cm1ChangeFilterPriority
Sets the priority of the property of the change object (ChangeItemRevision and its subtypes). It
determines the property’s order in the list of filters displayed in the Changes page. The lower the
value, the higher its priority and, therefore, the higher its position in the list of filters.
Siemens Digital Industries Software recommends that you assign values from a range to
accommodate additional properties in the future. For example, assign priorities such as 100, 200, and
300, instead of 1, 2, and 3.

Note:
Compound properties presume that the security level of the source property of the source object is
read access. This is because the compound property belongs to the target object related to the
source object through the compound property.
For example, Object B has a compound property that is related to its source property on Object A.
When Object B and its compound property are indexed, the indexer presumes that Object A has a

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-49


© 2020 Siemens
5. Administration

security level of read access to everyone. That means that anyone with read access to the
compound property of Object B could also find the source property on Object A, regardless of its
security level.

Enabling searching and filtering on referenced objects or forms

Enable searching and filtering for a referenced object using a property value defined on the referenced
object. You need to add or update the property constants for the property of the referenced object.

In the first example, an ItemRevision object has a referenced Item object, where the description
contains the value Example Text.

In the Business Modeler IDE, find the template containing your object definitions, and find the
ItemRevision object. On the property that references the Item object, add or update the following
property constants:

Awp0SearchIsIndexed
Set the Boolean value to true to index this property.
Awp0SearchRefTypesNames
Set the referenced object type name, Item in this example.
Awp0SearchPropFromRefType
Set the list of properties on the referenced object type specified in Awp0SearchRefTypesNames. In
this example, the property is description.

To filter the search results by the preceding property values, add or update the following property
constants:

Awp0SearchCanFilter
Set the Boolean value to true to filter on the property.
Awp0FilterPropFromRefType
Set the list of properties on the referenced object. In the example, the property is description.
Awp0SearchFilterPriority
This property constant is optional. You can set a numeric value for priority. The lower the value, the
higher the priority.

Example: Search properties of a related Master or custom form

Enable searching and filtering using the properties of a related Master or custom form. You need to add
or update the property constants for the property of the related form. By default, the
awp0MasterFormStorageClass compound property is configured for ItemRevision. The compound
property references the data file on the Master form for ItemRevision.

5-50 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Property constants

1. An ItemRevision has a subtype Awp0TestItemRevision with a Master form


Awp0TestItemRevisionMaster:

2. The Master form has two properties:

3. Awp0TestItemRevMasterS is the storage class name for the form.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-51


© 2020 Siemens
5. Administration

4. Awp0TestItemRevMasterS is a compound property that references the data file of the Master
form.

5-52 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Property constants

5. Configure the Master form storage class property awp0MasterFormStorageClasswith the property
constants that enable indexing, searching, and filtering.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-53


© 2020 Siemens
5. Administration

Example: Search properties of an Item Master form

Enable searching and filtering of an Item Master form using a compound property. You need to create a
compound property on a persistent attribute of the Item Master data_file storage class. The compound
property references the data file for the Master form of the Item. You need to create a compound
property for every attribute you want to search.

In the example, the compound property a2ItemMasterAttr1 is created on user_data1, which is a


persistent attribute on the Item Master data_file storage class.

5-54 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Audit Logs page configuration tasks

Be sure to set the index, search and filter property constants on the new compound property.

Configuring the Audit Logs page

Audit Logs page configuration tasks

What are audit log types?

In Teamcenter, the following audit log types hold audit records based on logical groupings of object type
and event type combinations:

• General logs

• License export logs

• Organization logs

• Security logs

• Schedule logs

• Structure logs

• Workflow logs

What is an audit log dataset?

An audit log dataset is a stylesheet configuration representing applicable audit log types for a context
object. The Audit Logs tab in Active Workspace provides a segregated view of audit logs in different
sections. As a system administrator, you can create and configure audit log datasets.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-55


© 2020 Siemens
5. Administration

What do audit logs look like?

As a DBA user, you can view audit logs using the Audit Logs tab in Active Workspace.

What must I install to enable the audit log feature?

To enable the audit log feature, you must install the Audit feature during your Active Workspace
installation using Teamcenter Environment Manager (TEM).

What can I configure?

You can configure the following aspects of audit logs:

• Activate the Audit Log page.

• Customize which audit log fields appear to users.

• Customize which audit logs appear to users.

Where can I find out more about audit logs?

See Audit Manager in the Teamcenter help collection.

5-56 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Activate the Audit Log page

Activate the Audit Log page

Set the following preference to activate the Audit Log tab in Active Workspace.

• AWC_show_audit_logs
Activates the visibility of the Audit Log tab in Active Workspace. By default, the value is true for the
dba group. As a DBA user, you can make the Audit Log page available to other users using:

• The rich client Options dialog box Preferences By Organization pane, which allows a DBA user to
set the AWC_show_audit_logs preference for specific groups, roles, and users.

For more information, see the Environment Variables Reference and the Using Teamcenter
preferences video in the Teamcenter help collection.

• The preferences_manager utility.


For more information, see the Utilities Reference in the Teamcenter help collection.

Customize audit logs field display

You can customize which fields are displayed in each audit log. For example, by default the General
Logs audit log displays the following fields:

• Logged Date

• Event Type Name

• User ID

• Change ID

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-57


© 2020 Siemens
5. Administration

• Reason

• Group Name

• Role Name

• Secondary Object Display Name

• Secondary Object Type

To remove a field from the display:

1. In the rich client, search for the audit log file you want to edit. For example, select the
GeneralAuditLogs file to remove a field name in the General Logs audit log.

2. Delete the line associated with the field you want to remove. For example, delete the following line
to remove the Secondary Object Type field:

<property name="fnd0SecondaryObjectType"/>

3. Save the GeneralAuditLogs file.

4. Using Active Workspace, verify the Secondary Object Type field was successfully removed.

5-58 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using audit logs

Using audit logs

Note:
Your administrator must enable the Audit Logs page for Active Workspace. Also, you must have
DBA privileges or you must be granted privileges to view audit logs.

System administrators use Audit Manager to create audit logs. Audit logs track what information has
changed and who has changed the information.

In Active Workspace, you can view the following audit logs:

• Audit - General Report

• Audit - General Sponsored Authentication Report

• Audit - File Access Read-Write Report

• Audit - File Access Report

• Audit - File Access Sponsored Authentication Report

• Audit - Security Report

• Audit - Schedule Report

• Audit - Organization Report

• Audit - Digital Signature Report

• Audit - License Change Report

• Audit - License Export Report

• Audit - License Export Sponsored Authentication Report

• Audit - License Change Sponsored Authentication Report

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-59


© 2020 Siemens
5. Administration

• Audit - Organization Sponsored Authentication Report

• Audit - Structure Sponsored Authentication Report

• Audit - Workflow Detailed Report

• Audit - Workflow Summary Report

• Audit - Workflow Attachment Report

• Audit - Workflow Signoff Report

You can view audit logs using the Audit Logs tab in Active Workspace.

Customize the audit log display

By default, the following four audit logs are viewable in Active Workspace for Item, ItemRevision, and
its subtype:

• Workflow Logs

• General Logs

• License Export Logs

• Structure Logs

5-60 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Customize the audit log display

You can customize which audit logs are displayed to users by adding or removing audit logs to customize
your XRT pages.

Following is a table that shows the audit dataset for the associated object type.

Object type Audit dataset

Item/ItemRev and its subtype AuditLogForItemRev

Workspace object AuditLogAllForWSO

BOMLine AuditLogForBOM

Form/Folder/WSO AuditLogGNForWSO

Dataset AuditLogForDataset

User/Group/Project AuditLogForUserContext

GroupMember/Person/ AuditLogForOrg
Role/Site/Volume/
TCCalendar

Schedule, ScheduleTask AuditLogForSchedule

SchDeliverable/SchTaskDeliverable/ AuditLogForScheduleMgmt
ScheduleMember

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-61


© 2020 Siemens
5. Administration

Object type Audit dataset

EPMJob/EPMTask/ AuditLogForWorkflow
PerformSignoffTask

Scp0Regulation/ AuditLogForSubscmpl
Scp0SubstanceCmplResult/
Scp0Exemption/
Mat1Substance

To customize which audit logs can be viewed:

1. Open the XRT page that you want to modify, for example, Awp0DocumentRevSummary, and add
the audit log to your custom XRT page by inserting an inject statement for the audit log you want
to add.

2. Insert an inject statement for the audit log you want to add.

3. Save the file with a new name.

5-62 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Why do I need preferences?

Note:
Siemens Digital Industries Software recommends you rename your edited file before saving
changes to retain the default file.

Preferences

Why do I need preferences?

You can use Teamcenter preferences to control various aspects of Teamcenter's behavior and
appearance.

Following are only a few examples of what preferences control:

• Whether or not live updates are allowed.

• Password requirements when not using LDAP.

• Which XML rendering template (XRT) to use.

• Which query to use as the default quick access query.

Siemens Digital Industries Software recommends browsing through the list of preferences to see which
ones might be useful to you. Each preference's definition will document its use.

How do preferences work?

At their core, preferences are simply a way to store information. They are similar to environment
variables, except that they they operate with several layers of permissions.

Overview

Each preference consists of two major components, a definition and instances.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-63


© 2020 Siemens
5. Administration

A preference definition along with all of its preference instances are together considered to be a
preference.

The preference definition is like a blueprint. It defines the nature of the preference and
is used to create the instances at the various locations. Even though it may define a
Definition default value, the definition itself is never retrieved or read as a preference. If there are
no instances of this preference, there is no value.
A preference instance created at the site location applies to everyone logged in to
Site
Teamcenter unless overridden.
There can be only one site instance.
Any preference instances created at the group location apply only to users who are
Group
currently logged in as that group, and they supercede site preferences.
There can be one group instance created for each group.
Any preference instances created at the role location apply only to users who are
Role
currently logged in as that role (regardless of group), and they supercede site and
group preferences.
There can be one role instance created for each role.
Any preference instances created at the user location apply only to that user, and they
User
supercede site, group, and role preferences.
There can be one user instance created for each user.

5-64 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
How do preferences work?

Preference definition

You use the preference definition to create the overall limits and restrictions on the preference as well as
setting the default value. Think of this as an abstract template from which the preference itself will be
instantiated. Following are the fields used to define a preference definition:

Name The name of the preference. Naming patterns help organize the preferences and give
an idea of what they do even before you read the description. See the list of existing
preferences for examples.
Protection Determines where and by whom it can be instantiated.
Scope
Type Specify the preference value type.
Multiple Specify if this preference can hold multiple values.
Description Explain the use of the preference. What does it control? What format is expected for
the values? Etc.
Value Specify the default value that an instance will contain when initially created.
Environment Retrieve the value from an OS environment variable of the same name.
Category Organize related preferences based on their category. There are many existing
categories you can use, or you can create your own.

Preference instance

You create a preference instance from its definition. When you create a new instance of a preference it
must belong to a location. This location specifies when it is active and its priority in the hierarchy. You
cannot create a preference instance if the protection scope does not allow it.

When referring to preference instances, it is common to shorten the phrase. For example, the
preference instance in the Engineering group location is commonly referred to as the Engineering group
preference.

When you create a new preference, you specify two things:

Location Locations are where the preference instances reside. You can create preference
instances at the following locations:

• User
• Role
• Group
• Site / System
Value You can keep the default value from the definition or specify a new one.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-65


© 2020 Siemens
5. Administration

Preference locations

• User
This assigns the instance to a specific user. These are commonly the preferences that Teamcenter
uses to track things like column widths in the rich client, or most recently searched text, for example.
Although you can control your active preferences like style sheet registration down to the user level, it
is normally recommended that you keep those kinds of settings to the Group level or higher. It makes
things easier when people move in and out of groups and roles.

• Role
You can control the behavior based on a user's role. This is handy for things such as style sheets. Keep
the consumer's page simple while being able to provide the information the author or approver
needs.

• Group
Similar to the Role location, you can control the behavior at the next step up, at the group level.

• Site / System
Preferences created at these locations apply to everyone. This is typically where you instantiate
preferences that control system-wide behavior or default behavior that can be overridden at the
group, role, or user level.
Site preferences only allow a single instance, but a dba can change the protection scope of a site
preference to something else.
System preferences do not allow their protection scope to be changed, even by a dba. In all other
ways, they behave like a site preference.

Caution:
An existing non-system preference may be changed into a system preference by a dba, but once
it has been changed, it cannot be changed back. If you want to change it, it must be deleted
and re-created.

Customer-facing preferences

You control an aspect of the UI or behavior directly by making changes to the preference. Examples of
these preferences are configuring default paste relations, which style sheets are used in a given
situation, or how the Dispatcher handles certain file types.

Internal preferences

Teamcenter uses preferences extensively to remember application parameters, like column width. Even
though you can see and possibly modify the values of these preferences, it is not advised to do so.

5-66 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
An example of preference hierarchy

An example of preference hierarchy

Everything in this example is based on a single preference, one which registers a style sheet to a
business object for the summary view. It could be any preference as all preferences behave the same
way. Since this preference definition's protection scope is User, you can create instances at the Site,
Group, Role, and User location. This means you can control its value based on your users' current
group, role, or even user name.

Example: I want the summary view's property layout for item revisions to depend on my
users' login information

Following are the details of this example.

• You have three groups: Engineering, Manufacturing, and Testing.


Each group has three roles: Manager, Designer, and Viewer.

• You want a default style sheet that everyone will use unless otherwise specified.

• Your technical users need an extended set of properties.

• Your managers need a page of workflow information.

• Your designers need classification information.

• You have users that just need a simplified layout for viewing.

• You have Conner. Conner is a power-user.


Conner needs a special layout regardless of which group or role he's in.

Style sheet datasets

Five style sheet datasets are considered.

ItemRevSummary
Configured to be the default style sheet for the Item Revision summary page. This applies to
everyone unless overridden.
IRSumTech
Configured to provides the extra properties for the Engineering and Manufacturing groups, but not
for any other groups.
IRSumMgr
Configured to display workflow information for the Manager role, regardless of group.
IRSumDes
Configured to show the classification trace for the Designer role, regardless of group.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-67


© 2020 Siemens
5. Administration

ConnersIRSum
Configured for Conner. Conner has his own requirements

Preference instances

Assign the style sheets to the various groups and roles, and even users if desired, by creating each
preference instance with the value pointing to the respective style sheet. In this example, there are 6
preference instances created.

User Conner: ConnersIRSum


preferences
Role Manager: IRSumMgr
preferences
Designer: IRSumDes
Group Engineering: IRSumTech
preferences
Manufacturing: IRSumTech
Site value: ItemRevSum
preference

The Viewer role and the Tester group have no preference instances created for their location.

How does Teamcenter choose which preference to use?

In this example, Alice selects a DocumentRevision business object and uses the Summary tab. When
she does this, Teamcenter performs a few steps to determine which style sheet to use.

5-68 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
An example of preference hierarchy

1. Based on the object type and the view location, the system knows the name of the preference
instances to retrieve.

In this example, DocumentRevision.SUMMARYRENDERING.

There are two instances: one at the Site location, and one at the Manager Role location.

2. Based on the user's current session information, Teamcenter chooses the appropriate preference
instance.

Less specific locations are overridden by more specific locations.

3. The value of the chosen preference instance is read, providing the name of the style sheet to
retrieve.

4. Teamcenter uses the style sheet to render the view.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-69


© 2020 Siemens
5. Administration

Result

Your users see a different set of information based on what group or role they are in because the client
uses different style sheets.

User - Group / Role Preference instance build-up Resulting style sheet


Alice — Engineering / Manager Alice: none IRSumMgr
Manager: IRSumMgr
Engineering: IRSumTech
Site: ItemRevSum
Ted — Manufacturing / Manager Ted: none IRSumMgr
Manager: IRSumMgr
Manufacturing: IRSumTech
Site: ItemRevSum
Sue — Testing / Manager Sue: none IRSumMgr
Manager: IRSumMgr
Testing: none
Site: ItemRevSum
Bob — Engineering / Designer Bob: none IRSumDes
Designer: IRSumDes
Engineering: IRSumTech
Site: ItemRevSum
Carol — Engineering / Viewer Carol: none IRSumTech
Viewer: none
Engineering: IRSumTech
Site: ItemRevSum
Pat — Testing / Viewer Pat: none ItemRevSum
Viewer: none
Testing: none
Site: ItemRevSum
Conner — Engineering / Manager Conner: ConnersIRSum ConnersIRSum
Manager: IRSumMgr
Engineering: IRSumTech
Site: ItemRevSum
Conner — Testing / Viewer Conner: ConnersIRSum ConnersIRSum
Viewer: none
Testing: none
Site: ItemRevSum

• Alice sees the style sheet for Managers because she does not have a user preference set to supercede
it. The site preference is overridden by the Engineering group preference, which is overridden by the
Manager role preference. Ted has the same result; the Manufacturing group preference is overridden
by the Manager preference. Sue doesn't have a group preference, but she still gets the Manager role
preference.

• Bob sees the style sheet for Designers because of his role, similar to the preceding example.

5-70 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
What are environment preferences?

• Carol sees the tech style sheet because there is no role preference for Viewers.

• Pat's group and role do not have preferences associated with them, and neither does she have a user
preference, so she gets the default style sheet defined by the site preference.

• Conner gets Conner's style sheet regardless of which group or role he's in, since a user preference
supercedes all others.

What are environment preferences?

You can define a preference to retrieve its value from an environment variable in the operating system.

If you want to pass multiple values from the environment to the preference, you must configure the
following:

• Set the preference's Multiple setting to multiple.

• Use the appropriate separator in the environment variable. The environment variable is read from the
operating system on which the tcserver process is running.
Windows Semicolon — For example, MyEnvPref=Value1;Value1;Value3
Linux Comma — For example, MyEnvPref=Value1,Value1,Value3

The environment variable is only read by the tcserver process when the value is first requested, so any
changes made to the environment variable after that will not be reflected in the Teamcenter preference
until after the next time the tcserver process is started.

Remember, the environment variable is read from the environment where the tcserver process is
running, which is not necessarily the environment where the client is running.

Working with preferences in Active Workspace

You can work with all Teamcenter preferences from within the Active Workspace client using the
Preferences page.

Preference Management is part of the Active Admin installation option for Teamcenter. Once
installed, you can get to this page by either:

• Using the PREFERENCES tile from your home page.


By default, this tile appears in the home page of the TcActiveAdminWorkspace workspace.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-71


© 2020 Siemens
5. Administration

• Navigate directly to the page with the host:port/awc/#/showPreferences URL.


This option is only available if your current workspace allows it.

What can I do with the preferences location?

Your ability to work with preferences is determined by whether you are currently logged in to a group
with administrator privileges.

Administrator? Permissions.
Administrator Search and modify preferences
Create and override site, system, group, role, and user preference
instances
Delete preference instances and definitions
Group Administrator Search and modify preferences
Create and override group, role, and user preference instances within
your group
User Search existing preferences
Create and override your own user preference instances

The organization panel

Use the Organization panel to select in which session context you wish to work.

5-72 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Working with preferences in Active Workspace

If you do not have a choice of working in other session contexts, (you have no administration privileges),
then you will not see the Organization panel, and you can only work in your current session context.

1. (optional) Filter the organization list.


If you simply use text, the system will match within group, role, user name, or user id. If you use
quotation marks, it will search for exact matches, if you don't it will append a wildcard to the end of
your text. If you want to include spaces or commas in your search, you must use quotes.
You can narrow down the search by using the following prefixes:

• group:
• role:
• username:
• userid:

You can specify more than one of these by putting a space between them.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-73


© 2020 Siemens
5. Administration

Example:
To search for the word, design, put design in the field.
To search for the specific user id, ed, put userid:"ed" in the field.
To search for all users with user ids beginning with ed, put userid:ed in the field.
To search for the specific user named Smith, Bob in roles beginning with design, put
username:"Smith, Bob" role:design in the field.

2. Select which session context in which you wish to work.


If you select the site, you can only work with site locations.
If you select a group, you can work with that group's location overrides.
If you select a role, you can work with location overrides for that role and its group.
If you select a user, you can work with location overrides for that user, role, and group.

The preference list will be populated with all valid preference locations for the session context that you
have selected, and you are able to:

• Modify the values of existing preference locations in the session context.

• Create new preference locations for the session context.

• Override preferences for this session context, if the preference scope allows it.

The preference list

5-74 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Working with preferences in Active Workspace

Select your working context in the Organization panel, if available.

1. (optional) Filter the preference list by category.

2. (optional) Filter listed preferences.

3. Select a preference.

4. View preference information.

5. (optional) Edit the value at this preference location.


If you do not have permission, you will not see this button.

Override a preference

To override a preference, you must create a new instance of the preference at a higher-precedence
location. Each preference defines its own scope, which is the highest precedence location allowed.

For example, If a preference's scope is Site, then it cannot be overridden, but if its scope is User then it
can be overridden at every level.

If a preference instance's location is Site, it will be overridden by any other location instance but if its
location is User then it overrides any other location for that specific user.

Tip:
If a preference in the list has a location of None, then that means it is the preference definition
and there are no current location instances.

Following are the levels of precedence for locations.

scope location
User Can override at any location. Overrides all other location
values.
Role Can override at group and role Will override Site and Group
locations. location values.
Group Can only override at group Will override Site location values.
locations.
Site Can not override. Is overridden by any other
location

1. (optional) Filter the preference list.

2. Select the preference you want to override.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-75


© 2020 Siemens
5. Administration

3. Open the New command stack , and then choose Override.

4. In the Add Override panel, choose the location for the override (if allowed), set the new value, and
then choose Add.

Working with non-standard object types

Active Workspace is designed for the user to work almost exclusively with objects of the ItemRevision
class (and its children). If you need to, you can change the UI to:

• Work with Items instead of ItemRevisions.

• Allow the user to delete Folders.

How do I show Items instead of ItemRevisions?

There are two main things you need to do in order to work with items instead of their revisions.

• Allow the user to create an Item


AWC_DefaultCreateTypes
This is a multiple-value preference that accepts a list of business object types that are allowed to be
created using the Active Workspace interface.

• On create, paste the Item instead of the ItemRevision


Changing the Fnd0ItemRevPasteOnTargetUponCreate business object constant for that type.

• Configure indexing for Items instead of revisions.

In addition, you should also suppress the ItemRevision type from the UI.

Caution:
Siemens Digital Industries Software does not recommend that you present both items and
revisions to your users.

5-76 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Controlling notification timeout

How do I allow users to delete folders?

If you want your users to be able to delete folders in Active Workspace, then you must change the
following preferences:

AWS_allowedTypesForDelete
This is a multiple-value preference that accepts a list of business object types that are allowed to be
deleted using the Active Workspace interface.
TC_auto_delete_folder_references
If you are working with folders, you can modify this preference to ignore and remove any folder
references automatically when you delete an object, including a folder.

Setting this to false prevents an object from being deleted from the database and present and error
message if it has any references to any other objects, including folders.

Setting this to true ignores folder references when checking for references to other objects, and if
no other references are found, then the folder references are automatically removed, and the object
is deleted without complaint.

Example:
If you attempt to delete a folder containing objects and this preference is set to true, then the
contents of the folder will be removed (not deleted), and then the folder will be deleted

Controlling notification timeout

You can control the notification panel timeout using a preference.

AWC_notification_timeout
The value is the number of seconds to wait before closing the notification. If the value is negative,
the window will not close automatically.

Defining properties that display in object cells

To define the properties that display on the cells for objects in Active Workspace list view, use the
business-object.CellProperties preference. The first two properties in the list of properties in the
preference are displayed without labels and are formatted as a primary title and subtitle. The remaining
properties are displayed in the cell as name:value.

The default values vary by object type. For example, following are the default values of the
ItemRevision.CellProperties preference:

object_name
item_id
item_revision_id

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-77


© 2020 Siemens
5. Administration

The values in this example appear as follows in Active Workspace.

Defining the revision rules list

Revision rules determine the state of objects you view in the user interface. The active revision rule is
shown to the right of the user name. Users click the revision rule to display the list of all available
revision rules. To set a different revision rule, a user selects another revision rule from the list.

By default, the list of available revision rules is obtained from Teamcenter. However, as an administrator,
you may want to provide different revision rules for Active Workspace than are used in the rich client.
For example, you may want to have Active Workspace default to Latest Released whereas you want the
rich client to still default to Latest Working.

To set a different list of revision rules for Active Workspace, add revision rules to the
AWC_Rev_Rule_List preference. Whenever a custom revision rule is created, you must add it to this
preference for it to appear in the revision rules list. By default, the preference is empty, meaning that the
revision rules list in Active Workspace defaults to the revision rules from the rich client.

To set the revision rule that is selected by default, add it to the AWC_Rev_Rule_Selected preference.
The revision rule in this preference must match a revision rule in the AWC_Rev_Rule_List preference.

If the revision rule in the AWC_Rev_Rule_Selected preference is removed from the AWC_Rev_Rule_List
preference, you must change the revision rule in the AWC_Rev_Rule_Selected preference to one in the
AWC_Rev_Rule_List preference.

By default, the AWC_Rev_Rule_Selected preference is empty, meaning that the first revision rule in the
AWC_Rev_Rule_List preference is the one that is selected by default in the user interface.

5-78 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Where can I get a list of preferences?

Where can I get a list of preferences?

There are several sources from which to retrieve a list of preferences and their definitions.

Administration data report


You can find the Administration Data Report in the References for Administrators and
Customizers in the Teamcenter section of Doc Center. In this report, you will find a complete list of
all preferences shipped with Teamcenter. When you install additional features, like Dispatcher, NX
Integration, 4th Generation Design, and so on, additional preferences will be added to your site. To
get the most accurate and up-to-date listing of preferences contained in your site, you must create
your own Administration Data Documentation report.
Rich client
You can use the various tabs of the rich client's Edit→Options menu to interact directly with
preferences, including a report of which preferences have changed since installation.
Raw XML export
You can produce an XML file containing preference information using the preferences_manager
utility.
Active Workspace client
You can interact directly with preferences using the showPreferences location.

Performance and settings

Enabling browser caching

When thumbnail images are displayed in Active Workspace, the image is loaded from the FMS system
server using a file read ticket. Each time you display the same thumbnail, a new ticket is created. You
can, however, enable browser caching so that the first time an image is loaded it is saved in the cache.
This improves performance if the image is loaded again within a specified time period in the same
session.

To enable browser caching:

• In Teamcenter, set the Ticket_Expiration_Resolution preference to the maximum number of seconds


an image could be saved in the cache.
Essentially, the preference value defines the expiration time resolution of the file read ticket. For
example, if you load a thumbnail image at 1:00 p.m., a file read ticket is created. If the value of the
preference is set to 7200, the image remains in the browser cache for 7200 seconds (2 hours) after
1:00 p.m. So, any time that image is loaded within the next 2 hours, the same ticket is used. If the
image is loaded again after 2 hours, a new ticket is created.
The current default value for this preference is 7200 seconds. Previous versions of Teamcenter used a
default value of 1 second.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-79


© 2020 Siemens
5. Administration

Compressing images for loading them quickly

Image files are used in Active Workspace for tiles, preview images, thumbnails, breadcrumbs, and so on.
Image resolution is the clarity with which you can view the image with distinct boundaries. The
resolution of the image depends on the number of pixels; more pixels correspond to more clarity, but
also increases the size of the image. Large images take a lot of time for rendering and viewing.

To render images not only quickly but also with high clarity in Active Workspace, you can compress them
and reduce their sizes without distorting the quality. You can manage the quality, sharpness, color, and
accuracy of the images with lower resolutions. You can generate low, medium, and high resolutions of
the original uploaded image while maintaining their aspect ratio. You can also define custom resolutions
for the images.

Configure image resolution

You can compress images in Active Workspace used for tiles, preview images, thumbnails, breadcrumbs,
and so on. This reduces their size without distorting the quality. Following are the prerequisites for
configuring image resolution in Active Workspace:

• Teamcenter Visualization with Mockup and Convert & Print features.

• Dispatcher Server and Dispatcher Client components under Teamcenter Enterprise Knowledge
Foundation are installed using Teamcenter Environment Manager.

• Image translator installed using the Teamcenter Environment Manager.

To compress images:

1. Enable the image compression feature using the TC__image_compression_enabled preference in


Teamcenter rich client. The default value for this feature is set to false.

2. Configure the resolution values in the TC_image_compression_types preference in Teamcenter


rich client.

The out-of-the-box (OOTB) values are:

• 64px::Low

• 300px::Medium

• 600px::High

You can also define custom values for images, such as 1200px::LARGE or 2800px::EXTRALARGE.

These values are for the height of the translated image, and the appropriate width is automatically
adjusted by the image translator based on the aspect ratio of the original image.

5-80 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Open source software attributions

3. To specify the default image to be used for scaling across Active Workspace application, set the
value for the AWC_default_image_resolution preference. The default OOTB value is Medium.

4. To customize the image for the Overview tab:

In the tc_xrt_Preview tag, specify the value for the default image:

<section titleKey="tc_xrt_Preview">
<section titleKey="tc_xrt_Preview">
<image resolution=”<user_input>” source="thumbnail"/>
</section>

• If no image resolution is defined, the system resolves to a high resolution image.

• If the resolution preference value is Medium, the system resolves to medium resolution.

• If image resolution is an undefined or invalid resolution type, the system resolves to high
resolution.

• If the image resolution is a custom value as defined in the TC_image_compression_types


preference, it resolves to the specified custom resolution value. For example, if you specify
2800px::EXTRALARGE as the image resolution, the image resolves to the custom value
EXTRALARGE.

Note:
The values for image resolution are not case sensitive.

Troubleshooting

Open source software attributions

Open source software (OSS) attribution for Active Workspace can be found in the
OSSAttributionInfo.json file. You can find this file in the config folder within the web application's
assets directory.

In the development environment, you can find this file in the TC_ROOT\aws2\stage\out\war\assetsxxxx
\config folder.

Retrieving Active Workspace client and server versions

Information about the running Active Workspace client and server, as well as the Teamcenter server
version, site ID, and database ID to which they are connected is available when you are logged in.

To retrieve version information, click Help > About.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-81


© 2020 Siemens
5. Administration

Your results will vary, but following is an example of the results.

[email protected]
[email protected] (Apollo Web Application Framework)
Client Build: Wed Dec 11 2019 05:57:45
Server Build: aw4.3.0.12x.2019121101
Server Version: V.12.3.0.20191209.00
Site Id: -1837089722
Database: tc
User Session Logfile: tcserver.exe244cb7cd.syslog

appCtxService

The appCtxService maintains a ctx object that contains context information for the current Active
Workspace session. This dynamic runtime object can be used by conditions for the declarative UI.

To exmaine the contents of this object, enter the following command into your browser's console.

angular.element(document.body).injector().get('appCtxService').ctx

Expand the various nodes to discover the information available. The contents of this object changes
each time the interface is used, so your results vary depending on where you are and what you are
doing at the time.

There is a lot of information available in the ctx object. Be sure to examine it fully. For example, while
the class name of a selected object is found at

ctx.selected.modelType.name

the entire class hierarchy is found as an array at

ctx.selected.modelType.typeHierarchyArray

Following are some examples of declarative conditions using the ctx object.

5-82 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
General troubleshooting

General troubleshooting

Note:
If the Active Workspace client exhibits unexpected behavior, it is always good practice to clear the
browser cache, and try the operation again. This is particularly important when server-side
changes are made, such as updating to a new version of Active Workspace.

Issue Possible resolution

No server available error Tune the tcserver pool size using the PROCESS_WARM parameter. For
details, see System Administration in the Teamcenter collection.

Intermittent image loading Perform one of the following:


issues
• On the server, configure the web application server to exclude the
problematic cipher. For example, if you have a jetty server:

1. In a text editor, open the jetty\etc\jetty-ssl.xml file and add the


following lines after the <Set name="TrustStorePassword"xxx</
Set> line:

<!— avoid IE TLSv1 issue by excluding the problematic


cipher -->
<Set name="ExcludeCipherSuites">
<Array type="java.lang.String">
<Item>TLS_RSA_WITH_AES_128_CBC_SHA</Item>
</Array>
</Set>

2. Save the file.

3. Restart the Jetty server.

The steps for other servers will vary.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-83


© 2020 Siemens
5. Administration

Issue Possible resolution

• On the client, configure the browser to not use TLS 1.0. For example,
in Internet Explorer, perform the following:

1. Choose Tools→Internet Options and click the Advanced tab.

2. In the Security section, clear the selection of Use TLS 1.0.

3. Click OK.

4. Restart the browser.


The steps for other browsers are similar to those described.

Upload file size exceeded Use the Data Share Manager to manage large file uploads with
max limit error during file Teamcenter.
uploads

Users working with Active The Active Workspace administrator should verify that the tcSOAURL
Workspace experience 403 parameter is set correctly in the web.xml file.
errors when accessing
thumbnails, files, or the 1. Open the web.xml file in a text editor. The web.xml file located in
viewer. (The 403 error may the web application file (awc.war for Java or awc.zip for .NET).
only be visible in the
network page of the 2. Search for the following:
browser’s developer tools.) <filter-name>TCLoginVerifier</filter-name>

3. If necessary, update the value of the tcSOAURL parameter so that it


is the same as the value used for the ProxyServlet redirectURL
parameter, which is also specified in the web.xml file.

4. Save the file and close the text editor.

5. Redeploy the application.

Active Workspace does not Ensure the following:


display the same language
(locale) as the Teamcenter 1. Set the operating system of the computer running Active Workspace
server. to the correct locale.

2. Set the browser running Active Workspace to the correct locale.

3. Ensure that the web application file is set to the correct locale.

Use PLStats to see performance data

Use the PLStats functionality of Active Workspace to view performance telemetry data.

5-84 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Use PLStats to see performance data

When you use PLStats, it reports to the browser console information about memory usage, overhead
times, DOM node count, and so on.

To use it, modify the URL to insert ?usePLStats before the #.

Example:
host:port/awc/#/showHome

Becomes:

host:port/awc/?usePLStats#/showHome

Once you add this to the URL, Active Workspace will maintain it, printing out performance data for each
page. To stop using PLStats, remove the ?usePLStats from the URL.

1. Modify the URL.

2. View the performance summary table.

3. Investigate detailed telemetry information

What else should I know?

In the detailed telemetry section, all values that are preceded by an asterisk will be reported to Siemens
Digital Industries Software, if analytics is enabled.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-85


© 2020 Siemens
5. Administration

Example:
*ScriptingTime: "xxx.xxms"

Verify the Active Workspace gateway and other microservices

Use the ping functionality to check the various components of the Active Workspace gateway
architecture, and verify connectivity.

http://hostname:3000/ping

You can disable this functionality by changing the pingEnabled setting to false in the gateway
config.json file.

AW ROOT/microservices/gateway-1.1.0/config.json

"pingEnabled": false

Tip:
You must restart the gateway to apply the change.

5-86 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Resetting the Active Workspace gateway and microservices

Resetting the Active Workspace gateway and microservices

When you make changes to the configuration files for the Active Workspace gateway and
microservices, you must restart them for your changes to be recognized.

Windows

On Windows, all of the gateway services and microservices on a given machine are managed by a single
multi-threaded service. To implement your configuration changes, restart the service using the Services
control panel:

Or from the command line:

net stop "Microservice Manager PoolA" && net start "Microservice Manager
PoolA"

Linux

On Linux, the gateway services and microservices are manged by a Docker swarm. Force a rolling restart
on the gateway node. The others will restart in turn.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-87


© 2020 Siemens
5. Administration

Visualization monitoring and troubleshooting

Troubleshoot a new installation of Visualization

Intent

The following Visualization troubleshooting diagnostic sequence is:

• For new installations where visualization is non-functional.

• Tailored for clean systems that have never had a previous installation of visualization.

• Intended for use when the Visualization Pool Assigner is deployed on a Java server on Windows.

Usage notes

• Document all changes made during this process so that all unnecessary changes can be reverted once
the system finally works.

• If a problem is identified and fixed during the diagnostic sequence below, but visualization still does
not work, return to the beginning of the diagnostic sequence.

Sequence

Use the following steps when troubleshooting a new installation of Visualization.

5-88 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshoot a new installation of Visualization

1. Verify that the servers are installed on computers that are running supported operating systems.
For example, Windows 7 Professional is unsupported.

2. Verify that the Visualization Server Manager is launched using the run_visservermgr.cmd script.
Do NOT run the Visualization Server Manager as a Windows Service, as doing so significantly
reduces stability and performance.

3. Verify that the Visualization Pool Assigner is launched using the run_visassigner.cmd script. Do
NOT run the Visualization Pool Assigner as a Windows Service, as doing so significantly reduces
stability and performance.

4. If the Visualization Data Server is installed and running, terminate the Visualization Data Server. It
is not required for loading small to medium sized models.

5. Turn off all firewalls. If this is not possible, verify that all ports and port-ranges declared through
TEM have been opened through firewalls.

6. Restart the visualization system. The following sequence yields the cleanest startup:

a. Terminate the Visualization Server Manager.

b. Terminate the Visualization Pool Assigner.

c. Start the Visualization Pool Assigner.

d. Start the Visualization Server Manager.

7. Attempt to view 3D content in Active Workspace. A failure is expected.

8. Does the 3D window waiting cursor (rotating circle) show for a long time and the 3D model does
not display?

• Yes -

• Logout and login as the admin user. Navigate to Viewer Administration and verify that at least
one Visualization Pool Assigner and one Visualization Server Manager is listed.
If no Visualization Pool Assigner and Visualization Server Manager are listed, do the following.

a. Navigate to the Gateway installation.

b. Verify that Gateway forwarding is correctly pointing to the deployed Visualization Pool
Assigner by verifying that the following entry is correct in the config.json file.

"vis": {

"path": "/VisProxyServlet",

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-89


© 2020 Siemens
5. Administration

"target": "http://
<VisAssignerHostname>:<VisAssignerHostPort>>
/VisProxyServlet"

Where VisAssignerHostname and VisAssignerHostPort are the host and port where the
Visualization Pool Assigner was configured.

• No - Continue.

9. Does the message “Vis Server Manager is ready!” appear in the Visualization Server Manager
console within two minutes of startup?

• Yes – Continue.

• No –

• Does a “JVM_Bind” error appear in the Visualization Pool Assigner or Visualization Server
Manager console/log?

■ Yes – The server’s Socket Cache port is already in use by another process. Either use TEM to
alter the port, or terminate the process that is presently using the port. Then, restart the
visualization system.

■ No – Continue.

• Does a “Trouble connecting to cold visualization server on port <PORT> with PID <PID> due to
‘The VisView's reported system CPU usage (-1.0) is less than 0’. Retrying ...” error appear in the
Visualization Server Manager console?

■ Yes –

a. Verify that the Visualization Server Manager is installed on a computer that is running
a supported operating system.

b. On the machine hosting the Visualization Server Manager, execute the following
Windows commands:
cd C:\Windows\SysWOW64
lodctr /r
winmgmt /resyncper

c. Restart the Visualization Server Manager.

d. If the problem persists, contact vendor.

■ No – Continue.

5-90 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshoot a new installation of Visualization

• Does a “Error reading 'begin' notification” error appear in the Visualization Server Manager
console?

■ Yes – You are likely pointing your Visualization Server Manager at an incorrect server or
port. For example, you may be pointing it at the Visualization Pool Assigner’s HTTP server
instead of the Visualization Pool Assigner’s Socket Cache server. If not, contact vendor.

■ No – Continue.

• Verify that the appropriate Microsoft Visual Studio Redistributables are installed. (They are
typically installed automatically).

a. Launch VisServerFV\Products\FoundationViewer\visview.exe.

b. Does VisView appear?

■ Yes – Continue.

■ No –

◊ Does an error message appear that complains of a missing MFC DLL?

• Yes – Download and install the appropriate redistributables.

• No – A different warning or error message is observed. Continue.

• Is the Visualization Server Manager repeatedly reporting an error beginning with “Could not
connect to VisPoolAssigner”?

■ Yes –

◊ The Visualization Pool Assigner is running a server called the “Socket Cache”, but the
Visualization Server Manager is reporting that it cannot connect to that server. Verify that
the VisPoolProxy.peerNodes property in the Visualization Server Manager’s jetty/
jettyservice.properties file will enable the Visualization Server Manager to contact the
Visualization Pool Assigner’s Socket Cache server.

◊ If the problem persists, contact vendor.

■ No – Continue.

• Purge VisView's registry areas.

a. Terminate the Visualization Server Manager.

b. Run Windows' Registry Editor (regedit.exe).

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-91


© 2020 Siemens
5. Administration

c. Using the Registry Editor, delete the following folders in the registry:
HKEY_CURRENT_USER/Software/Siemens/AW/<<AW_RELEASE_VERSION>
HKEY_CURRENT_USER/Software/Siemens/AW_Retained/
<<AW_RELEASE_VERSION

d. Restart the Visualization Server Manager and retest.

e. Continue.

• Contact vendor.

10. Does a “The visualization servers are busy” error message appear in Active Workspace when trying
to view 3D content?

• Yes –

• Does a “All Pool Managers are full” error message appear in the Visualization Pool Assigner
console?

■ Yes –

a. Open the Visualization Server Manager's jetty/jettyservice.properties file and note the
value of VisPoolProxy.hostName.

b. From the Visualization Pool Assigner computer, open a command prompt and run the
command
ping <VisPoolProxy.hostName>
where <VisPoolProxy.hostName> is the value found in the jetty/
jettyservice.properties file.

c. Was a "Reply" observed?

◊ Yes – Continue.

◊ No –

• The Visualization Pool Assigner initiates communications with the Visualization


Server Manager using the VisPoolProxy.hostName and VisPoolProxy.poolUrl
values found in the jetty/jettyservice.properties file. If the Visualization Pool
Assigner cannot reach the Visualization Server Manager using these values, then
the system will not work.

d. If the problem persists, contact vendor.

■ No – Contact vendor.

• No – Continue.

5-92 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshoot a new installation of Visualization

11. Is a new VisView process started when you attempt to load a model into Active Workspace?

• Yes –

• Did the new process terminate a few seconds after starting?

■ Yes – Contact vendor.

■ No – Continue.

• No –

• Ensure that theVisPoolProxy.peerNodes in the jetty/jettyservice.properties file is pointing


at the correct Visualization Pool Assigner.

• If the problem persists, contact vendor.

12. Configure the Visualization Server Manager to be in debug mode.

a. Make a backup of the jetty/jettyservice.properties file.

b. Open the jetty/jettyservice.properties file and change the following parameters:

• Set “VisPoolProxy.warmServers=1”

• Set “VisPoolProxy.maxServers=1”. (This prevents more than one VisView process from
starting.)

• Enable “VisPoolProxy.envset.TCVIS_DA_DEBUG_LOG=True”

• Enable “VisPoolProxy.envset.TCVIS_LOGGING_LEVEL=DEBUG”

c. Shut down the Visualization Server Manager.

d. Delete the contents of the jetty/TEMP directory.

e. Start the Visualization Server Manager.

f. You are now in debug mode. Continue.

13. Check for FCC problems.

a. Configure the Visualization Server Manager to be in debug mode. (Procedure described in


previous step.)

b. Stop the Visualization Server Manager.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-93


© 2020 Siemens
5. Administration

c. Verify that your FMS_HOME environment variable specifies the FCC installation area.

d. Purge FCC temporary files.

A. Run the following commands:


%FMS_HOME%/startfcc.bat
%FMS_HOME%/bin/fccstat –purge
%FMS_HOME%/bin/fccstat –kill

B. Delete the following:

• C:\Users\%USERNAME%\FCCcache*

• C:\Users\%USERNAME%\Teamcenter\SOA

• C:\Users\%USERNAME%\vendor\logs

• C:\Users\%USERNAME%\fcc.*

• VisDataServer/Program/scratch/*.

C. Start FCC manually using the command “%FMS_HOME%/startfcc.bat” and verify that
there are no errors.

e. Clear the contents of the Visualization Server Manager’s jetty/TEMP area.

f. Restart the visualization system.

g. Attempt to view 3D content in Active Workspace.

h. Examine the jetty/TEMP/VisProd*/tcvis_da_dbglog*.txt and address any suspicious error


messages.

i. Open the jetty/TEMP/Visview<PID>.log file.

j. Does the log file contain any of these messages:


“ERROR: MkGetFileByFMSTicket”
“ERROR: MkCreateMoniker”
"ERROR: OpenDocumentByMoniker”

• Yes –

A. Open your FCC’s fcc.xml file and verify that it is pointing at correct locations and that
it is it free of typos.

B. If your FCC’s fcc.xml parentfsc is using HTTPS, verify the involved certificates.

5-94 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshooting Visualization

C. Review the FCC console for errors.

D. Review the jetty/TEMP/VisProd<PID>/*/tcvis_da_debug*.txt for errors.

E. If the problem persists, contact vendor.

• No – Continue.

14. Verify that the Visualization Server Manager has access to graphics hardware.

a. See the section “Configure the Visualization Server Manager to be in debug mode” earlier in
this procedure.

b. Open the jetty/TEMP/Visview<PID>.log file.

c. Does the log file contain the message: “System Supports OpenGL Version”?

• Yes –

• Is the value of “System Supports OpenGL Version” 1.2 or greater?

■ Yes – Continue

■ No –

◊ Are you using supported graphics hardware?

• Yes –

A. Verify that your NVIDIA graphics driver is version 340.66 or later

B. Verify that the computer is recognizing the graphics card.

C. If the problem persists, contact vendor.

• No – No solution.

• No – Contact vendor.

15. Contact vendor.

Troubleshooting Visualization

The following list of issues and possible resolutions addresses situations that are outside the scope of
the visualization troubleshooting diagnostic sequence for new installations.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-95


© 2020 Siemens
5. Administration

1. Graphics in the viewer tab display extraneous geometry.


2. Measurement label dragging does not work with a touch screen.
3. The assembly appears to be very small on the screen.
4. Indexing fails while using the MMV option.
5. Lifecycle Visualization may display a structure differently than it is shown in Active
Workspace.
6. You encounter an error when using Internet Explorer 11 to run Active Workspace hosted in
stand-alone visualization.
7. The Visualization Pool Assigner repeatedly adds the error message "Could not connect to
<HOST>:<PORT>. Retrying..." to the console/log.
8. The Visualization Server Manager displays message “Trouble connecting to cold visualization
server on port XXXX with PID YYYYY due to "The VisView's reported system CPU usage (-1.0)
is less than 0". Retrying ...” .
9. After a user inactivity exceeds the time out value, the Active Workspace viewer tries to
reconnect but fails with the following error: "Visualization was not loaded because
communication was lost."

Issue Possible resolution

1) Graphics in the viewer tab This is an indication that the graphics driver on the Visualization Server
display extraneous Manager machine is not up-to-date.
geometry.
Verification

1. On your video card manufacturer’s web site, make note of the


latest driver version for your card.

2. Open the Windows Control Panel.

3. Click Device Manager.

4. Expand Display adapters.

5. Right-click the entry for your display adapter, and choose


Properties.

6. Click the Driver tab.


The driver version on your machine is listed. If the installed driver
is not the latest available, update it.

Solution
If the driver for the graphics adapter is not the latest version, update
the driver and reboot.

2) Measurement label Solution


dragging does not work with
You can use Internet Explorer to drag measurement labels by pressing
a touch screen.
and holding the label. In other browsers on the Microsoft Surface, you

5-96 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshooting Visualization

Issue Possible resolution

may need to disable the "press and hold" setting if you see a
translucent square appear when performing the press and hold
gesture.

1. Open Windows search and type Pen and Touch to find the
settings dialog box.

2. In the Touch tab, select the Press and Hold action and click
Settings.

3. Uncheck Enable press and hold for right-clicking and click OK.

4. In the Pen and Touch settings dialog box, click OK.

3) The assembly appears to Verification


be very small on the screen.
The existence of bad data from a single part in a large assembly may
cause noticeable visualization artifacts when the whole assembly is
viewed in MMV mode. For example, if one part has a very large
bounding box caused by bad data, the assembly may appear to be very
small on the screen.
Review the vds_console.log for this line:

Suspected bad bounding box encountered

VDS provides this warning if it encounters parts with suspicious


bounding boxes. Keep in mind the following items:

• VDS flags nodes with an unusually large bounding box.

• VDS flags nodes that are isolated from other parts.

• You need at least 1000 nodes in a structure for these calculations to


be made. (Otherwise it would not be statistically meaningful.)

To log additional information on boundary box error reporting, create a


log for bounding box validation by adding the following to the
VisDataServer.properties file:

# This channel is meant to capture the output from


BBoxValidator logger.
# This will log any invalid Bounding Boxes found in the
structure.
logging.channels.BBoxValidatorChannel.class=FileChannel
logging.channels.BBoxValidatorChannel.flush=false

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-97


© 2020 Siemens
5. Administration

Issue Possible resolution


logging.channels.BBoxValidatorChannel.path=$
{system.tempDir}/BBoxValidator.log
logging.channels.BBoxValidatorChannel.rotateOnOpen=true
logging.channels.BBoxValidatorChannel.purgeAge=0 seconds
logging.channels.BBoxValidatorChannel.formatter=FileFormatt
er

# BBoxValidator logger
logging.loggers.BBoxValidator.name=BBoxValidator
logging.loggers.BBoxValidator.level=Debug
logging.loggers.BBoxValidator.channel=BBoxValidatorChannel

Use the bounding box validator to define the appropriate bounding


box for your assemblies.

4) Indexing fails while using Verification


the MMV option.
When running the FTS Indexer with the Massive Model Visualization
(MMV) option, a folder is automatically generated in case there is a
failure:

FTS_INDEXER_HOME\working\TcFtsIndexer_structure\
MMV_Failure

Solution
If you notice the MMV_Failure folder is created and contains content,
contact GTAC to investigate the issues.

5) Lifecycle Visualization may Solution


display a structure differently
The PSEShowUnconfigdVarPref preference must be set to false for
than it is shown in Active
Lifecycle Visualization to show the same structure as Active Workspace
Workspace.
when variants are applied. This can be done using the Edit→Options
This may occur when Active menu command in the rich client.
Workspace configures its
The issue can occur depending on the value of the
structures using a saved
PSEShowUnconfigdVarPref preference. The Structure Manager
variant rule (SVR) and then
application within the rich client allows for setting a Show
interoperates the configured
Unconfigured Variants flag. When this flag is true, BOM lines that
structure to Lifecycle
would normally be removed given the current variant configuration are
Visualization.
shown. The value of the PSEShowUnconfigdVarPref preference is
modified each time the state of this flag is modified. Active Workspace
does not currently present this Show Unconfigured Variants flag as a
configurable option. However, the PSEShowUnconfigdVarPref
preference is still used by the BOM window to set its own state
regarding whether it shows unconfigured BOM lines.
Setting the PSEShowUnconfigdVarPref preference to false causes
BOM lines for configurations (other than the current one) to be
5-98 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3
© 2020 Siemens
Troubleshooting Visualization

Issue Possible resolution

removed, displaying (in Lifecycle Visualization) the same configuration


data that is displayed in Active Workspace.

6) You encounter an error Verification


when using Internet Explorer
You see the following error:
11 to run Active Workspace
hosted in stand-alone
You are using an unsupported browser.
visualization. In order to use Teamcenter Active Workspace, you must use
a browser that
supports HTML5.
If you are running Internet Explorer 11 (or later) and
seeing this message,
you may be running in compatibility mode.
You must turn it off to have the HTML5 support that is
required.

Solution

1. Clear the cache in Internet Explorer by choosing Tools→Delete


Browsing History on the menu bar.

2. Choose Tools→Compatibility View Settings and check Display


intranet sites in Compatibility View.

3. In the registry, add the following browser emulation settings for


the executables visview.exe and visview_ng.exe:

HKEY_CURRENT_USER
SOFTWARE
Microsoft
Internet Explorer
Main
FeatureControl
FEATURE_BROWSER_EMULATION
visview.exe = (DWORD) 00011000
visview_ng.exe = (DWORD) 00011000

For detailed information about browser emulation and registry


settings, see:

https://msdn.microsoft.com/en-us/library/
ee330730(v=vs.85).aspx

4. Reboot your machine.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-99


© 2020 Siemens
5. Administration

Issue Possible resolution

7) The Visualization Pool The Visualization Pool Assigner was likely mistakenly configured to
Assigner repeatedly adds the have a peer Visualization Pool Assigner. Peer Visualization Pool
error message "Could not Assigners are intended for load balanced configurations where there is
connect to <HOST>:<PORT>. more than one Visualization Pool Assigner in the system for improved
Retrying..." to the console/ load handling and/or failover. Open the Visualization Pool Assigner
log. configuration page in TEM and remove the Visualization Pool
Assigner’s peer assigner entry.

8) The Visualization Server The Visualization Server Manager process uses Windows performance
Manager displays the counters to read the current CPU usage of the computer. Windows
message “Trouble connecting performance counters can become broken, resulting in invalid values
to cold visualization server for the CPU usage, for example: -1.
on port XXXX with PID YYYYY
Solution
due to "The VisView's
reported system CPU usage
(-1.0) is less than 0". 1. Open a command prompt or PowerShell as an administrator.
Retrying ...”
2. Change the directory to C:\Windows\SysWOW64.

3. Run the command lodctr /R.

4. Restart the Visualization Server Manager.

9) After a user exceeds the The Visualization deployment was likely mistakenly configured with
time out value, the Active the Teamcenter Load Balancer URL. Refer to Configure Visualization
Workspace viewer tries to where Teamcenter is deployed behind a load balancer.
reconnect but fails with the
In the developer tools console the following error will display if the
following error: "
deployment was configured with the Load Balancer URL: error “Failed
Visualization was not loaded
to connect to server: The TCLoginverifier likely refused this
because communication was
visualization-specifc request due a missing connection to Teamcenter.”
lost."

Monitor visualization components and processes in Active Workspace

The Active Workspace Viewer Administration page provides information about active visualization
components and processes.

1. Log on as a user with administrator privileges, typically one in the dba group with the DBA role,
but possibly others in your organization.

2. On the home page, click VIEWER ADMINISTRATION.

5-100 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Monitor visualization components and processes in Active Workspace

The Viewer Administration page appears. The initial view of the page includes a diagram of active
visualization components and processes.

3. For details about an object included in the diagram, select the object, and click Info .

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-101


© 2020 Siemens
5. Administration

The Information panel appears, providing detailed information on the selected visualization
component or process.

Note:
To maintain a secure environment, sensitive information such as IP addresses and the session
ID is not displayed.

4. To update the display of information, click Refresh.

Troubleshooting an MMV deployment

This troubleshooting topic assumes that you have already deployed the Active Workspace 3D viewer,
Visualization Data Server (VDS), and indexed the structure with the MMV flag. If you do not have a
working Active Workspace 3D viewer, review the other topics within Visualization monitoring and
troubleshooting. If you have a working viewer but your structure is not loading with MMV, then use this
checklist to troubleshoot your MMV deployment issues.

Use the following procedures to troubleshoot an Active Workspace MMV deployment.

5-102 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshooting an MMV deployment

Troubleshooting step Comments

Ensure the Active Workspace This feature adds the awv0activeworkspacevis_template.xml


Visualization Server Extension template to the database.
feature is installed.

Ensure that these licenses are • Vis_simp_rendering


installed. • Visualization Professional or Mockup service level

Ensure that FCC (File Client Cache) The FCC should be large enough to load all the JT data that is
is installed and configured needed for the indexed products.
correctly.

Use the VisView process log files 1. Enable logging through the jettyservice.properties file.
to determine if the viewer is using
the GPU. 2. Uncomment this line:
#VisPoolProxy.envset.TCVIS_LOGGING_LEVEL=DEB
UG

3. Restart the Visualization Server Manager.

4. Log into any log file for any VisView process.


The log output directory (defaults to TEMP) should look like
the example below. The numbers will be different but the
pattern Visview*.log will remain the same.

5. Search for OpenGL to find a block of text that looks like the
example below.

If the version of OpenGL is greater than 1.1.0 ( 110 ), then


you are using the GPU.

Verify that the configuration that For more information on using the FTSIndexer, review
is indexed is the same as what you runTcFTSIndexer.
are trying to view (e.g., same
Use the following command to get the FTSIndexer status.
revision, rule, effectivity, etc.).

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-103


© 2020 Siemens
5. Administration

Troubleshooting step Comments

1. In the Teamcenter command prompt, enter the following


command:
runTcFTSIndexer –task=structure:show
2. Confirm that the State field value = 8 (success) and the
Subscribers field value = MMV.

Another way to verify that the indexing is successful is to:

1. Log in as the Teamcenter administrative user.


2. Locate the MMV Delta Collection - DO NOT DELETE folder.

3. Inside the folder, locate the dataset with the


Awv0CompleteFile named reference, indicating successful
indexing.

If the structure is not MMV-indexed, review the bomindex_admin


to make sure it is configured correctly.

If the indexing did not succeed, 1. Set the TcFtsIndexer logging to TRACE:
generate indexing logs for MMV. log4j.logger.com.siemens.teamcenter.ftsi=TRA
CE
2. Modify the existing %TcFtsIndexer.home%\conf
\TcFtsIndexer.properties parameter:
This keeps generated mmp and tcxml files.
3. Cleanup the working directory and previously generated
logs.
4. Restart the TcFtsIndexer service.

5-104 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshooting an MMV deployment

Troubleshooting step Comments

Review the VDS console to verify 1. Start up the VisDataServer.exe process.


that there are no obvious error 2. Look for ***FULL STRUCTURE IMPORT COMPLETE output
messages. for the BIADs (BOMIndexAdminData tables) that are MMV-
indexed.
You will not be able to view MMV until the import is
complete.
3. Review the console for any obvious error messages.

Correct an VDS independently logs into Teamcenter using a password file


InvalidCredentialsException created by TEM. If this password is wrong or lost, you will see an
error on VDS startup. InvalidCredentialsException error in the console on VDS startup.
You can do the following to recreate the file.

1. From the command line, enter:


set TEM_SEENA=<password>
VisDataServer.exe /encryptpwf /
pwenv=TEM_SEENA /pwfile=d:\test.pwf
set TEM_SEENA=
2. In the VisDataServer.properties file, ensure that these
values are correctly set:

• User name under which VDS accesses Teamcenter data


for the population of indexed models in its memory and
cache.
TeamcenterAccessManager.User1=infodba
• Path to encrypted password file.
TeamcenterAccessManager.LoginFilePath1=C:/
myfolder/test.pwf

Verify that the URL is configured 1. In the jetty.properties file for the viewer (not the VDS),
correctly and that the viewer can locate the line similar to the following example:
access the VDS. VisPoolProxy.envset.TCVIS_VISDATASERVERURL=h
ttp://<hostname>
:9990/ProductStructure
2. Copy and paste the URL into a browser window on the
machine where the viewer is running.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-105


© 2020 Siemens
5. Administration

Troubleshooting step Comments

The VDS console should respond with an error message if


the URL is configured correctly and the viewer is accessing
the VDS.
If the VDS console does not respond, it means either that
this line in the jetty.properties file is misconfigured or that
something in the network is preventing the viewer from
contacting the VDS.

View the VDS logs if the viewer If the viewer isn't behaving as expected, do the following to view
isn't behaving as expected. the client communication logs to VDS. You should see FindRoot
call to confirm that the viewer is attempting to load a structure
with the VDS.

1. Shut down VDS.


2. In the VDS.properties file, uncomment the following lines
to see the HTTP request from the client.
#logging.loggers.ProductStructure.name=Produ
ctStructure
#logging.loggers.ProductStructure.level=Debu
g
#logging.loggers.ProductStructure.channel=Co
nsoleChannel1
This will show client communication from the viewer to
VDS.

Note:
This will generate a lot of logs, so we don't
recommend doing this until you have reached this
step in the troubleshooting process.

3. Locate the FindRoot call to confirm that the viewer is


attempting to load a structure with the VDS.
4. If there is no communication between the viewer and VDS
when a structure is loaded, turn on the SOADebug library
from the viewer:

• In the jetty.properties file, add the following line:


VisPoolProxy.envset.TC_SOACLIENT_LOGGING=D
EBUG
The soa_client log will be created in the TEMP directory.

• In the soa_client log, look for a GetStructureIDFromRecipe


call being made to Teamcenter from the viewer.

5-106 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Overview of monitoring Visualization Server components using JMX

Monitoring Visualization server components using JMX

Overview of monitoring Visualization Server components using JMX

You can monitor the Active Workspace Visualization Server system, including the Visualization Server
Manager, Visualization Servers, and the Visualization Pool Assigner, using a freeware Java Management
Extensions (JMX) client, such as Oracle Java Mission Control or JConsole. Monitoring these server
components with JMX is useful for identifying performance bottlenecks or other problems.

A JMX client installed on the same computer as the Visualization Server components automatically
detects all servers running on the machine. The information exposed by the visualization components is
presented using MXBeans.

To enable remote access for JMX clients, on the server you must configure authentication (users and
passwords) and encryption for the server process. Once remote access is enabled and configured, JMX
clients from remote machines can connect to the server.

For information about configuring remote JMX monitoring of server processes, see Monitoring and
Management Using JMX Technology in the Oracle Java SE Documentation.

Note:
JMX metrics can include the following composite data types with multiple values:

CurrentMaxTotal: This object includes these values:

• The current value

• The highest the value has been since startup

• The total value since startup

CurrentMaxMin : This object includes these values:

• The current value

• The highest the value has been since startup

• The smallest the value has been since startup

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-107


© 2020 Siemens
5. Administration

Visualization Server Manager

Each Visualization Server Manager hosts two MXBeans that contain information about its current state:
<poolName> and <poolName> monitoring. They are located in the Administer-<poolName>-
manager folder.

The <poolName> MXBean for the Visualization Server Manager provides the following information:

• CacheConfiguration
The configuration parameters used to connect the Visualization Server Manager to the Visualization
Pool Assigner.

• Language
The language within which the Visualization Server Manager is running.

• Load
A single ratio that represents how much of the computer’s capacity is currently in use. When this ratio
is greater than or equal to 1.0, the system is completely full and new clients are rejected.

• NumberOfAssignedServers
The number of Visualization Server processes in use or recently in use by client users.

• NumberOfColdServers
The number of Visualization Server processes in the process of starting up, although not yet ready for
use.

• NumberOfServers
The total number of Visualization Server processes (cold, warm, and assigned).

• NumberOfWarmServers
The number of Visualization Server processes ready for use by new client users.

• PoolID
The name of this Visualization Server Manager.

• PoolSpecificConfiguration
The configuration parameters passed in at startup to this Visualization Server Manager.

• StartupDate
The data and time that this Visualization Server Manager was last started.

5-108 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Visualization Server Manager

The <poolName> monitoring MXBean for the Visualization Server Manager provides the following
information:

• accepting
Whether or not this server is currently accepting new incoming users.

• assignedServerCount
The number of VisView processes that are currently serving users with visualization functionality.

• assignedVisViews
Specific information about each of the VisView processes that are currently assigned to users.

• assignedVisViewsCount
The number of VisView processes that are currently assigned to users.

• computerCpuUsageRatio
A ratio indicating how much CPU usage is consumed or unavailable on this computer.

Note:
A ratio for Active Workspace MXBeans refers to a current usage value divided by the maximum
usage value. For example, a CPU usage of 30% is divided by the maximum of 100% to compute
a ratio of 0.3. All ratios in Active Workspace are between 0 and 1, unless the capacity of the
visualization system is exceeded, in which case the ratio is greater than 1.

• computerMemUsageRatio
A ratio indicating how much system memory is consumed or unavailable on this computer.

• computerNetworkUsageRatio
A ratio indicating how much network usage is consumed or unavailable on this computer.

• config
The configuration parameters passed in at startup to this server.

• dateCreated
The date and time that this Visualization Pool Assigner was last started.

• gpus
Specific information about each of the GPUs currently used by VisView processes.

• hostName
The name or IP address of the computer that this server is hosted on.

• languageID
The language that the server is currently running in. The default is English.

• loadRatioAbsolute

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-109


© 2020 Siemens
5. Administration

A ratio indicating how much of the computer’s resources is consumed or unavailable on this
computer.

• loadRatioRelative
A ratio indicating how much of the computer’s resources is consumed or unavailable on this computer
when compared to the maximum allowed resource-consumption-level (default of 0.7) of this server.

• maxBandwidthBytesPerSec
The maximum allowed bandwidth (in bytes-per-second) that this server is allowed to consume.

• numAssignmentsSinceStartup
The number of models that have used visualization system resources on this server.

• numGpus
The number of GPUs that the computer has.

• poolName
The alias defined by the administrator to identify this particular Visualization Server Manager.

• Prefers
The models preferred by this server.

• serverTooFullExceptions
When clients are refused visualization services, this contains the reason.

• serverTooFullExceptionsCount
How many clients were refused visualization services.

• serves
The models that this server has currently in memory due to requests from users.

• totalGpuMemMB
The total amount of system GPU memory on this computer.

• upTimeSec
How many seconds have elapsed since this server was last started.

• visSysCpuUsageRatio
A ratio indicating the CPU usage of this server on the computer.

• visSysGpuUsageRatio
A ratio indicating the GPU usage of this server on the computer.

• visSysMemUsageRatio
A ratio indicating the amount of system memory consumption of this server on the computer.

• visSysNetworkUsageRatio

5-110 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Visualization Server

A ratio indicating the amount of network usage of this server on the computer.

• warmServerCount
The number of VisView processes that do not yet have users but are ready to host visualization
services for new users.

• warmVisViews
Specific information about the VisView processes that do not yet have users but are ready to host
visualization services for new users.

• warmVisViewsCount
The number of VisView processes that do not yet have users but are ready to host visualization
services for new users.

Visualization Server

Each Visualization Server owned by the Visualization Server Manager hosts one MXBean that contains
information about its current state. The MXBeans for the Visualization Servers are called
VisView@PID_<processID>@Port_<port>. They are located in a folder called VisServers.

An MXBean for a Visualization Server provides the following information:

• ClientConnections
Information about each client user connected to this Visualization Server.

• DateCreated
The date and time that this Visualization Server entered a state where it was first made available to
client users (warm).

• Models
The IDs for the models that this Visualization Server is currently hosting.

• MsSinceLastEMM
The number of milliseconds since this Visualization Server last received a message from a client.

• Port
The port that this Visualization Server is currently hosting its socket server on for connections from
the Visualization Pool Assigner.

• ProcessCpuUsageRatio
The average amount of CPU usage that this Visualization Server has consumed on the Visualization
Server Manager computer over the last 20 seconds.

• ProcessGpu
General information about the GPU that the Visualization Server is using.

• ProcessID

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-111


© 2020 Siemens
5. Administration

Also known as the PID, this is the identifier that the operating system uses to denote this particular
Visualization Server.

• ProcessMemUsageRatio
The average amount of memory usage that this Visualization Server has consumed on the
Visualization Server Manager computer over the last 20 seconds.

• ProcessMyGpuMemUsageRatio
The average amount of GPU memory usage that this Visualization Server has consumed (of the
particular GPU that this Visualization Server is assigned to) over the last 20 seconds.

• ProcessNetworkUsageRatio
The average amount of network usage that this Visualization Server has consumed on the
Visualization Server Manager computer over the last 20 seconds.

• ProcessTotalBytesTransfered
The number of bytes that have been received and sent by this Visualization Server process (discounts
data downloaded from Teamcenter servers).

• ServletConnections
Information about each connection from the Visualization Pool Assigner.

• TotalNumEMMs
The number of client requests handled by this Visualization Server.

• UpTimeSec
The number of seconds that have elapsed since this Visualization Server was created.

Visualization pool assigner

Each Visualization Pool Assigner hosts two MXBeans that contain information about its current state:
Assigner and Assigner monitoring. The MXBeans are located in the Administer Assigner manager
folder.

Note:
You must configure the Visualization Pool Assigner to populate some of the JMX metrics with
meaningful information. For more information, see Configure the Visualization Pool Assigner
for JMX metrics.

The Assigner MXBean for the Visualization Pool Assigner provides the following information:

• AssignerSpecificConfiguration
The configuration parameters passed in at startup to this Visualization Pool Assigner.

• CacheConfiguration

5-112 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Visualization pool assigner

The configuration parameters used to connect this Visualization Pool Assigner to any other
Visualization Pool Assigners in the Visualization Server system, and the configuration parameters used
to identify this Visualization Pool Assigner such that other nodes in the Visualization Server system
can connect to it.

• Load
A single ratio that represents how much of the computer’s capacity is currently in use. When this ratio
is greater than or equal to 1.0, the system is completely full and new clients are rejected.

• NumberOfPools
The number of Visualization Server Managers that this Visualization Pool Assigner is currently
connected to.

• NumberOfUsers
The number of client users who are currently connected to Visualization Server processes through
this Visualization Pool Assigner.

• StartupDate
The data and time that this Visualization Pool Assigner was last started.

The Assigner monitoring MXBean for the Visualization Pool Assigner provides the following
information:

• clientCount
The number of users that are connected to this server.

• clients
Specific information about the clients that have active sessions with this server.

• computerCpuUsageRatio
A ratio indicating how much CPU usage is consumed or unavailable on this computer.

• computerMaxBandwidthBytesPerSec
The maximum allowed bandwidth (in bytes-per-second) that this server is allowed to consume.

• computerMemUsageRatio
A ratio indicating how much system memory is consumed or unavailable on this computer.

• computerNetworkUsageRatio
A ratio indicating how much network usage is consumed or unavailable on this computer.

• computerTotalMemMB
The total amount of system memory on this computer.

• config
The configuration parameters passed in at startup to this server.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-113


© 2020 Siemens
5. Administration

• dateCreated
The date and time that this Visualization Pool Assigner was last started.

• loadRatioAbsolute
A ratio indicating how much of the computer’s resources is consumed/unavailable on this computer.

• loadRatioRelative
A ratio indicating how much of the computer’s resources is consumed or unavailable on this computer
when compared to the maximum allowed resource-consumption-level (default of 0.7) of this server.

• poolCount
The number of Visualization Server Managers known to this server.

• poolManagers
Specific information about the Visualization Server Managers known to this server.

• serverTooFullExceptions
When clients are refused visualization services, this contains the reason.

• serverTooFullExceptionsCount
How many clients were refused visualization services.

• upTimeSec
How many seconds have elapsed since this server was last started.

• visSysCpuUsageRatio
A ratio indicating the CPU usage of this server on the computer.

• visSysMemUsageRatio
A ratio indicating the amount of system memory consumption of this server on the computer.

• visSysNetworkUsageRatio
A ratio indicating the amount of network usage of this server on the computer.

Monitoring browser activity

When you press the F12 key, a window displays the developer tools provided with your web browser.
You can use these tools to monitor browser activity when using Active Workspace.

Note:
These tools are not provided by the Active Workspace client. See your web browser documentation
for complete information about how to use the tools accessed with the F12 key.

5-114 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Creating the organizational structure

Managing groups, roles, users, and projects

Creating the organizational structure

By setting up user management you can control the functionality that is available to users who are
mapped to a specific role, thereby controlling the access to restricted data. To do this, you can create
groups for specific projects, and add users, or roles assigned as team members to the projects.

Example:
You want to set up the organizational structure for a project that requires an administrator, a
project manager, two designers, and two analysts. You first create a project and add a group to the
project. You then identify the users or create new users that you require for your project. Next, you
search for existing roles or create new roles required for the project. You then add the roles to the
group, and add users to the respective roles in the group.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-115


© 2020 Siemens
5. Administration

Managing users, groups, and roles

What are groups, roles, and users?

Groups
In Active Workspace, the term group refers to a cluster of users who take on a role or multiple roles
in a group. Groups can be created to represent data ownership and to control data access. Projects

5-116 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
What are groups, roles, and users?

are created with specific groups, users, or roles assigned as team members, privileged team
members, and team administrators.

Typically, groups are defined along project lines and not functional lines. However, you can also
create groups of third-party organizations such as suppliers.

A group member can be a member of multiple groups. Groups make up the core of the organization
structure.

As an administrator, you can:

• Create, modify, and delete groups.

Example:
The high_performance group consists of 2 roles, that is, Engineering Manager and
Standards Engineer, and 2 users, namely, rgreen and mread, who are assigned their
respective roles.

• Assign authorized data access privileges to a group.

• Assign default volumes to a group.


A volume is a location where files are stored. A volume corresponds to a directory on the
operating system. Files stored in volumes are created by CAD applications or other third-party
applications. You can assign volumes to groups and define file locations for your organization
structure.

• Manage subgroups within the organization.


A subgroup is a group with another group designated as its parent. A subgroup may also be
designated as a parent group. The position of subgroups within the organizational hierarchy can
be managed by parenting and reparenting groups.
Subgroups can be used to organize users. Subgroups inherit access permissions, volumes, and
preferences from their parent.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-117


© 2020 Siemens
5. Administration

Example:
Consider a scenario where you wish to restrict contractors from viewing any content in the
employee group. In this case, you can create subgroups abc and acme within a group such
that users from these subgroups will not have access to the content from any groups other
than their own.

Roles
A role defines the type of work a user is expected to perform in a group. Roles refine the group
definitions of your organization structure.

• A role can be assigned to multiple groups.

• Roles add an additional layer of data access control.

• Roles are created along functional lines.

Tip:
While creating roles, use real-world descriptions, skills, and responsibilities.

As an administrator, you can:

• Create, modify, and delete role definitions.

• Add new or existing roles to groups.

• Assign a default role within a group.

Example:
Robert Green, a user, is assigned the default role of Engineering Manager. In addition to his
responsibilities as engineering manager, Robert must also perform standards-related work.
Therefore, user rgreen is assigned two roles in the high_performance group: Engineering
Manager and Standards Engineer.

5-118 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
What are groups, roles, and users?

Users
Users are individuals who interact with Active Workspace. A user is assigned to a default group and
takes on a role in the group.

As an administrator, you can:

• Create, modify, deactivate user accounts, or delete users from groups.

• Reset user passwords.

• Assign license bundles, and license servers to a user.


When you assign a license bundle to a specific user, the user assigned to the bundle is assured the
availability of all the features in the bundle. You can use license bundling in conjunction with
other licensing schemes. Consider a scenario where a user is assigned a license bundle that does
not include the Systems Engineering module. When the user launches Systems Engineering, the
system confirms if the feature key exists in the license file outside of the license bundle. If the
feature key is found, the application can be used.
A license server is a process dedicated to tracking license usage by users. It runs on a host
machine and port specified by an administrator. An administrator can set up multiple license
servers. Each license server can have a different set of users assigned to it. This allows the load
balancing of license requests so that a single license server is not overused.

Users can be assigned various roles in the organization. A user can also be part of multiple groups in
the organization.

Example:
Robert Green, a user, is assigned the default role of Standards Engineer and belongs to the
default group high_performance.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-119


© 2020 Siemens
5. Administration

How to manage groups, roles, and users in Active Workspace

In Active Workspace, you can use the PEOPLE tile to create and modify users, roles, and groups and to
set up authorized access using login credentials for each user.

Note:
The PEOPLE tile is visible in both the Active Admin and Default workspaces. It may be visible in
the General User workspace.
You can create your own workspace mapped to a special group of non-dba group users and add
the PEOPLE tile to it. This allows users to perform admin work because privileges for dba group
users are too broad.

As a database administrator, you can create users and user roles specific to your organization. You can
then add the users and roles to a specific group to grant them authorized access to the application.

5-120 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create a group

Creating groups, roles, and users

Create a group

1. In the Groups tab, click New > Add.

2. In the Add panel, specify values for the following:

• Name

• (Optional) Description

• (Optional) Security

• (Optional) To Parent
To create a subgroup for an existing group, select the parent group from the list.

• (Optional) DBA Privilege

• (Optional) Default Volume

• (Optional) Default Local Volume

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-121


© 2020 Siemens
5. Administration

3. Click Add.

Note:
You can also create groups in the Organization tab. To do so, in the Organization tab, click New
> Add, and follow similar steps to a create a group.

Create a role

1. In the Roles tab, click New > Add.

2. In the Add panel, specify values for the Role and, optionally, a Description.

3. Click Add.

Create a user

1. In the Users tab, click New > Add.

2. In the Add panel, in NEW, enter the following:

• Name

• User ID

• OS Name

• Default Group

• (Optional) Default Volume

• (Optional) Default Local Volume

• Status

Note:
To create an active user, set Status = 0.

• License Level

Note:
The types of licenses available depends on your license agreement. For descriptions of the
available license levels, see your license agreement documentation.

5-122 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create a user

• (Optional) License Server

• (Optional) License Bundle

• Visualization Licensing Level

0 (Base)

1 (Standard)

2 (Professional)

3 (Mockup)

• (Optional) Geography

• (Optional) Nationality

• (Optional) Citizenships

In PERSONAL INFORMATION, specify the following optional fields:

• Address

• City

• State

• Zip Code

• Country

• Organization

• Employee Number

• Internal Mail Code

• E-Mail Address

• Phone Number

• Locale

• Time Zone

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-123


© 2020 Siemens
5. Administration

3. Click Add.

Add roles and users to groups

1. In the Organization tab, select the group to which you want to add users.

2. In ROLES, click Add .

3. In the Add panel, do one of the following:

• In New, enter a role and description for the new role.

• In Search, enter the name of an existing role, and select the required role from the search
results.

4. Click Add.

5. To add users in a group, select the group and click Navigate.

6. Select the role to which you want to add users.

7. In USERS, click Add .

8. In the Add panel, do one of the following:

• In New, enter a name and description for a new user.

5-124 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Edit user information

• In Search, enter the name of an existing user and select the required user from the search
results.

9. Click Add.

Tip:
If you add a role to a group, but do not assign any users to that role, it will not appear in the
Organization tree.

Managing users

Edit user information

1. Navigate to the Users tab and search for an existing user.

2. Select the user.

3. Click Edit > Start Edit.

4. Modify the user information and click Edit > Save Edits.

View user activity logs

1. In the Roles tab, select the role for which you want to view the user activity logs.

2. Click the Audit Logs tab.


A table that shows the Logged Date, the Event Type Name, and the Login User ID is displayed
under ORGANIZATION LOGS.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-125


© 2020 Siemens
5. Administration

Change the user password

1. In the Users tab, search for the user whose password you want to reset.

2. Click Manage > Change Password.

3. In the Change Password panel, enter a password in the New Password box.

4. Retype the same password in the Confirm New Password box.

5. Click Change.

Deactivate users

You can deactivate a specific user ID by modifying the status of the user. This user is retained in the
database and can be activated for future use.

Example:
Consider a designer who will be going on an extended leave of absence. Instead of deleting the
user from the project group, you can temporarily deactivate the user. Once the user is available,
you can set the status to active.

1. In the Users tab, search for the user whose status you want to modify.

2. Click Edit > Start Edit.

3. Set the Status field of the user to 1 Inactive.

4. Click Edit > Save Edits.

5-126 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Delete a user from a group

Delete a user from a group

1. In the Organization tab, search for the group from which you want to delete a user.

2. Click the group to view a summary of the roles and users that are included in the group.

3. In Roles, select the row that displays the user that you want to delete.

4. Click Remove .
The selected user is deleted from the group.

Managing roles

Edit a role

1. Navigate to the Roles tab and search for an existing role.


In the Roles tab, search for and open the role that you want to modify.

2. Click Open .

3. Click Edit > Start Edit.

4. Modify the role name and description and click Edit > Save Edits.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-127


© 2020 Siemens
5. Administration

Delete a role

Note:
You cannot delete a role that is referenced by another organization object.

1. In the Organization tab, search for the group from which you want to delete a role.

2. Click the group to view a summary of the roles that are included in the group.

3. In ROLES, select the row that displays the role that you want to delete.

4. Click Edit > Remove.

Managing projects

What are projects?

Projects represent and control access to a particular collection of related data that may be accessible to
multiple organizations, such as project teams, development teams, suppliers, and customers.

Projects correlate groups of users, potentially at different physical sites, with the product data.

Project administrators and team members in Active Workspace

In Active Workspace, as a Project Administrator or Team Administrator, you use the PROJECTS tile to
manage your project teams. For example, you can add groups, roles, and users to your project by
selecting them from your organization.

Depending on your role, you can perform the following project-related tasks in Active Workspace:

Team role Definition

Project Administrator Teamcenter user with privileges to administer project teams


in Active Workspace.
Users in the Project Administrator role can:

5-128 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Manage project teams

Team role Definition

• Add and remove team members to projects in which the


team administrator is also a member.

• Assign Privileged, Non-privileged, and Team


Administrator status to any project team member.

Note:
You can designate multiple team administrators for
each project. This is often necessary to balance resource
management tasks for large projects.

Team Administrator Project team members with privileges to add and remove
project members.
Users in the Team Administrator role can:

• Add and remove team members to projects in which the


team administrator is also a member.

• Assign Privileged, Non-privileged, and Team


Administrator status to any project team member.

Note:
You can designate multiple team administrators for
each project. This is often necessary to balance resource
management tasks for large projects.

Privileged team members Project team members with privileges can view their projects
and their team members. They can also assign or remove
objects from their projects.

Non-privileged team Project team members without privileges can view their
members projects and their team members.

Manage project teams

As an administrator of a project team, you can select a project and view your team members. In
addition, you can add and remove users, roles, and groups.

Select a project and view your team members

1. As an administrator, select a project to display the TEAM MEMBERS.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-129


© 2020 Siemens
5. Administration

A team member can have one of four types of status:

• Project Administrator

• Project Team Administrator

• Privileged

• Non-privileged

2. To view your project's team members, click Show Children (>).

Example:
In this example, when you expand the role, you see the user whose status on the project is
Project Administrator.

Add a user to a project

As an administrator, from TEAM MEMBERS, click Add to open Organization to search for a user,
select the user, and click Add to add the selected user to your project team.

Note:
To remove a user from the project, select the user and click Remove .

Example:
For example, from within Organization, you filter on Nora. Then, you select Nora and click Add.

5-130 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Manage project teams

Add a role to a project

As an administrator, from TEAM MEMBERS, click Add to open Organization to search for a role,
select the role, and click Add to add the selected role to your project team.

Note:
You cannot remove a user from a role. You must remove the role.
To remove a role from the project, select the role and click Remove .

Example:
In this example, from within Organization, you filter on Change Analyst. Then, you select the
role and click Add.

Add a group to a project

As an administrator, from TEAM MEMBERS, click Add to open Organization to search for a group,
select the group, and click Add to add the selected group to your project team.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-131


© 2020 Siemens
5. Administration

Note:
You cannot remove a role or a user from the group. You can only remove the group.
To remove a group from the project, select the group and click Remove .

Example:
In this example, from within Organization, you filter on Test. Then, you select the role and click
Add.

Use logical objects to consolidate properties

Logical Objects

Why would I use a logical object?

Use a logical object to

• Gather properties from various related objects into a single place.

• Eliminate the need for the end user to know the data model by presenting a flat list of properties.

• Share specified properties without exposing others.

5-132 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Logical object configuration

What is a logical object?

A logical object is a runtime object designed to consolidate properties. If you have related business
objects in Teamcenter and they contain useful properties, you might want to see them all in a single
place.

The logical object allows you to:

• Define a set of objects related to a specific business object.

• Define a list of properties found on those objects.

Why would I use a logical object instead of compound properties?

Logical objects are runtime objects that organize properties.

• Logical objects can be created and maintained from within Active Workspace.

• Dynamic compound properties are a display capability. While flexible, they are not real properties nor
real objects to be queried or exported.

• Traditional static compound properties are a change to the Teamcenter schema, and must be created
using the Business Modeler IDE, and then deployed.

How do I configure a logical object?

You must use the Logical Objects administrative tool in Active Workspace in order to create or modify a
logical object. This tile is only visible to administrators.

Logical object configuration

Example scenario

In this example, you have a process object which has a reference relation to a document object. That
document object has two attached files, one word and one PDF.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-133


© 2020 Siemens
5. Administration

You want to consolidate four properties from three of those objects.

• object_name and process_type from the process

• document_type from the attached document

• object_name from the PDF attached to the document

No properties are desired from the word object , since this is internal to your department.

Create a new logical object

1. Log in to Active Workspace with administrator privileges and go to the Logical Object
Configuration page.

2. Define a new logical object , specifying the process object as the root object. In this

example you do not want to inherit configurations from other logical objects, so select the
Fnd0LogicalObject as the parent.

3. Add the two Members by specifying their relationship and object segments. All member
objects must be defined from the root object.

When adding the document only a single segment is required.

5-134 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Logical object configuration

However, the PDF object is two segments away from the root, and so you must define both
segments.

In this example, there is no need to add the word object.

4. Add the four Presented Properties, specifying from which Member object they will be
retrieved.

Active Workspace automatically saves your progress at each step, so you are done. The new logical
object is available.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-135


© 2020 Siemens
5. Administration

Result

Edit an existing logical object

You can edit existing logical objects from the Logical Object Configuration page.

• To add a new member or property, select the logical object you want to edit and select Add Member
or Add Property near the respective table.

• To modify an existing member, select the row in the Members table you want to edit, and then select
Edit Member .

The page configuration changes based on what you have selected, so if you do not see the icons you
expect, check your table selections.

Destination criteria

What are destination criteria?

A destination criterion is a way for the system to filter out destination objects at runtime.

5-136 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Destination criteria

What destination criteria are available?

Depending on the destination object type, you may have a list of one or more to choose from. Choose
only one. If you wish to use more than one criterion, you will need to define a second rule with the same
relation and destination object. Following is a list of your choices based on what type of object you
choose as your destination object:

• Type of WorkspaceObject
Current user session project

• Type of Item revision


Current user session project
Choice of configuration contexts
Choice of revision rules

• Runtime business object


No options

If your destination object is another logical object, then its root type is considered for this purpose, even
though logical objects are runtime objects.

What do the criteria types do?

• Current user session project


The destination object will be chosen at runtime based on the user's current project.

• Choice of configuration contexts


The destination object will be chosen at runtime based on the specific revision rule chosen.

• Choice of revision rules


The destination object will be chosen at runtime based on the specific configuration context chosen.
If you chose the Configuration Context option, then it will be based on the user's current
configuration context.

• No options
The destination object will be chosen at runtime with no special considerations.

How do I use it?

When adding a new Member to a logical object or editing an existing member, each segment asks for
Destinaion Criteria.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-137


© 2020 Siemens
5. Administration

Compound logical objects

What is a compound logical object?

A compound logical object is a logical object that references another logical object as a property source.

Why would I use it?

Since it is possible for a single logical object to contain as many properties as you require, and from
many target business objects, you may wonder why you would need to reference another logical object
at all.

The answer is compartmentalization. Imagine a scenario where several groups are each contributing
properties to an overall logical object. Each group would have to edit the members and presented
properties of the same logical object. This could become a logistical nightmare.

If instead, each group creates a single logical object from which to present their properties, then a single
corporate-wide logical object could include those logical objects from the individual groups. This
provides a single overall object for reference while still maintaining each group's ability to modify their
own object as needed.

How do I use it?

When viewing a logical object, use the Add command from the Included Logical Objects table.

Specify the target logical object as the Business Object.

5-138 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Learn about workspaces

Workspaces

Learn about workspaces

What are workspaces?

With workspaces, you can create UI configurations independent of the Teamcenter organization.
Traditionally, Teamcenter uses Groups and Roles for user organization as a way to control data security,
command visibility, workflow tasks, and so on. In some cases, these Groups and Roles are defined by
corporate standards or maintained by LDAP and cannot be manipulated as needed to achieve the
desired security and UI configurability. In other cases, the work of configuring duplicate settings for each
group and role combination becomes redundant. Workspaces allow you to configure for a role or task
once, and assign it as needed.

Workspaces are part of a solution. The only solution currently defined is Active Workspace.

What are the benefits?

You can:

• Create reusable configurations, independent of the Organization.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-139


© 2020 Siemens
5. Administration

• Design and assign them by group, role, task, or even skill.

• Determine which pages and commands are available.

• Control which style sheets are used.

• Decide how property columns in declarative tables are arranged.

• Control home page tile availability.

How do I work with workspaces?

• Define and modify your workspace using a declarative module.

• Map a workspace to the Organization using import_wsconfig.

• Optionally, Assign style sheets to the workspace with preferences.

• Optionally, Assign tile collections to the workspace with preferences.

• Optionally, Map column configurations to the workspace using import_uiconfig.

• You can also Remove a workspace, if necessary.

Best practice

The primary use of workspaces is to control the access that your users have to various pages and
commands within the Active Workspace client. The Default workspace, provided out-of-the-box, is an
inclusive workspace, meaning that it has access to all pages and commands by default. This workspace
is not meant for use in your production environment, but rather is provided so you can explore content
right away without having to do an initial configuration.

Siemens Digital Industries Software recommends that you create your own exclusive workspaces for
your users, with a task-based organization in mind. If you install Active Admin, it is an example of an
exclusive workspace designed for administrators. It limits the user's access to just a handful of
administrator-focused pages.

Create the workspace definition

You can create a custom workspace using a native module. The client-side portion of a workspace is
defined using a JSON file, which can be added to an existing module, or you could create a new one.

generateModule

In this example, you use generateModule to create a new workspace myExclusiveWorkspace.

5-140 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create the workspace definition

S:\stage>npm run generateModule


Enter type to generate: workspace
ID: myExclusiveWorkspace
Workspace name: Example
Type: Exclusive
Default page: myTasks
info: Added new workspace Example
S:\stage>

The utility creates the module structure and required files.

kit.json

The OOTB kit file is automatically updated with the name of your custom module and your workspace
ID..

"name": "tc-aw-solution",
"modules": [
"mysamplemodule",
"tc-aw-solution"
],
...
"solutionDef": {
...
"workspaces": [
"TCAWWorkspace",
"TcAdminWorkspace",
"TcAuthorWorkspace",
"TcConsumerWorkspace",
"myExclusiveWorkspace"
],

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-141


© 2020 Siemens
5. Administration

"defaultWorkspace": "TCAWWorkspace",
...

This file is also where you change the solution's default workspace by modifying the defaultWorkspace
entry.

Design Intent:
Siemens Digital Industries Software recommends against using the included inclusive workspace
(TCAWWorkspace) except for exploration and testing. Create and use only exclusive workspaces
in your production environment.

module.json

A module file is created and populated with the basic information about your custom module.

{
"name": "mysamplemodule",
"desc": "This is the mysamplemodule module",
"skipTest": true
}

workspace_{workspaceName}.json

This file contains the definition of your workspace. It must follow the naming convention shown and be
next to the kit file. If you used the generateModule utility, this is created automatically.

schemaVersion (Mandatory)
Version of the declarative schema to which this workspace definition complies.

5-142 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Modify the workspace definition

workspaceId (Mandatory)
A unique identifier string for the workspace.
workspaceName (Mandatory)
A JSON structure providing lookup details for the localizable string of the workspace name. The
source attribute points to the message file, and the key attribute tells the system which definition
to use.
workspaceType (Mandatory)
A string value specifying the type of workspace. There are two choices.

• Exclusive: The user will only be able to see the UI elements which are exclusively mapped in the
availablePages attribute. This is the recommended selection.

• Inclusive: The user will see all UI elements defined within the solution. This is not recommended
for your production environment.
defaultPage (Mandatory)
The page which will be shown by default when the user logs in or changes workspace. The value is
one of the states defined by the solution or in your custom states.json.
availablePages (Optional)
An array of pages which can be navigated by the user while working within the workspace. Each
value is one of the states defined by the solution or in your custom states.json. You may also include
all commands from an entire kit by specifying "kit::kitname" in the list.

{moduleName}Messages.json

This file contains the localized messages for the module. In this example, it shows the display name of
the workspace.

Modify the workspace definition

Since the main purpose of a workspace is to control which pages and commands are available to the
user, you will want to configure the definition to fit your needs.

Following are the three main sections of the workspace definition file that control which UI elements are
available or are restricted. None of these have any effect in an Inclusive workspace.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-143


© 2020 Siemens
5. Administration

Tip:
Workspaces only control the declarative interface. Any commands that are provided using style
sheets are not controlled in this manner and will still be available to the user. Be certain to review
your style sheets, and register special style sheets for your workspaces if desired.

availablePages

List the pages that you want the user to have access to. For convenience, you can include all pages from
a kit as well by specifying kit:: in front of the kit name.

Example:
To include all pages defined within the workflow kit, use:

"availablePages": [
"kit::workflow"
]

includedCommands

If you use this option, the workspace will only include these commands. Similar to the pages, you can
include all commands from a kit as well by specifying kit:: in front of the kit name.

Example:
The following includes a list of eight specific commands, plus all the commands defined within the
workflow kit.

"includedCommands": [
"Awp0ObjectInfo",
"Awp0GoBack",
"cmdSignOut",
"cmdViewProfile",
"Awp0ManageGroup",
"Awp0HelpGroup",
"Awp0Help",
"Awp0HelpAbout",
"kit::workflow"
]

excludedCommands

There are two ways you can use this option:

5-144 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create or update workspace mappings

• If you also specify included commands, then the workspace will subtract these commands from that
list.

• If you do not specify any included commands, then the workspace will automatically include all
commands in the workspace, and then subtract these.

Example:
The following excludes two specific commands from the workspace. They will not be available
through the declarative interface. However, a style sheet could still present them.

"excludedCommands": [
"Awp0SuspendTask",
"Awp0AbortTask"
]

Similar to the pages, you can include all commands from a kit as well by specifying kit:: in front of the
kit name.

Create or update workspace mappings

You can create workspace mappings by first exporting the list of existing workspace mappings provided
with Active Workspace, adding your new workspace, and then importing the list. You can also update
existing workspaces with these utilities.

Export a list of existing workspaces

You use the export_wsconfig utility to export workspaces from Teamcenter. This is a Teamcenter
platform command, and must be run in a Teamcenter command-line environment. Information on how
to manually configure the Teamcenter environment can be found in the Teamcenter Utilities Reference
documentation.

In the following example, all existing workspaces are exported.

export_wsconfig -u=xxx -p=xxx -g=dba -file=c:\temp\ws.xml

You can use the -for_workspace option to export a specific workspace.

Modify the workspace list

Following is an example of what your exported file might look like.

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<Import>

<Workspace id="mockTCAWAdminWorkspace">

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-145


© 2020 Siemens
5. Administration

<WorkspaceMapping default="true" group="WS_Admin" role="WS_Admin"/>


</Workspace>

<Workspace id="mockTCAWConsumerWorkspace">
<WorkspaceMapping default="true" group="WS_Consumer"
role="WS_Consumer"/>
<WorkspaceMapping group="WS_Admin" role="WS_Admin"/>
</Workspace>

...

</Import>

Many of these examples are mapped to Organization groups and roles. Some are labeled as
default=true. Use the exported examples and the following rules to create your own workspaces.

• If group="" and role is assigned to something, then this workspace will apply to that role
regardless of group.

• If role="" and group is assigned to something, then this workspace will apply to every role within
that group.

• If both group and role are assigned, then this workspace will only apply to that combination.

• If default="true", then this workspace takes precedence over others.

If one or more workspaces are set to default="true", then when a user logs in and sets their group
and role, the default workspace is picked in following order:

5-146 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create or update workspace mappings

Solution level default


For the selected group-role combination, if there is no default workspace defined by workspace
mappings, then the defaultWorkspace from the solutionDef defined in the kit file is used.
Unique default workspace
The import_wsconfig utility only allows unique entry of a default workspace for the same group,
role, or group-role combination. If you want to override an existing default workspace for specified
group, role, or group-role, then you need to set the existing default workspace to false, the new
workspace to true, and re-import the mappings.

In the following example file, you create a workspace specifically for a customizer.

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<Import>

<Workspace id="myCustomizerWorkspace">
<WorkspaceMapping default="true" group="WS_Admin" role=""/>
</Workspace>

</Import>

Import your custom workspace

You use the import_wsconfig utility to import your custom workspaces.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-147


© 2020 Siemens
5. Administration

In the following example, you import your custom file myws.xml, which contains your workspace
definitions.

import_wsconfig -u=xxx -p=xxx -g=dba -file=c:\temp\myws.xml

Assign style sheets to a workspace

You can associate XML rendering templates (XRT), also known as style sheets, to a workspace like you
assign them to a group or role. When a user is in a specific workspace, Active Workspace will look for the
workspace-specific XRT to render. If it cannot find one, then it will proceed as normal.

The XRTEditor does not support workspace-based style sheets at this time.

To associate an XRT to a workspace, follow the same process you would normally use for groups or roles,
with the following differences.

Preference name syntax and precedence

To associate a style sheet with a workspace, use the workspace name in addition to AWC. The
preference name syntax is similar to regular, non-workspace, style sheet preference naming, so you
need to make sure you get it correct.

workspace XRT preference name


AWC_workspaceId.typeName.location.sublocation.stylesheetType

non-workspace XRT preference name


AWC_typeName.location.sublocation.stylesheetType

Following is the precedence for these workspace preferences. As usual, the more specific assignments
will take priority over the less specific.

• AWC_workspaceId.typeName.location.sublocation.stylesheetType

• AWC_workspaceId.typeName.location.stylesheetType

• AWC_workspaceId.typeName.stylesheetType

• If none of these are found, then it will proceed as normal, looking for preferences starting with
AWC_typeName per the normal rules.

For example, you would create the following preference to assign an XRT to the summary page of a
revision when it is part of an assembly when the user is in the myWorkspace workspace.

AWC_myWorkspace.ItemRevision.showObjectLocation.OccurrenceManagementSubLocation.SUMMARYRE
NDERING

5-148 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Assign a tile collection to a workspace

Assign a tile collection to a workspace

You can configure a tile collection with a workspace as its scope.

This is experimental functionality, available for you to use if you want.

How do I assign a workspace as a tile collection scope?

The general process to assign a workspace as a scope instead of a group or role, for example, is
essentially no different; the tile collection object references the scope object with its awp0Scope
property.

Using the platform command-line utility

You can use a Teamcenter platform command-line utility to perform the association of a workspace to a
tile collection scope. This command reads an XML file that contains the definition for the tile collection
scope assignments.

aws2_install_tilecollections -u=xxx -p=xxx -g=dba –mode=add


-file=c:\temp\mytilecollections.xml

At this time, there is no export functionality, only import. If you wish to use this utility, you must copy
this XML content and modify it.

<?xml version="1.0" encoding="iso-8859-1"?>


<!DOCTYPE ActiveWorkspaceGateway SYSTEM
"Awp0aws2ActiveWorkspaceGateway.dtd" >
<ActiveWorkspaceGateway version="1.0">
<!-- Tile Template definitions begins here -->
<TileTemplate templateId="myTileTemplate">
<ThemeIndex index="1" />
<Icon>homefolder</Icon>
<Action>myAction1</Action>
<ActionType type="3" />
</TileTemplate>

<!-- Tile definitions begins here -->


<Tile tileId="myTile" templateId="myTileTemplate">
<Name>My Custom Tile</Name>
</Tile>
<!-- Tile collection definitions begins here -->
<TileCollection>
<WorkspaceScope id="myCustomizerWorkspace" />
<CollectionTiles tileId="myTile" groupName="main"
size="0" ></CollectionTiles>
</TileCollection>
</ActiveWorkspaceGateway>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-149


© 2020 Siemens
5. Administration

Tip:
To assign the tile collection to all users, replace

<WorkspaceScope id="..." />

with

<SiteScope/>

instead.

Using the rich client

The rich client was never designed to display the newly designed Awp0Workspace object type. It will
produce strange results when you search for it. The only way to find them using the rich client is to
create a custom query designed specifically to find Awp0Workspace objects.

5-150 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Assign a tile collection to a workspace

Since it is not a child of WorkspaceObject it has neither an object_name property nor a default icon.
The rich client relies on the object_string property, which is based on object_name.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-151


© 2020 Siemens
5. Administration

In order to see which workspace is which, you need to examine their awp0WorkspaceId property. You
can add this property to the column layout in the Details view to make it easier to find which workspace
is which.

Now you can copy and paste them like you would a group, or role, and so on.

5-152 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create or modify column configuration for a workspace

Create or modify column configuration for a workspace

You can use the export_uiconfig and import_uiconfig utilities to create column configurations
associated with workspaces.

Export an existing column configuration

You use the export_uiconfig utility to export a column configuration from Teamcenter. This is a
Teamcenter platform command, and must be run in a Teamcenter command-line environment.
Information on how to manually configure the Teamcenter environment can be found in the
Teamcenter Utilities Reference documentation.

In the following example, existing column configurations are exported.

export_uiconfig -u=xxx -p=xxx -g=dba -file=c:\temp\ui.xml

You can use the -for_workspace option to export the column configuration for a specific workspace.

Modify the column configuration

Following is an example of what your exported file might look like.

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<Import>

<Client abbreviation="AWClient" name="AWClient">


<ClientScope hostingClientName="" name="ReuseView" uri=...
<ColumnConfig columnConfigId="reuseViewConfig" sortBy=...
<ColumnDef columnName="pgp1CurrentModel" objectType=...
...
<ColumnDef columnName="pgp1TargetType" objectType=...
</ColumnConfig>
</ClientScope>
</Client>

<Client abbreviation="AWClient" name="AWClient">


<ClientScope hostingClientName=""
name="Ret0RetailLinePlanAllViewURI" uri=...
<ColumnConfig columnConfigId="lineplanAllColumnView" sortBy=...
<ColumnDef columnName="plp0Product" objectType=...
...
<ColumnDef columnName="ret0TotalNoOfColors" objectType=...
</ColumnConfig>
</ClientScope>
</Client>

...

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-153


© 2020 Siemens
5. Administration

</Import>

Use the exported examples as a guide to create your own column configuration, or simply use an
existing one.

Import your custom column configuration

You use the import_uiconfig utility to import your custom column configuration file.

In the following example, you import your custom file myui.xml, which contains your column
configuration definitions.

import_uiconfig -u=xxx -p=xxx -g=dba -for_workspace=myCustomizerWorkspace -file=c:\temp


\myws.xml

Precedence

Column configurations are retrieved with the following precedence:

• GroupMember

• Workspace

• User

• Role

• Group

• Site

The only way a column configuration with the GroupMember scope is created is if a user manually
modified theirs. The user can remove their custom column configuration by using the Reset command
in the column configuration panel.

Verifying your new workspace

You can verify that your workspace has been successfully created by viewing the Client Configuration
location in the UI. If you have dba permissions, you will find the Client Configuration tile in your
gateway.

5-154 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Remove a workspace

This location contains a list of the Workspaces and Pages. This will have more functionality in future
versions, for now it is simply a way to verify that the system knows about your workspace.

Remove a workspace

You can remove a custom workspace by removing each component.

• Client-side
Remove the client-side portion of the workspace by removing the declarative definition. This is a JSON
file located in your STAGE\src\solution folder.

• Server-side
Delete the server-side configuration by using the -action=delete argument of the import_wsconfig
utility.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-155


© 2020 Siemens
5. Administration

XRT element reference

Active Workspace style sheet elements

You can control the layout of certain portions of the declarative interface by using XML rendering
templates (XRT), also called style sheets. These XML files are stored in the Teamcenter database and are
read as needed, so changes made to these rendering templates are reflected in the UI without the need
to build or deploy an application file.

You will need to validate the positioning and usage of these elements manually. There is no schema for
XRT.

Top elements

One of these elements must be the overall element for the XML file.

<rendering>
The overall wrapper element for the panel’s XML file.
<subRendering>
Used instead of rendering when the XML file is injected into another XRT.

Main elements

The main rendering of the view typically consists of a single header followed by one or more pages.
Headers typically contain property elements, and pages typically consist of any number of the property,
container, or layout elements.

<header>
Displayed at the top of the rendered view.
<page>
The way to organize properties onto multiple pages.

Property elements

These elements display information to the user. They are the reason for the rendering. All other
elements are for organization and ease-of-consumption by the user.

<property>
Displays a single property by name. This is the database name of the property, not the localized
display name. You can choose a property on the selected object, or a related object.
<objectSet>

5-156 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Active Workspace style sheet elements

Displays a table of properties from related objects.


<command>
Displays a functional command icon.
<tableProperty>
Displays a special property that is a table. Contrast this with the <objectSet>, which is a collection
of individual properties in a table format, whereas the tableProperty is a single property that
contains a table of information.
<classificationTrace>
Displays the classification hierarchy information for an object, if present.
<classificationProperties>
Displays the classification properties and the hierarchy information for an object, if present.

Container elements

These elements help you group and organize your property elements.

<column>
Creates a column of properties.
<section>
Creates a visible, collapsible grouping.
<content>
Provides logical grouping, typically for conditional content.
<inject>
Allows you to insert additional XRT content from another file.
<htmlPanel>
Allows you to insert HTML content into the panel.

Layout elements

These elements help you separate and highlight your property elements.

<separator>
Inserts a visible separator between other elements.
<break>
Inserts empty space between other elements.
<label>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-157


© 2020 Siemens
5. Administration

Insert a static text string between other elements.

Modifying style sheets using the XRT Editor

You can use the XRTEditor to view and edit the style sheets that are used to render certain content
within Active Workspace.

This editor allows you to directly edit the XRT controlling the current page's layout. The editor will
automatically find the associated XMLRenderingStylesheet dataset, and present it for view and edit.

Starting the editor

By default, administrative users have access to the XRT EDITOR tile on the home page.

The editor will open in a new browser tab. For convenience, you may move this tab to its own browser
window.

Using the editor

The editor in the secondary tab is now linked to your primary tab. The editor will follow your navigations
in the primary tab, displaying the style sheet used to render each page when applicable.

Since editor window is linked to the first window, the editor will follow your navigations in the first
window, displaying the style sheet used to render each page when applicable.

Example: Item revision summary

In this example, you have navigated to an assembly with your primary browser tab.

5-158 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Modifying style sheets using the XRT Editor

Meanwhile, the editor in the secondary browser tab has detected that a style sheet is used, and is
displaying the XRT contents of the style sheet as well as the registration information.

Example: Item create

In this example, you have opened the Add panel with your primary browser tab and selected the Item
type.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-159


© 2020 Siemens
5. Administration

Meanwhile, the editor in the secondary browser tab has detected that a style sheet is used, and is
displaying the XRT contents of the style sheet as well as the registration information.

Alternate usage

It is also possible to use the drop-down menus and the Load button to select an XRT by its registration.

5-160 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Modifying style sheets using the XRT Editor

This does not require navigation, and can be used to make edits as needed if you already know what you
are looking for.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-161


© 2020 Siemens
5. Administration

break

You can insert a non-visible break between elements. This appears as additional space.

USAGE

This element is typically used alongside the various property elements.

ATTRIBUTES

None.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary
Create
Information
Revise
Save As

EXAMPLE

Following style sheet snippet shows the <break> element:

<section titleKey="tc_xrt_properties">
...
<property name="effectivity_text" renderingHint="label"/>
<inject type="dataset" src="Cm1AuthoringChange"/>
<break/>
<property name="owning_user" renderingHint="objectlink" modifiable="false"/>
<property name="owning_group" renderingHint="objectlink" modifiable="false"/>
...
</section>

5-162 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
classificationTrace

classificationTrace

You can display the classification trace (hierarchy) of the object. For example:

TC Classification Root > Classification Root > Material Families > Bar Families > Solid Bar > Rectangular
Bar.

USAGE

This element is typically used within the header element, but may be used anywhere the various
property elements can be used.

ATTRIBUTES

None.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary

EXAMPLE

Following style sheet snippet shows the <classificationTrace> element:

<column>
<section titleKey = "tc_xrt_properties">
<property name="object_name"/>
<classificationTrace />
</section>
<section titleKey="tc_xrt_ClassificationProperties">
<classificationProperties/>
</section>
</column>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-163


© 2020 Siemens
5. Administration

5-164 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
classificationProperties

classificationProperties

You can display the classification properties of the object, including the classification trace. Properties
and their values are rendered as name/value pairs in static text.

USAGE

This element may be used anywhere the various property elements can be used.

ATTRIBUTES

None.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary

EXAMPLE

Following style sheet snippet shows the <classificationProperties> element:

<content visibleWhen="ics_classified!=null">
<section titleKey="tc_xrt_ClassificationProperties">
<classificationProperties/>
</section>
</content>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-165


© 2020 Siemens
5. Administration

5-166 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
column

column

The column element is a container element that can help organize your style sheet content.

In the XRT hierarchy, sections and columns must not be siblings. Typically, columns are children of the
page element and help make the page easier to read due to the typical wide-screen layout.

ATTRIBUTES

width (optional)
This is a percentage of the overall screen width, even if the percent sign is not used.

If the column percentages total less than 100%, the empty space will not fill.

If the column percentages total more than 100%, overflow columns are placed on a new row.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary

EXAMPLE

Following style sheet snippet shows the <column> element:

<page titleKey="tc_xrt_Overview" ...>


<column width="30%">
<section titleKey="tc_xrt_properties">
...
</section>
<inject type="dataset" src="S2clScalarRatingOverview"/>
<inject type="dataset" src="ProjectListInfo"/>
<inject type="dataset" src="LicenseListInfo"/>
</column>
<column width="25%">
<inject type="dataset" src="Awp0GlobalAlternatesProvider"/>
<inject type="dataset" src="Fgb0AlignedPartsProvider"/>
</column>
<column width="45%">
<section titleKey="tc_xrt_Preview">
...
</section>
</column>
</page>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-167


© 2020 Siemens
5. Administration

ADDITIONAL INFORMATION

As the browser tab narrows, the contents of extra right-hand columns will move onto the end of the first
column.

5-168 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
command

command

Specifies a command representation to be displayed.

ATTRIBUTES

commandId
Specifies the command to be executed. The attribute value must be a key into a property file and
must be a valid command ID.

THE <PARAMETER> ELEMENT

Following are some commands that utilize the parameter element.

Cut
localSelection = true (required)

You must provide a target to Cut which is passed by the UI when local selection is true.

<command commandId="org.eclipse.ui.edit.cut">
<parameter name="localSelection" value="true"/>
</command>

Add
visibleTabs = {new | palette | search} (optional)

You can specify which panels are available when the user creates an object. If this parameter is not
used, all available tabs will appear.

Following is an example of displaying only the palette and search tabs, effectively hiding the new
tab.

<command commandId="com.teamcenter.rac.common.AddNew">
<parameter name="visibleTabs" value="palette,search"/>
</command>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-169


© 2020 Siemens
5. Administration

Caution:
Do not leave spaces in the comma-separated list of tabs.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary

The command tag is ignored in the header section.

EXAMPLE

Following style sheet snippet shows the command element:

<objectSet source="..." sortdirection="..." sortby="..." defaultdisplay="...">


<tableDisplay>
<property name="..."/>
<property name="..."/>
</tableDisplay>
<thumbnailDisplay/>
<listDisplay/>
<command commandId="com.teamcenter.rac.common.AddNew"/>
<command commandId="com.teamcenter.rac.viewer.pastewithContext"/>
<command commandId="org.eclipse.ui.edit.cut">
<parameter name="localSelection" value="true"/>
</command>
</objectSet>

In this example, the command element adds the Add New, Paste, and Cut buttons in the object set.

5-170 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
content

content

The content element is a logical container element that can help organize your XRT elements. Use this
element if you want conditional control the display of a property, a group of properties, a section, and so
on.

USAGE

You may use the content element to group all other elements, including other content elements, but not
rendering elements.

ATTRIBUTES

visibleWhen Defines the conditional display of the element based on a property value or a
preference value. This attribute behaves the same as the one for the <page> element.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary

EXAMPLE

Following style sheet snippet shows the <content> element:

<column>
<section titleKey="...">
<property name="..."/>
<property name="..."/>
...
<break/>
<content visibleWhen="...">
<section titleKey="DCP Properties">
<property name="..." titleKey="..."/>
<property name="..." titleKey="..."/>
...
</section>
</content>
</section>
<content visibleWhen="...">
<section titleKey="Custom Properties">
<property name="..."/>
<property name="..."/>
...
</section>
</content>
...
</column>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-171


© 2020 Siemens
5. Administration

EXAMPLE

Following is sample code from the ItemSummary.xml XML rendering style sheet showing the section
element:

<page titleKey="tc_xrt_Overview">
<column>
<section titleKey="tc_xrt_AvailableRevisions">
</section>
<section titleKey="tc_xrt_ItemProperties">
</section>
<section titleKey="tc_xrt_ClassificationProperties">
</section>
</column>
<column>
<section titleKey="tc_xrt_Preview">
</section>
<section titleKey="tc_xrt_actions" commandLayout="vertical">
</section>
</column>
</page>

5-172 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
header

header

Specifies the content of the header area.

USAGE

This is typically at the top level of the style sheet, a direct child of the rendering or subrendering
elements.

ATTRIBUTES

None.

SUPPORTED STYLE SHEETS

This element is only used on the following style sheets:

Summary

EXAMPLE

Following style sheet snippet shows the <header> element:

<?xml version="1.0" encoding="UTF-8"?>


...
<rendering>
<header>
<image source="type"/>
<property name="owning_user"/>
<property name="last_mod_date"/>
<property name="release_status_list"/>
<property name="object_type"/>
</header>
...
</rendering>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-173


© 2020 Siemens
5. Administration

ADDITIONAL INFORMATION

The <header> element is optional. If it is not included, or if it does not contain any elements, the header
is automatically populated with the object_string property as a label. This label is not selectable.

The following elements may be contained within a <header>:

• <image>
• <property>
• <classificationTrace>

5-174 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
htmlPanel

htmlPanel

You can insert HTML code into your style sheet.

ATTRIBUTES

Use these attributes to define where the indirect HTML is located.

declarativeKey
The name of a declarative View file to insert.
src
The URL of a web page to insert.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary
Create
Information
Revise
Save As

EXAMPLE DECLARATIVEKEY

Following style sheet snippet shows how to implement a declarative view as your html content. In this
example, the Rv1RelationsBrowserView.html declarative view will be inserted. Just like any declarative
view, there must be a corresponding view model file, and any other supporting files that may be
needed.

Optionally, use the enableresize attribute to control the user's ability to change the size of the
declarative panel.

<htmlPanel declarativeKey="Rv1RelationsBrowser" enableresize="true"/>

EXAMPLE SRC

Following style sheet snippet shows an inserted web page from the customer's site, including a
reference to a property. You must specify any properties used in the URL by using the <property>
element inside the HTML panel element. When used in this way the property element is not displayed in
the UI, it is only present to ensure the property is loaded in the client.

<htmlpanel src="www.customersite.com/parts/app/
{{selected.properties['item_id'].dbValue}}">

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-175


© 2020 Siemens
5. Administration

<property name="item_id" />


</htmlpanel>

5-176 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
inject

inject

You can break up larger XRT content into smaller, more manageable, logical groups of elements, and
then inject them back into the main rendering file. You can also inject HTML content instead.

The target dataset must either be an XMLRenderingDataset or HTML dataset.

ATTRIBUTES

These attributes define the way the dataset is located.

type
Specify whether you will give the name of a dataset, or the name of a preference that contains the
name of the dataset.

dataset Use this option if you will directly specify the name of the dataset.
preference Use this option if you will indirectly specify the name of the dataset through a
preference.

This allows you to take advantage of the ability to have the value of a preference
vary based on a user's credentials.
src
Specify the name of the dataset or preference.

• If type="dataset", this is the name of the dataset that contains the code to be injected.

• If type="preference", this is the name of the preference that contains the name of the
dataset that contains the code to be injected.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary
Create
Information
Revise
Save As

EXAMPLE

Following style sheet snippet shows the <inject> element:

<page titleKey="tc_xrt_Overview" ...>


<column width="30%">

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-177


© 2020 Siemens
5. Administration

...
<inject type="dataset" src="S2clScalarRatingOverview"/>
<inject type="dataset" src="ProjectListInfo"/>
<inject type="dataset" src="LicenseListInfo"/>
</column>
<column width="25%">
...
</column>
<column width="45%">
...
</column>
</page>

Dataset: S2clScalarRatingOverview

<subRendering>
<section titleKey="tc_xrt_Ratings">
<htmlPanel declarativeKey="ratingOverViewPanel"/>
</section>
</subRendering>

Dataset: ProjectListInfo

<subRendering>
<section titleKey="tc_xrt_Projects">
<property name="owning_project" renderingHint="label"/>
<property name="project_list"/>
</section>
</subRendering>

Dataset: LicenseListInfo

<subRendering>
<section titleKey="tc_xrt_Licenses">
<property name="license_list"/>
</section>
</subRendering>

ADDITIONAL INFORMATION

Avoid using a large amount of <inject> elements in your XML rendering templates. It can negatively
impact the performance of the client.

Do not use the visibleWhen attribute with the inject element to check the object type. Style sheets are
registered against object types Use multiple stylesheets, each registered to a different object instead. Do
not attempt to create a single, over-arching XRT for all object types.

5-178 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
label

label

ATTRIBUTES

These attributes define

textKey
Specifies the key used for localization. If it is not defined or otherwise found, the string defined by
the text attribute is used.
text (optional)
Specifies a static string of the title for this tab. This attribute is used when the textKey is not found
by localization.
style
Controls font style for the label text, including font size, weight, name, and style (such as italic). The
format follows the CSS guideline, for example:

style="font-size:14pt;font-style:plain;font-family:Tahoma;font-weight:bold"

class
Defines the cascading style sheet (CSS) class used to provide the style for the label text. The CSS
class must be an existing class.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary
Create
Information
Revise
Save As

EXAMPLE

Following style sheet snippet shows the <label> element:

<page title="Affected Items" titleKey="tc_xrt_AffectedItems">


<section titleKey="tc_xrt_ProblemItems" title="Problem Items">
<label textKey="ProblemItemsInfo" text="..."/>
<objectSet source = "..." defaultdisplay = "..." sortdirection = "..." sortby =
"...">
...
</objectSet>
</section>
<section titleKey="tc_xrt_ImpactedItems" title="Impacted Items">
...
</section>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-179


© 2020 Siemens
5. Administration

...
</page>

USING A URL IN A LABEL

If you add a URL address in the text attribute, it will be automatically rendered.

Example:
<section titleKey="tc_xrt_properties">
...
<property name="object_type"/>
<separator/>
<label text="***My label URL http://www.siemens.com ***" />
<separator />
...
</section>

Because a URL is included in the label tag, it is automatically rendered on the page.

5-180 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
objectSet

objectSet

You can use an object set in your style sheets to place a table of properties in the UI. These properties
can be from the selected object, or from related objects. The initial definition of the table columns and
any changes a user makes, like arranging, hiding or showing columns for example, are tracked in a
column configuration.

ATTRIBUTES

defaultdisplay (required)
Specifies the default format to use when displaying the set of objects. The value must be any valid
display element.
source (required)
Specifies the comma-delimited set of run-time properties or relations that return the desired set of
objects. The format for the attribute value is relation.type, where relation is the name of a relation,
run-time, or reference property or a GRM relation, and type represents the type of objects to be
included. You can also use dynamic compound properties to specify a source. Multiple sources
can be specified as a comma-separated list.

Subtypes of the specified object type are recognized, so specifying the ItemRevision type will also
return all DocumentRevision objects, Design Revision objects, and so on. When using a relation
however, you must explicitly specify the relation. Subtypes of the specified relation are not
considered.

The source definition also determines which properties are available to the display types. If you
specify a parent object, but the property you are interested in is defined on one of the child objects,
then the property may not display properly. Add the child object as a source as well.
maxRowCount
The maximum number of rows displayed in the tableDisplay regardless of available vertical space.
sortby
Specifies the object property to sort the set of objects by prior to rendering.
The default value is object_string.
sortDirection
Specifies the direction in which the set of objects should be sorted. Valid values are ascending or
descending.
The default value is ascending.
filterable
Allow this column to be filtered by the user using the UI. The type of filter shown to the user will
depend on the data type of the column. Dates and numbers are automatically detected and will
allow a range filter, but everything else is treated as a string. Set to false to prevent filtering.

The default is true.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-181


© 2020 Siemens
5. Administration

You can set filterable=false on individual properties in the table display or in your column
configuration, or set it on the source to prevent filtering for all columns.

Example:
Filtering will be disabled on all columns, regardless of their individual settings.

<objectSet source= ... filterable="false">


<tableDisplay>
<property name= ... />
<property name= ... />
...
</tableDisplay>
...
</objectSet>

Example:
Only the second column will have filtering disabled.

<objectSet source= ... >


<tableDisplay>
<property name= ... />
<property name= ... filterable="false"/>
...
</tableDisplay>
...
</objectSet>

hidden
Allow this column to be hidden by default. The benefit of hiding a column is that it allows the user
to expose the property if they want, but otherwise the client will not load the information which
saves time when loading a page. Set to true to hide the column.

The default is false.

Explicitly setting hidden=false serves no purpose.

Example:
The second property will not be displayed on the table, but a user could arrange their table to
show it.

<objectSet source= ... >


<tableDisplay>
<property name= ... />
<property name= ... hidden="true" />
...
</tableDisplay>

5-182 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
objectSet

...
</objectSet>

frozen
Use frozen="true" on a property to freeze horizontal scrolling at that column and all previous
columns. If you specify frozen multiple times, only the last one matters.

Example:
The following produce the same result: the first two columns will be frozen.

<tableDisplay> <tableDisplay>
<property name= ... /> <property name= ... frozen="true"/>
<property name= ... frozen="true"/> <property name= ... frozen="true"/>
<property name= ... /> <property name= ... />
... ...
</tableDisplay> </tableDisplay>

DISPLAY ELEMENTS

The following elements are defined within an object set to determine the availability of the display
types.

<tableDisplay>
<listDisplay>
<imageDisplay>
<thumbnailDisplay>

The <tableDisplay>'s columns can be defined in one of two ways.

Column configuration
You can use the same column configuration system for your object set tables that are used for
declarative tables by specifying the objectSetUri attribute. If you use column configuration, any
properties listed in the table display section will be ignored.

Using this method creates a URI for the column configuration to reference, just like a declarative
page's clientScopeURI.

<tableDisplay objectSetUri="myFilesColumnConfig"/>

If you do not specify a column configuration, one will be created automatically for each user when
they modify the table. You can disable this behavior by adding the enableArrange attribute and
setting it to false — your users will not be allowed to modify the table.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-183


© 2020 Siemens
5. Administration

<tableDisplay enableArrange="false">
Property elements
You can use a list of <property> elements.

If a user customizes the table by arranging or hiding columns, a column configuration will
automatically be created for that user to store their changes, and then any property elements in the
style sheet will be ignored. If that user ever resets their columns, the table will revert back to the
object set's property elements.

COMMAND ELEMENT

The <command> element can be added to an object set to display an existing command on the table.
This is the same as the declarative uiAnchor known as aw_objectSet_right. If you define a custom
command handler using this anchor point, this XRT element is redundant. Use this when you only want
the command to appear on this specific table.

Specify the name of the command using the commandId attribute.

<command commandId="Awp0ShowAddObject"/>

You can optionally provide arguments to the command using parameter elements.

<command commandId="myCustomCommand">
<parameter name="myParameter" value="some value"/>
</command>

Since Active Workspace can use style sheets that were originally designed for the rich client, there are
two commands that are internally translated.

• com.teamcenter.rac.common.AddNew becomes Awp0ShowAddObject

• com.teamcenter.rac.common.AddReference becomes Awp0ShowAddObject

EXAMPLE OF SETTING OBJECTSET SOURCE

In these examples, you are creating the source definition for an object set on folders.

• You want to display any common object that is in a folder. The Folder object uses the contents
property to maintain this list. The WorkspaceObject is the parent of all common user-facing objects.

<objectSet source="contents.WorkspaceObject">

• You only want to display documents. You decide that this would include the DocumentRevision,
MSWordX, and PDF object types. This time, even though the folder might contain other objects, they
are ignored and the table only displays your documents. This will also include children of the
DocumentRevision, like the Specification Revision object, for example.

5-184 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
objectSet

<objectSet source="contents.DocumentRevision,contents.PDF,contents.MSWordX">

EXAMPLE OF USING COLUMN CONFIGURATION

Because the following table display section of an object set table defines an <objectSetUri>, the listed
<property> elements will be ignored.

<tableDisplay objectSetUri="myObjectSetTableConfig">
<property name="object_name"/>
<property name="object_desc"/>
<property name="owning_user" renderingHint= ... />
...
</tableDisplay>

The following column configuration will determine which columns appear in the object set's table:

<ClientScope hostingClientName="" name="myColConfigName" uri="myObjectSetTableConfig">


<ColumnConfig columnConfigId="mySpecialConfigID" sortBy="1" sortDirection="Descending">
<ColumnDef propertyName="object_string" ... />
<ColumnDef propertyName="object_type" ... />
...
</ColumnConfig>
</ClientScope>

FULL OBJECTSET EXAMPLE

The following example was taken from an OOTB style sheet, but all rich client elements and attributes
have been removed for clarity. Also, a hypothetical custom command and column configuration have
been added.

<objectSet source="IMAN_specification.Dataset,IMAN_reference.Dataset,
IMAN_specification.Dataset,IMAN_reference.Dataset,
IMAN_manifestation.Dataset,IMAN_Rendering.Dataset,
TC_Attaches.Dataset,IMAN_UG_altrep.Dataset,
IMAN_UG_scenario.Dataset,IMAN_Simulation.Dataset"
defaultdisplay="listDisplay"
sortby="object_string"
sortdirection="ascending">
<tableDisplay objectSetUri="myFilesColumnConfig"/>
<thumbnailDisplay/>
<listDisplay/>
<command commandId="Awp0ShowAddObject"/>
<command commandId="myCustomCommand">
<parameter name="myParameter" value="some value"/>
</command>
</objectSet>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-185


© 2020 Siemens
5. Administration

parameter

Use this element is not used on its own, rather it is used to pass values to other elements. The other
elements will specify when and where you can use the parameters element.

ATTRIBUTES

name
The name of the parameter being passed.
value
The value of the parameter being passed.

SUPPORTED STYLE SHEETS

This tag is not specifically supported on a style sheet, but rather can only be used in conjunction with
another element.

EXAMPLE

Other elements will provide the specific parameter names and possible values available for use in each
case.

Following is the generic syntax for <parameter>:

<paramter name="paramName" value="paramValue"/>

5-186 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
page

page

Presents a tab panel in a dialog box or view. If the page element is not defined in the XML file, a default
page is created.

USAGE

This is typically at the top level of the style sheet, a direct child of the rendering or subrendering
elements, although it may be the child of a content element.

ATTRIBUTES

These attributes define

titleKey Specifies the key used for localization. If it is not defined or otherwise found, the string
defined by the title attribute is used.
title Specifies a static string of the title for this tab. This attribute is used when the titleKey
(optional) is not found by localization.
visibleWhen Defines the conditional display of the element based on a property value or a
preference value. More information about this attribute follows.

SUPPORTED STYLE SHEETS

This tag is supported on all types of style sheets:

Summary
Create
Information
Revise
Save As

THE VISIBLEWHEN ATTRIBUTE

You specify when the page will be visible with a condition. The value checked against can be null or a
string, and you can compare that value to the following:

• The value of a property on the selected object


• The value of a property on a related object, using dynamic compound properties.
• The value of a Teamcenter preference

To check the value of a property on the selected object, use the real (database) name of the property in
the expression.

To check the value of a Teamcenter preference, use {pref:preference-name}.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-187


© 2020 Siemens
5. Administration

You can:

• Compare a string to a string, or to an array of strings.

• Compare a single string value to a list of property values, but array matching with the visibleWhen
value is not supported.
For example: If myProp=[string1, string2, string3] and the evaluation is visibleWhen
“myProp==string1, string2, string3”, this would not work.
However visibleWhen “myProp==string1” would work, because string1 is in the myProp array.

• Compare the following non-string types as single values (non-array).


int, short, double, float, char, logical

• Check the following property types for null and not null (only).
typed and untyped reference, typed and untyped relation, external reference, date

Example:
Display the page if myProp contains no value (null).

<page titleKey="My Page" visibleWhen="myProp==null">

Example:
Display the page if the TC_Enable_MyPref preference has no value.

<page titleKey="My Page"


visibleWhen="{pref:TC_Enable_MyPref}==null">

Example:
Display the page if the Item_ColumnPreferences preference contains object_string and
object_type, as the first two values.

<page titleKey="My Page"


visibleWhen="{pref:Item_ColumnPreferences}==object_string,object_type,*">

Example:
Display the page if a related document revision attached with a reference relation has a subject
"FMEA".

<page titleKey="FMEA Information"


visibleWhen="GRM(IMAN_reference,DocumentRevision).DocumentSubject==FMEA">

5-188 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
page

Caution:
If there is only one page, and the visibleWhen condition hides this page, Active Workspace
ignores this condition and makes the page visible.

EXAMPLE

Following style sheet snippet shows the <page> element:

<?xml version="1.0" encoding="UTF-8"?>


...
<rendering xmlns:xsi=...
xsi:noNamespaceSchemaLocation=...>
<header>
...
</header>
<page titleKey=...>
</page>
<page titleKey=...>
</page>
<inject type=.../>
</rendering>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-189


© 2020 Siemens
5. Administration

property

Use this element to display a property name and value from the selected object. You must include at
least one property in the XML definition, otherwise, the system displays an empty panel.

Note:
You cannot add the same property multiple times in the same style sheet.

ATTRIBUTES

border
Determines whether the border is displayed. Valid values are true and false. This works only with
the titled style.
modifiable
Specify if the owning_user or owning_group property can be modified (true or false). For all other
properties, use a property rule instead.
isAutoAssign
Default: true

Set this to false on a property for which you do not want the client to ask the server for an auto
assigned value until the user selects the Assign button.
name
Specify the database name of a property on the object, not the display name. This is a required
attribute.

Note:
When using this attribute on a create style sheet, there is additional functionality. You can
specify a property from another object that is related to the original object by the revision,
IMAN_master_form, or IMAN_master_form_rev relations. To do this, specify the relation
trail followed by the name of the property on the destination related object, separated by a
colon.
For example, if a create style sheet is registered for an item,

• to display the revision ID, you would use

name=revision:item_revision_id

• to display the project_id property from the item's master form.

name=IMAN_master_form:project_id

5-190 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
property

• to display the serial_number property from the item revision master form, you need to
traverse from the item to the revision, and then to the revision's master form.

name=revision:IMAN_master_form_rev:serial_number

renderingHint
Specify the component used to render this property. This is an optional attribute. If not defined, the
default renderer is used based on the property type. For more information, see Rich Client
Customization in Teamcenter help.
renderingStyle
Define the rendering style used in the rendering component. There are three styles: headed,
headless, and titled.

• Headed
This is the default rendering style. The property name is displayed on the left followed by the
property value renderer.

• Headless
This style renders only the property value without displaying the property name in front of it.

• Titled
The property name is displayed on the top of the property value renderer.
style
Control the font style for the label text, including font size, weight, name, and style (such as italic).
The format follows the CSS guideline, for example:

style="font-size:14pt;font-style:plain;
font-family:Tahoma;font-weight:bold"

visibleWhen
Defines the conditional display of a property based on one of two types of expressions comparing a
property or preference to a value. The value can be null or a string, including a string containing
wildcard characters. Multiple values can be checked with an array property or preference. When
checking an array value, use a comma as a delimiter for the values. The two types of expressions
check the following:

1. The value of a property on the selected object

<property name="p1" visibleWhen="<Property name>==<Some value>"/>

<property name="p1" visibleWhen="<Property name>!=<Some value>"/>

<property name="p1" visibleWhen="<Property name>==null"/>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-191


© 2020 Siemens
5. Administration

<property name="p1" visibleWhen="<Property name>!=null"/>


2. The value of a Teamcenter preference

<property name="p1" visibleWhen="{pref:<Preference name>}==<Some value>"/>

<property name="p1" visibleWhen="{pref:<preference name>}!=<Some value>"/>

• To check the value of a property on the selected object, use the real (database) name of the
property in the expression.
If you want to show a "myprop" property only if the object_desc property begins with the word
Testing, use the following:

<property name="myprop" visibleWhen="object_desc==Testing*"/>

• To check the value of a Teamcenter preference, use {pref:preference-name} to differentiate it


from a property-based expression. Following are some examples:
Display a property when the Cust_Enable_MyProp preference is set to true.

<property name="myprop" visibleWhen="{pref:Cust_Enable_MyProp}==true">

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary
Create
Information
Revise
Save As

EXAMPLE

Following style sheet snippet shows the <property> element:

<?xml version="1.0" encoding="UTF-8"?>


...
<rendering xmlns:xsi=...
xsi:noNamespaceSchemaLocation=...>
<header>
...
</header>
<page titleKey=...>
<property name="object_desc"/>
<property name="effectivity_text" renderingHint="label"/>
<break/>
<property name="owning_user" renderingHint="objectlink" modifiable="false"/>
</page>
<page titleKey=...>
</page>
<inject type=.../>
</rendering>

5-192 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
rendering

rendering

This is the root element of a style sheet. All XRT elements must be contained within this root element.

ATTRIBUTES

These attributes define the schema namespace attributes for the style sheet. These should not be
modified.

xmlns:xsi
Specifies the default xsi prefix.
xsi:noNamespaceSchemaLocation
Active Workspace style sheets do not have a specific schema namespace.

SUPPORTED STYLE SHEETS

This tag is required on all types of style sheets:

Summary
Create
Information
Revise
Save As

EXAMPLE

Following style sheet snippet shows the rendering element:

<?xml version="1.0" encoding="UTF-8"?>


...
<rendering xmlns:xsi=...
xsi:noNamespaceSchemaLocation=...>
<header>
...
</header>
<page titleKey=...>
</page>
<page titleKey=...>
</page>
<inject type=.../>
</rendering>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-193


© 2020 Siemens
5. Administration

section

The section element is a container element that can help organize your style sheet content.

In the XRT hierarchy, sections and columns must not be siblings. Typically, sections are placed within
columns to further divide up the properties into collapsible groupings.

ATTRIBUTES

titlekey Specifies the key used for localization. If it is not defined or otherwise found, the string
(optional) defined by the title attribute is used.
title Specifies a static string of the title for this tab. This attribute is used when the titleKey
(optional) is not found by localization.
initialstate Specifies whether the view or section should be expanded or collapsed on initial
rendering. Valid values are expanded or collapsed. The default value is expanded.
This attribute is optional.

You may also use the collapsed attribute, but Siemens Digital Industries Software
recommends that you use initialstate instead to avoid confusion.

collapsed="true" is the same as initialstate="collapsed"


collapsed="false" is the same as initialstate="expanded"
groupname Allows the grouping of a set of sections in a column. The sections in a group are shown
as tabs in the column.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary

EXAMPLE

Following style sheet snippet shows the <section> element:

<page titleKey=...>
<column>
<section titleKey=...>
...
</section>
<section titleKey=...>
...
</section>
</column>
<column>

5-194 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
section

<section titleKey=...>
...
</section>
<section titleKey=...>
...
</section>
</column>
</page>

Following are seven collapsed sections divided among three columns.

Following shows the ratings section expanded.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-195


© 2020 Siemens
5. Administration

separator

You can insert a visible break between elements. This appears as a thin line.

USAGE

This element is typically used alongside the various property elements.

ATTRIBUTES

None.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary
Create
Information
Revise
Save As

EXAMPLE

Following style sheet snippet shows the <separator> element:

<section titleKey="tc_xrt_properties">
...
<property name="effectivity_text" renderingHint="label"/>
<inject type="dataset" src="Cm1AuthoringChange"/>
<separator/>
<property name="owning_user" renderingHint="objectlink" modifiable="false"/>
<property name="owning_group" renderingHint="objectlink" modifiable="false"/>
...
</section>

5-196 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
subRendering

subRendering

This element must logically be a child of the rendering element. Use this element as the root element in
an XRT file that is being injected into another.

ATTRIBUTES

None.

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary
Create
Information
Revise
Save As

EXAMPLE

Following style sheet snippet shows the <subRendering element:

<?xml version="1.0" encoding="UTF-8"?>


...
<subRendering>
<page titleKey=...>
</page>
<page titleKey=...>
</page>
<inject type=.../>
</subRendering>

Then, in the main style sheet, use the <inject> element to insert this XML.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 5-197


© 2020 Siemens
5. Administration

tableProperty

ATTRIBUTES

name
Give the table property a name.

THE <PROPERTY> ELEMENT

Use the <property> element inside the <tableProperty> element to choose which of the columns from
the table you wish to display, and in which order.

Example:
<tableProperty name="..">
<property name="..."/>
<property name="..."/>
...
</tableProperty>

SUPPORTED STYLE SHEETS

This tag is supported on the following types of style sheets:

Summary

EXAMPLE

Following style sheet snippet shows the <tableProperty> element:

<page title = "..." visibleWhen="...">


<section title ="...">
<tableProperty name="...">
<property name="..."/>
<property name="..."/>
...
</tableProperty>
</section>
</page>

Get more information about how table properties are not tables.

5-198 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
6. Configuring Active Workspace features
Active Collaboration configuration

Active Collaboration configuration tasks

What is Active Collaboration?

Active Collaboration is a social networking environment in Active Workspace that allows you to interact
with teams of people. The Collaboration tab in Active Workspace displays team interactions such as
comments, questions, and ratings.

Why configure Active Collaboration?

To keep comments current, you may want to remove old commentary from item revisions, such as
questions, answers, comments, and ratings.

What can I configure?

You can configure the following aspects of Active Collaboration:

• Delete commentary.

What do I need to do before configuring?

Before you can configure Active Collaboration, you must install the features. Install the following from
the Features panel of Teamcenter Environment Manager (TEM):

• Active Collaboration (client)


Installs the user interface elements for viewing collaboration in Active Workspace.
Select Active Workspace→Client→Active Collaboration.

• Active Collaboration (server)


Installs the server-side definitions for collaboration.
Select Active Workspace→Server Extensions→Active Collaboration.

What does the Collaboration tab look like?

Following is an example of the Collaboration tab in Active Workspace.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-1


© 2020 Siemens
6. Configuring Active Workspace features

Deleting commentary

To delete commentary objects (questions, answers, comments, ratings, and helpful objects) for item
revisions, use the s2clsocial_delete_utility utility.

Note:
If a commentary object is referenced by a noncommentary object, this utility cannot delete the
commentary.

Disable ratings

If you have Active Collaboration installed, you can rate objects as well as post questions and
commentary. However, ratings may not be applicable to all your data. To disable ratings, you can edit
the XML rendering style sheets where the ratings are defined.

1. To remove the ratings panel from pages, remove the xrtRatingsPanel element from the
*ShowObjectLocation XML rendering style sheets:

<page titleKey = "tc_xrt_Collaboration" visibleWhen="s2clCommentaryObjects!=null


and structure_revisions==null">
<column>
<htmlPanel id = "com.siemens.splm.client.social.xrtQuestionPanel"/>
</column>
<column>
<htmlPanel id = "com.siemens.splm.client.social.xrtCommentPanel"/>
</column>
<column>
<htmlPanel id = "com.siemens.splm.client.social.xrtRatingsPanel"/>
</column>
</page>

2. Remove the ratings element from the Overview tab. You can do this by performing either of the
following:

6-2 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Active Content configuration tasks

• Remove the inject statement from the Awp0ItemRevSummary style sheet and any other style
sheet where is referenced, for example:

<inject type="dataset" src="S2clScalarRatingOverview"/>

• Remove the S2clScalarRatingOverview dataset from the system. Without the dataset, the inject
statement does nothing. This is probably the simplest method.

Active Content configuration

Active Content configuration tasks

What is Active Content?

Active Content allows users to view occurrences and product structure in Active Workspace. The
Content tab in Active Workspace displays the content of a structure. Structures are added to the
search index by administrators.

Why configure Active Content?

If your organization has customized the structure data model, you may need to configure Active Content
to expose occurrences and product structure in Active Workspace.

What can I configure?

Following are some of the configurations you can perform:

• Configure the Content tab.

• Add custom objects to the Content tab and search.

What do I need to do before configuring?

Before you can configure Active Content, you must install the Active Content features. Install the
following from the Features panel of Teamcenter Environment Manager (TEM):

• Active Content
Installs the user interface elements for viewing structures in the Content tab in Active Workspace.
Select Active Workspace→Client→Active Content.

• Active Content Structure


Installs the server-side definitions for showing structure content.
Select Active Workspace→Server Extensions→Active Content Structure.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-3


© 2020 Siemens
6. Configuring Active Workspace features

What does the Content tab look like?

Following is an example of the Content tab in Active Workspace.

Configuring the Content tab

The Content tab displays the content of a structure. The following diagram shows the configurable parts
of the Content tab.

Number Element How to configure

1 Occurrence Add the following preference: AWC_item-revision-


sublocation tabs type.showObjectLocation.

6-4 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
When is configuration needed?

Number Element How to configure

OccurenceManagementSubLocation.SUMMARYRENDERING. The
value of the preference is the name of the style sheet dataset to take
effect.

2 Occurrence cell Set the cell properties preference for the occurrence. Two examples
properties are the Awb0DesignElement.CellProperties preference and the
Arm0RequirementEelement.CellProperties preference.

3 Overview tab Use the summary style sheet of the associated element representing
the occurrence. For example, use the
Awb0DesignElementSummary.xml XML rendering style sheet file to
configure the Overview tab for any design related item revision and
use the Arm0RequirementElementSummary.xml file for
requirement revisions.

Tip:
To show the in-context search icon run the index on the BOM.
To view the Architecture tab, set the Awb0AvailableFor business object constant on the
Ase0ArchitectureFeature business object in the Business Modeler IDE. Set the
Awb0AvailableFor business object constant to list the business object types for which a feature
should be made available, for example:

Functionality,Fnd0LogicalBlock,RequirementSpec,Requirement,Paragraph,Fnd0SystemModel

When is configuration needed?

Active Content Structure is an implementation-neutral interface for exposing occurrences and product
structure in Active Workspace. It encapsulates structure concepts in Teamcenter by providing an
interface and a run-time data model. Other models that are based on active content extend this
paradigm, for example, requirements management. The application data returned from these modules
is adapted to the active content data model before returning to the client.

Additional configuration is necessary if you customize the standard active content data model or any of
the modules that are based on it, for example, requirements management or systems modeling.

Active content supports several domains and the capabilities provided by the domains may vary by
versions and levels of customization. To accommodate these differences, a feature discovery mechanism
is provided. This is implemented as an awb0SupportedFeature property on the
Awb0ProductContextInfo object. This property defines the features supported for a configuration as a
list of run-time business objects. For example, when the Awb0FullTextSearchFeature is included in the
list, users can perform a full-text search on the structure.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-5


© 2020 Siemens
6. Configuring Active Workspace features

Add custom objects to the Content tab and search

To display your custom business object in the Content tab of Active Workspace, you must add it to the
Awb0SupportsStructure global constant in the Business Modeler IDE. This procedure also allows
instances of the custom business object to be returned by in context searches if the object is indexed,
and also adds the Add Element button for the custom object.

1. In the Business Modeler IDE, ensure the Active Content Structure template is loaded and then
open the Global Constants Editor.

2. Select the Awb0SupportsStructure constant and then click Edit.

3. In the Add dialog box of the Edit window, enter the name of the class corresponding to the first
custom object you want to display.

4. Repeat the previous step for each of the other custom objects you want to display.

5. Click Finish on both the Modify Global Constant and the Add Value dialog boxes to save the
additions.

Note:
On some systems, you may have to reopen each additional object in the Edit window and
resave the entry for each added item. Failure to save your entries on the first attempt does
not necessarily indicate they are incorrect.

6. To enable the custom objects to be returned by in context searches, set the Awp0SearchIsIndexed
business object constant to true on each custom object.

Adding an LOV to a property in the Content tab

An LOV attached to the BOMLine property to which the Awb0Element property is mapped is not
automatically displayed in the Active Workspace Content tab. To display the LOV in the Content tab in
Active Workspace, you must attach the same LOV to the mapped Awb0Element property.

This applies to all children of the Awb0Element as well.

Display the Content tab with custom business object types

If you have custom business object types that have assembly children, the Content tab will not be
displayed by default for them. To get the Content tab to appear in this case, you must perform the
following steps:

1. Ensure that the corresponding custom business object type is listed under the
Awb0SupportsStructure global business constant.

6-6 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Add commands to the content tab

2. Add the following page pertaining to the Content tab to the ShowObjectLocation Summary XRT.

<inject type="dataset" src="Awb0ContentTab"/>

3. If the ShowObjectLocation Summary XRT is not available, add a custom summary XRT for the
required business object. Then, add the preference for
Custom_BO_type.showObjectLocation.<SubLocation>. This maps the summary XRT to the
business object type.

Add commands to the content tab

Because Active Content uses intermediary objects to represent their underlying objects in the Content
tab, when you select one of these objects, you're actually selecting the intermediary object. Any
declarative functionality, like conditions for example, are based on that selected intermediary object.
However, there are many times when you will want the declarative client to base its decisions on the
underlying object instead. Command visibility is the most common example of this.

Active Workspace provides the AWC_AlternateSelectionCommandsList preference to tell Active


Content which commands must consider the underlying object instead of the intermediary object when
determining their visibility. All commands listed by this preference will look to the target object of the
selected object instead of the selected object itself when determining whether it is visible.

The shipped commands that are already available in the Content tab are already added to the
preference. As an Administrator, you can check them before adding new commands.

Add shared effectivity information to Overview tab

Users can view the shared effectivity associated to a structure in the Table view. The effectivity is shown
when the Table view is selected in the Overview tab. To view effectivity in the Table view, add the
following string in the Awb0ContentTableItemRevUiConfigCots.xml file:

<ColumnDef objectType="Awb0ConditionalElement"
propertyName="awb0ElementEffId" width="4000"/>

Display the view type attribute in the BOMLine title

Set the PSEShowViewTypePref preference to True to display the View Type attribute in the BOMLine
title. Set the preference to False to hide the View Type attribute.

Set the default view type for the users

Set the PSE_default_view_type preference to specify the default view type for all users at the site. This
setting is most appropriately defined in conjunction with each user's role.

For example, for the users with the role of production engineer, the default view type can be defined as
Manufacture, and for those with the role of designer, it can be defined as Design.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-7


© 2020 Siemens
6. Configuring Active Workspace features

The default value for the PSE_default_view_type preference is view.

Active content technical overview

Active content provides a number of business objects to represent the occurrences returned by the
various structure applications. Awb0Element is the root type and is abstract. The following table lists
the default active content types that represent occurrence types for BVR structures.

Business object Purpose

Awb0Element Represents the root business object for all occurrence


management objects. An element is identified by a name
and can belong in a structure with a parent-child
relationship. This is an abstract object and should not be
mapped with any item revision type.

Awb0ConditionalElement Represents an occurrence with effectivity and variant


conditions. Generic design element (GDE) lines do not have
effectivity or variant conditions; they should not be mapped
to this type or its subtypes.

Awb0Connection Represents an occurrence that does not have any associated


geometry information.

Awb0PositionedElement Represents an item revision type with geometry.

Awb0DesignElement Represents an occurrence with geometry. It provides the


properties for managing geometry, for example, bounding
box and transform. Objects of this type can be visualized in
the viewers.

Awb0Interface Represents the generic design element.

The active content data model:

6-8 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Setting security on structured content

Setting security on structured content

For structures that are not indexed, standard Teamcenter security is applied, for example, Access
Manager rule processing. When using indexing, Access Manager rules are included in the index as a read
expression.

For detailed information about setting ACLs, see Access Manager in the Teamcenter collection.

Using the Awb0BOMArchetypeToOccurrence type constant

The Awb0Element business object and its subtypes have a Awb0BOMArchetypeToOccurrence type
constant. The value of this constant:

• Determines the instance of which particular subtype of Awb0Element is created.

• Is a comma-separated list of item revision or GDE subtypes. Using such a list avoids the need to create
a separate Awb0Element business object for each item revision type.

For example, Awb0DesignElement has the value set to ItemRevision for this type constant.
Consequently, an instance of Awb0DesignElement is created if the BOM line represents item revisions.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-9


© 2020 Siemens
6. Configuring Active Workspace features

By creating different object types of Awb0Element based on the archetype, the system controls the
visible properties by the domain. For example, for a requirement, the geometry specific properties are
not relevant and it can be mapped to Awb0ConditionalElement or a subtype.

Each subtype of Awb0Element may have an associated XRT style sheet containing the details of the
properties. You should not create a new subtype to represent each supported custom item revision.
Instead, if the custom item revision can be represented by a default type, consider modifying the
corresponding constant value.

Note:
This constant applies only to BVR models.

The default mappings are as follows:

Business object Awb0BOMArchetypeToOccurrence value

Awb0Element

Awb0ConditionalElement

Awb0Connection PSConnectionRevision

Awb0PositionedElement

Awb0DesignElement ItemRevision

Awb0Interface Interfaces

If you need to create a new subtype of Awb0Element to represent a custom subtype of ItemRevision,
note that ItemRevision has a discrete set of properties that may not be relevant. Instead, review the
table of the default Awb0Element subtypes and create a subtype of the Awb0Element subtype that
best matches your purpose.

For example, if your custom type has custom properties and also effectivity, create a subtype of
Awb0ConditionalElement. Alternatively, if it also has associated geometry information and must be
visualized, create a subtype of Awb0DesignElement instead.

Mapping type to model element

The Awb0BOMToOccurrence type constant specifies the subtype of BOMLine that is mapped to a given
Awb0Element subtype. The subtype name specified as the value becomes the backing object for the
Awb0Element subtype and the properties are fetched from this type. The value is inherited by the
subtypes but can be overridden at any level.

For example, the value of this constant for Awb0DesignElement is specified as BOMLine. The value of
the properties is then fetched from BOMLine.

6-10 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Marking archetypes to support structure

Marking archetypes to support structure

The Awb0SupportsStructure global constant controls the types that can be opened in the active
content explorer. This constant can take multiple values and each value is the name of a type that
supports structure. Only the names of types that are specified in this constant can be opened in the
explorer. The structure property is not inherited by subtypes, that is, you must add each subtype
separately.

By default, this constant includes ItemRevision, DesignRevision and PartRevision as the values. For
BVR structures, use the ItemRevision type as the value.

Configuring the properties of structured content

You can display the properties of the underlying object (called the archetype) in a structure element
object tile. For example, you can show the release status of an item revision on the tile of an element in
a structure using the following syntax: awb0Archetype.release_status_list.

For more information about defining object tiles, see Organizing your users' common destinations.

Configuration for the packing of similar structure elements

The packing action groups multiple identical components in one level of an assembly. It groups the
components that satisfy the packing criteria, which in turn is configured by setting the following
preferences.

• Configure the packing action to exclude or include the sequence number as the packing criteria by
specifying the BOMExcludeFromPackCheck preference.
Syntax: BOMExcludeFromPackCheck:seqno|none

• If this preference is set to seqno, BOMLines with the same sequence numbers are packed.

• If the preference is set to none, sequence numbers are excluded from structure line packing
checks.

• Specify additional packing criteria by setting the BOM_Additional_Packing_Criteria preference.


Syntax: BOM_Additional_Packing_Criteria:property name

• If only the property name is specified, then lines having the same value for the property are
packed.

• If the property name is followed by a colon, the string after the colon is the value when the pack is
not allowed.

• No string after a colon indicates an empty value.

• Configure the structures to load with packed elements by default.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-11


© 2020 Siemens
6. Configuring Active Workspace features

Syntax: PSEAutoPackPref:0/1

• Set the PSEAutoPackPref to 1 to load the structures in the packed view.

• Set it to 0 to retain the default view as unpacked.

• Configure the reference designator packing rules.


Syntax: BOM_Enable_Ref_Designator_Value_Packing:True/false
Set the BOM_Enable_Ref_Designator_Value_Packing preference to configure the reference
designator packing rules. You can pack or unpack product structure lines that include reference
designators. For example, if BOM_Enable_Ref_Designator_Value_Packing is set to True, eight
BOMLines with the reference designators C1, C5, C6, C7, C10, C14, C15, C16 will be packed to one
BOMLine with the reference designator property C1, C5-7, C10, C14-16.

Configuring the duplication (cloning) of structures

A structure is duplicated (cloned) using the Save As or Revise command. The cloning action is either
executed at the Item Revision level or the Occurrence level. The site administrator must set the
Structureless preference to configure the duplication behavior at either the item revision level or at the
occurrence level. The default value of the preference is False and this implies item revision level
duplicate.

<preference name="AWBUseOccurrenceLevelStructureClone" type="Logical"


array="false" disabled="false" protectionScope="Site" envEnabled="false">
<preference_description>
Defines if the structure clone operation should be executed at
occurrence
level.
Occurrence level structure cloning is supported from platform TC12.3
onwards.
If this is set to true and platform supports Occurrence level clone
execution,
structure clone operation is executed at Occurrence level.
If this is set to true and platfrom does not support Occurrence level
clone
execution, clone operation is executed at Item Revision level.
If this is set to false, structure clone operation is executed at Item
Revision level.
</preference_description>
<context name="Teamcenter">
<value>false</value>
</context>
</preference>

You can customize the duplication operation by implementing the following user exits to:

6-12 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring the duplication (cloning) of structures

• Override the duplication for certain BOM lines, for example, standard parts, using the following pre-
process user exit.

/**
Gets the operation for a BOMLine during structure clone.
<br/>If @p use_default_operation is true, @p duplicate_operation will
be ignored.
Default opeartion configured by the system will be used.
<br/>If the user exit is not overridden, default opeartion configured
by the system will be used.

The following are the valid operations for @p duplicate_operation.


<ul>
<li>#STRUCTURE_CLONE_OPERATION_CLONE
<li>#STRUCTURE_CLONE_OPERATION_REFERENCE
<li>#STRUCTURE_CLONE_OPERATION_REVISE
<li>#STRUCTURE_CLONE_OPERATION_REPLACE
<li>#STRUCTURE_CLONE_OPERATION_IGNORE
</ul>

@returns
<ul>
<li>#ITK_ok on success.
<li>#BOM_invalid_tag if the @p bomline is invalid.
</ul>
*/
extern TCCORE_API int USER_bom_clone_get_operation(
const tag_t bomline,
/**< (I) BOMLine to get duplicate operation. */
bool* use_default_operation,
/**< (O) Use default duplicate operation for bomline. */
int* duplicate_operation
/**< (O) Duplicate operation for bomline. */
);

• Establish a post-process equivalence between the source and cloned lines using the following post-
process user exit. This user exit is invoked only once after the duplication process is complete. It
establishes a relationship between the source and the cloned structures.

/**
Processes cloned objects after clone operation is complete.
<br/>Customizers need to replace the base action for the user exit
BMF_USER_bomline_process_cloned_structure to address their business
needs.

The following are cloning type options for @p cloning_type.


<ul>
<li>#ITEM_REVISION_CLONE
<li>#BOMLINE_CLONE

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-13


© 2020 Siemens
6. Configuring Active Workspace features

</ul>

@returns
<ul>
<li>#ITK_ok on success.
<li>#BOM_invalid_tag if the @p cloned_top_item_rev is invalid.
</ul>
*/
extern BOM_API int USER_bomline_process_cloned_structure(
const tag_t cloned_top_item_rev,
/**< (I) Top Item Revision of the cloned structure. */
const int cloning_type,
/**< (I) Cloning type for clone operation. Expected values are:
<ul>
<li>#ITEM_REVISION_CLONE
<li>#BOMLINE_CLONE
</ul>
*/
const int n_source_bom_lines,
/**< (I) Number of BOMLines to be cloned. */
const tag_t* source_bom_lines,
/**< (I) n_source_bom_lines List of BOMLines to be cloned. */
const tag_t* cloned_occurrences
/**< (I) n_source_bom_lines List of cloned PSOccurrences. */

Note:
The USER_bom_clone_process_cloned_structure post-processor exit does not work. Use the
USER_bomline_process_cloned_structure post-process user exit for this.

Mapping properties to occurrence properties

Domain-specific occurrences contain properties relevant to the specific domain. End users understand
and interact with these domain-specific properties. These properties are mapped from the BOMLine or
ModelElement type onto the occurrence. This mapping is provided by property constants defined in the
Business Modeler IDE and the property constants are scoped to the Awb0Element type. Default
properties are provided on Awb0Element and its subtypes, but you can add custom properties
necessary for your implementation.

All custom properties must be mapped to a property defined on the type specified in the
Awb0BOMToOccurrence type constant. The property mapping is then achieved through the
Awb0BOMToOccurrence property constant. The value of this property constant is inherited and can be
overridden at any level.

For example, the awb0BoundingBox property on the Awb0PositionedElement business object has the
value of bl_bounding_boxes. It also has the value BOMLine for the Awb0BOMToOccurrence type
constant. Consequently, whenever the awb0BoundingBox property is requested on an

6-14 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Cleaning up background working contexts

Awb0PositionedElement object, the value is fetched from the bl_bounding_boxes property of the
BOM line.

The mapping of some common default properties are listed below:

Business object Property Awb0BOMToOccurrence value

Awb0Element awb0Parent bl_parent

Awb0Element awb0Name bl_line_name

Awb0Element awb0ElementId

Awb0Element awb0Archetype bl_revision

Awb0ConditionalElement awb0ArchetypeEffFormula bl_revision_effectivity

Awb0ConditionalElement awb0ElementId awb0BomLineItemId

Awb0PositionedElement awb0BoundingBox bl_bounding_boxes

Awb0PositionedElement awb0Transform bl_plmxml_abs_xform

Default getter and setter methods are registered for all properties of Awb0Element and child business
objects that have a mapping defined in the Awb0BOMToOccurrence property constant. You must
provide a custom getter and setter for all properties that are not already mapped. For example, the
awb0NumberOfChildren property specifies the number of child elements and does not have a value for
the property constant; custom getter and setter methods are registered for it. You can use the same
mechanism to register getter and setter methods for properties on custom Awb0Element subtypes.

Many configured runtime properties on BOMLine are derived from Item, ItemRevision, or another
object. These are always of type string, irrespective of the type from which they are derived. Mapping to
such a property will result in losing the type information about the property that the system requires for
proper filtering of Solr results. To avoid this, instead of mapping to a configured runtime property, define
a new compound property on the backing object and use the relations or reference properties to get the
source property. This maintains the type information for the property so that it can be used in mapping.

For example, you may want to get the last modified date stored in the configured runtime property
bl_rev_last_mod_date on the BOM line. Instead of using the bl_rev_last_mod_date property, consider
the awb0RevisionLastModifiedDate compound property on the BOM line. This uses the bl_revision
property to access the item revision and you can get the last_mod_date property from there. An
awb0ArchetypeRevLastModDate property is defined on the Awb0DesignElement business object and
then mapped to the awb0RevisionLastModifiedDate property.

Cleaning up background working contexts

Teamcenter deletes background working contexts to free up disk space, according to their age and the
maximum number of allowed contexts per user. To control this clean up, set the following preferences:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-15


© 2020 Siemens
6. Configuring Active Workspace features

• AWBBackgroundContextCleanupDays
Controls the maximum time working contexts are kept. For example, if this preference is set to 30
days, when a user opens a structure, all working contexts older than 30 days are deleted.

• AWBBackgroundContextMaxCountPerUser
Controls the maximum number of working contexts kept for each user. For example, if this preference
is set to 50, when a user opens a structure, the oldest working contexts from the set of that user’s
contexts beyond the limit of 50 are deleted.
The minimum valid value for the AWBBackgroundContextMaxCountPerUser preference is 1. The
users must set this preference to 1 or more.

These settings applies to all users and it is not possible to set a different cleanup period for individual
users.

Enable the sharing of a saved working context

Users can save a working context to share with other users, stakeholders, and collaborators. To enable
the sharing of a user’s saved working context, the system administrator must add the Has
Class( Awb0SavedBookmark ) rule to the Access Manager (AM) rule tree.

You can add the rule using the rich client. Rules are evaluated based on their placement in the tree
structure. Therefore, the location of the rules in the rule tree is important.

1. Add the Has Class( Awb0SavedBookmark ) rule and set the Condition, Value, and ACL Name as
follows:

Has Class( Awb0SavedBookmark )


Has
Attribute( Awb0SavedBookmark:awb0ShareLevel=Private )->PrivateSBMACL
Has Attribute( Awb0SavedBookmark:awb0ShareLevel=Read
Only )->ReadOnlySBMACL
Where:
PrivateSBMACL: Owning User: Grant Read, Write, Export
World: Deny Read, Write, Export
ReadOnlySBMACL: Owning User: Grant Write
World: Deny Write

2. Click Add and then click Save.

Enable the display of red lines to indicate structure changes

Active Workspace users can review the active or closed changes associated with any structure. To enable
the highlighting of the changes with red strikethroughs or in italicized green text, the system
administrator must set the AWC_Enable_RedLine_feature preference to TRUE.

6-16 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
The default revision rule for a product structure

The default revision rule for a product structure

TC_Config_Rule_Name specifies the default revision rule for structures. Set the
AWBUseDefaultRevisionRule preference to True so that the configuration panel uses the existing
TC_Config_Rule_Name as the default revision rule.

Implementing full text search of structures

To allow full text search of structures, mark the Awb0Element types and their properties for indexing in
a similar way to how you identify properties from related objects for object searches. To index a
property, set the Awp0SearchIsIndexed property constant to true, and also set the
Awp0SearchIsIndexed business object constant of the type on which the property is created to true. If
filtering is required on the property, set the Awp0SearchCanFilter property constant to true.

For BVR structures, Active Workspace provides two adapters, one using a BOM window (BOM line) based
API and the other an indexed adapter. The indexed adapter uses the configured structure stored in the
database for faster access. Only structures that use the index adapter can utilize the full text structure
search capabilities.

Configuring BOM precision

In Active Workspace, you can specify if a structure is precise or imprecise by editing the top line of the
structure from the Properties panel and selecting the Precise property. The default value is Imprecise.

If you do not see the Precise property for an element such as a logical block, you must edit the XRT of
that element and add the following property under the tc_xrt_Properties section:

<property name="awb0IsPrecise">

Note:
To set the default value for newly created product structures as precise, change the value of the
TC_BOM_Precision_Preference preference to Precise. (The default value is Imprecise.)

Confidentiality agreement configuration

Overview of confidentiality agreement

The stand-alone confidentiality agreement, which must be configured, appears during post logon. When
the user selects I agree and clicks Continue, it ensures that the user has accepted the agreement and is
then able to gain access to the client. By selecting I agree, the user agrees to comply with the
confidentiality agreement.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-17


© 2020 Siemens
6. Configuring Active Workspace features

Note:
The acceptance of the confidentiality agreement is not recorded anywhere in the system.
However, if you require your users to agree to a confidentiality agreement, for example, for
authorized data access (ADA) requirements, you can configure a custom confidentiality
agreement statement to be displayed following the selection of their current working
location. This information can be stored so you can generate a report for audit purposes.

Configure the stand-alone confidentiality agreement

To configure the stand-alone confidentiality agreement, you must use the AWC_PostLoginStages
preference. This preference lists the postlogon stages in the sequence displayed on the Active
Workspace client after successful authentication. You must add the string ConfidentialityAgreement
when defining this preference. Doing so displays the confidentiality agreement page after the user
successfully logs on.

Change management configuration

Change management configuration tasks

What is change management?

Change management is an organized way to implement changes to products and ensure the quality of
every change. Users can access the changes they have implemented by clicking the CHANGES tile to
display the Changes page.

6-18 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Change management configuration tasks

Why configure change management?

How your organization processes changes is unique, and you can configure aspects of how changes are
handled to match your organization's process. For example, you can set a different default workflow to
be initiated when a user submits a change request.

What can I configure?

You can configure the following aspects of change management:

• Set the default workflow.

• Configure how changes are derived.

• Define deep copy rules.

• Setting up filtering in the Changes page.

• Configure the contents of tabs in the Changes page.

What do I need to do before configuring?

Before you can configure change management, you must install the features. Install the following from
the Features panel of Teamcenter Environment Manager (TEM):

• Change Management (server)


Installs the server-side definitions for changes.
Select the Extensions→Enterprise Knowledge Foundation→Change Management feature in the
corporate server.

• Change Management (client)


Installs the user interface elements for viewing changes in Active Workspace.
Select Active Workspace→Client→Change Management.

Where can I find out more about change management?

See Change Manager in the Teamcenter help collection.

What does the Changes page look like?

Following is an example of the Changes page in Active Workspace.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-19


© 2020 Siemens
6. Configuring Active Workspace features

Configure Create Change menu for custom objects

User-defined child objects of the ChangeItem business object must only be available in the Create
Change menu available in the primary toolbar in Active Workspace.

To implement this behavior, you need to add the internal names of the custom child objects of the
ChangeItem business object to the AWC_TypeSelectorExclusionTypeList site-level preference.

Note:
If you don’t add these custom child objects to the preference, they will also be available in the Add
command on the Home page, which is incorrect.

The internal names of the following child objects are included in the
AWC_TypeSelectorExclusionTypeList site-level preference:

• ChangeNotice

• ChangeRequest

• ProblemReport

• Cm0GnWorkOrder

Automating the submission of changes to workflow

Use the following Teamcenter rich client preferences to set the default workflow that should start when
a user submits a problem report, change notice, or change request in Active Workspace. The default

6-20 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring how changes are derived

workflow is ChangeItemRevisionDefaultWorkflowTemplate, which is a simple process to select a


signoff team and then have each participant of the team perform his/her signoff task to approve the
change.

For a Use the preference Its default is

Change notice ChangeNoticeRevision_default_ ChangeItemRevisionDefault


revision workflow_template WorkflowTemplate

Change request ChangeRequestRevision_default_ ChangeItemRevisionDefault


revision workflow_template WorkflowTemplate

Problem report ProblemReportRevision_default_ ChangeItemRevisionDefault


revision workflow_template WorkflowTemplate

Configuring how changes are derived

When deriving a change from another use the CM_automate_derive_propagation preference to


enable the automatic propagation of the relations (such as reference items and problem items) from the
source change to the derived change. You configure which relations to propagate using the following
preferences. For example, for a problem report enable the propagation of its problem items
(CMHasProblemItem) and its reference items (CMReferences).

When deriving a change object from a Set the relations propagated using

Problem report CM_ProblemReportRevision_


Relations_To_Propagate

Deviation request CM_Cm0DevRqstRevision_


Relations_To_Propagate

Change request CM_ChangeRequestRevision_


Relations_To_Propagate

You configure which change object users can derive from another using the CM_change_derivations
preference.

For more information, refer to Environment Variables Reference in the Teamcenter help collection.

Defining deep copy rules for creating changes

Use the Teamcenter Business Modeler IDE deep copy rules to set what objects and attributes are copied
when a user creates a copy of a change. Deep copy rules define whether objects belonging to a business
object instance can be copied when a user performs a save as or revise operation on that instance. Deep
copy rules can be applied to any business object type and are inherited by children business object
types.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-21


© 2020 Siemens
6. Configuring Active Workspace features

Using deep copy rules, you can configure whether the following are copied for a change:

• Name, subject, description

• Problem and Impacted Items

• Referenced or related documents

The figure shows the deep copy rules defined by default for a ChangeItemRevision in the Deep Copy
Rules editor. The rules define that when copying a change, copy the problem, impacted, and reference
objects, but do not copy the incorporates and solution items.

Refer to the Configure your business data model in BMIDE in the Teamcenter collection for more
information.

Note:
Copying changes is not available in the Teamcenter rich client.

Define deep copy rules for copying options from an ECR to an ECN

Use Teamcenter Business Modeler IDE deep copy rules to configure the copying options when a user
derives an ECN from an ECR. Deep copy rules define whether objects belonging to a business object
instance can be copied when a user performs a Derive operation on that instance. Deep copy rules
configure the copy option, providing the ability to select individual objects from the Affected Items and
Reference Items in an ECR.

Using deep copy rules, you can configure whether the following are copied into the ECN:

• Impacted Items

• Problem Items

• Reference Items

6-22 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Define deep copy rules for copying options from an ECR to an ECN

You can create rules for the default relation types CMHasImpactedItem, CMHasProblemItem,
CMReferences.

Refer to the Configure your business data model in BMIDE in the Teamcenter collection for more
information.

Create Deep Copy Rules in BMIDE

1. Create a custom template based on the Change Manager template.

2. Open the Change Item Revision Business Object.

You can create a Derive deep copy rule for GnChangeRequestRevision and
GnProblemReportRevision.

• Select the Show Inherited Rules check box to display all rules inherited from parent business
objects.

• Select the Organize by Inheritance check box to sort the rules by parent business object names.

• Use the Add, Edit, or Remove buttons to work with the deep copy rules.

3. Select the Deep Copy Rules tab and click the Add button to add a row for each rule.

4. Choose the business object that the deep copy rule is applied to.

Specify the parameters for each rule.

Parameter Description

Target Primary? Mark or clear the check box as appropriate.

When the checkbox is marked, Target Business


Object is the primary object of the relationship
specified in the Relation Type box. When the
business object instance is revised or saved, the
secondary objects are carried forward and
related using the relation in the Relation Type
box.

When the checkbox is clear, Target Business


Object is the secondary object of the
relationship specified in the Relation Type box.
When the business object instance is revised or
saved, the primary objects are carried forward
and related using the relation in the Relation
Type box.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-23


© 2020 Siemens
6. Configuring Active Workspace features

Parameter Description

Operation Type Select Derive.

Type Relation creates the deep copy relationship

Relation / Reference Select CMHasImpactedItem, CMHasProblemItem, or CMReferences.


Property You will supply a rule for each relation.

Attached Business For CMHasImpactedItem and CMHasProblemItem types select


Object ItemRevision.
For CMReferences select WorkspaceObject.

Condition Select the condition isTrue.

Action Choose the kind of copying to be allowed for the business object. The
available options differ depending on the type of target business
object.
Select CopyAsReference. This creates a new relation between the new
revision and the related object. Therefore, modifications performed on
the copied object are propagated to the source object.

Required Leave blank.

Secured Select if you want to prevent the deep copy rule from being modified or
overridden by another template.

Copy Properties on Select if you want persistent properties on relation objects carried
Relation forward when the primary objects participating in relations are revised
or saved as new objects.
If not selected, only mandatory properties are carried forward.

5. Click Finish.

The rule is created and appears in the table in the Deep Copy Rules editor.

Configuring the Changes page

Setting up filtering in the Changes page

You can set the properties that filter the changes that appear in the Changes page for changes found
when selecting the Submitted tab. The changes are change business objects of the
ChangeItemRevision type and its subtypes.

6-24 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Setting up filtering in the Changes page

To set the filter, in the Business Modeler IDE, set the following property constants on the property of the
change object on which you want to filter.

• Cm1ChangeCanFilter
Indicates that change business objects can be filtered on the property.

• Cm1ChangeFilterPriority
Indicates the priority of the property that determines its order in the list of filters displayed in the
Changes page. The lower the value, the higher its priority and, therefore, the higher its position in
the list of filters.
Siemens Digital Industries Software recommends that you assign values from a range to
accommodate additional properties in the future. For example, assign priorities such as 100, 200, and
300, instead of 1, 2, and 3.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-25


© 2020 Siemens
6. Configuring Active Workspace features

By default, the following properties are shown as filters for Change business objects:

• creation_date – Date the change was created.

• CMMaturity – Degree of completion of the overall change process (its maturity).

• object_type – Type of change.

• cm0Analyst – User assigned as the analyst.

• cm0ChangeSpecialist1 – User assigned as the change specialist.

• cm0Requestor – User who created the change.

Change filters can only be set on persistent and compound properties.

Properties supported for filtering Properties not supported for filtering

• Date • String properties with long string as storage

• String • Numeric properties

• References • Array properties

• Logical

Refer to Configure your business data model in BMIDE in the Teamcenter collection for more
information.

Configuring the contents of tabs in the Changes page

You can define which queries are used for each sublocation within the Change location.

The queries used for each sublocation must be the server-side Teamcenter platform saved queries.
Active Workspace saved queries will not work in this case.

You can see a list of server-side saved queries (and execute them manually) in the Active Workspace
client by using Advanced Search.

6-26 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring the contents of tabs in the Changes page

You can view the definition of and create new server-side Teamcenter platform saved queries by using
the Query Builder application in the rich client.

Redefining the queries of the tabs is particularly helpful when you have defined custom participants or
changes. You can replace your custom participants and changes with those in the default queries so the
tabs show your company’s content.

You must modify the CMMyChangesSublocationQuery preference to modify which queries are used
for each sublocation. The Cm1MyChangesProvider uses the preference value pairs to select the query
which provides the data to the page. The preference definition contains the details of implementation.

Following are the default queries for each tab to display changes with a closure setting of Open and the
logged-on user is the requestor, analyst, or change specialist:

• All tab

Get all ChangeItemRevs where Closure=Open AND (Requestor = Logged-in User OR Analyst =
Logged-in User OR Change Specialist1 = Logged-in User)

• Submitted tab

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-27


© 2020 Siemens
6. Configuring Active Workspace features

Get all ChangeItemRevs where Closure=Open AND (Requestor = Logged-in User OR Analyst =
Logged-in User OR Change Specialist1 = Logged-in User) AND ProcessStageList != NULL

• Saved tab

Get all ChangeItemRevs where Closure=Open AND (Requestor = Logged-in User OR Analyst =
Logged-in User OR Change Specialist1 = Logged-in User) AND ProcessStageList = NULL

• Approved tab

Get all ChangeItemRevs where Closure=Open AND (Requestor = Logged-in User OR Analyst =
Logged-in User OR Change Specialist1 = Logged-in User) AND Disposition = Approved

• Disapproved tab

Get all ChangeItemRevs where Closure=Open AND (Requestor = Logged-in User OR Analyst =
Logged-in User OR Change Specialist1 = Logged-in User) AND Disposition = Disapproved

Classification configuration

Classification configuration tasks

What is classification?

Classification is a process where you define attributes to make an object easy to find for reuse. During
the classification process, you assign attribute values that help in the searching of the object, such as
measurements, material, or unit of measure. The more attribute values you provide, the easier the
object is found.

Classification can support both traditional classification classes or classification standard taxonomy (CST)
classes that support eCl@ss-compliant data. If your company is just starting with Active Workspace
classification, Siemens Digital Industries Software recommends proceeding with CST configuration.

What can I configure?

You can configure the following aspects of classification:

• Ensure that the type of workspace object that you want to classify is listed in the
ICS_classifiable_types preference. If your business use case requires classifying items instead of item
revisions, you must remove the ItemRevision entry from this preference.

• Configure classification for traditional classification hierarchies.


You have a Teamcenter classification hierarchy and now want to use Active Workspace for
classification searching and authoring.

• Configure classification standard taxonomy (used for eCl@ss compliant data).

6-28 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
See traditional classification classes and data in Active Workspace

You use the eCl@ss standard for classifying data and want to download and use such hierarchies and
data. Or, you are just beginning with classification and want to create your own eCl@ss-compliant
hierarchies so you can easily share your data.

• Configure classification libraries.


Different groups of users want to see only the parts of the classification hierarchy that are relevant to
their work so you create libraries containing only these branches of the hierarchy.

• Configure classification for using both traditional and classification standard taxonomy
hierarchies.
You have some users who want to use the traditional classification hierarchy but others want to work
in an eCl@ss compliant hierarchy. Using this procedure, the type of hierarchy displayed is user-
dependent.

• Configure indexing for classification classes and attributes..

• Enable visual navigation cards.

• Set classification preferences.

What do I need to do before configuring?

Before you begin, you must decide which type of classification installation you require. Read through
these scenarios to assist you with your decision.

Where can I find out more about classification?

• To find out more about using classification in Active Workspace, see Filtering by classification.

• To find out more about traditional Classification, see Classification and Classification Admin in the
Teamcenter help collection.
To best plan implementing search for your users, see the Administering Search Guidemap in the
Teamcenter help collection.

• To find out more about classification standard taxonomy, see Configuring Active Workspace and What
is classification standard taxonomy?.

I want to ...

See traditional classification classes and data in Active Workspace

If you have a classification hierarchy in Teamcenter rich client and begin using Active Workspace, you
must first install classification for Active Workspace and configure the search before your class hierarchy
is visible and your data is searchable.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-29


© 2020 Siemens
6. Configuring Active Workspace features

See the CLASSIFICATION tile on the Home page

The CLASSIFICATION tile on the Home page opens the classification location where you can browse the
hierarchy and search within classes. The tile is installed automatically if you install libraries or
classification standard taxonomy. If, however, you only install traditional classification, you must enable
this tile separately.

6-30 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Use visual navigation cards (VNCs)

Use visual navigation cards (VNCs)

A basic installation of traditional classification with the CLASSIFICATION tile provides you with visual
navigation cards for browsing in the classification location.

To display VNCs when using the global search:

Display only the branches of the classification hierarchy that relate to my project

The Library Management feature allows you to display only select areas of the classification hierarchy
that are relevant to the work at hand.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-31


© 2020 Siemens
6. Configuring Active Workspace features

Create a classification hierarchy (new classification user)

If you are just starting with classification and do not already have a traditional classification hierarchy,
you can install classification standard taxonomy (CST) directly.

6-32 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create a classification hierarchy (new classification user)

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-33


© 2020 Siemens
6. Configuring Active Workspace features

Import downloaded eCl@ss hierarchy and data into Active Workspace

6-34 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Use traditional classification data along with eCl@ss data simultaneously

Use traditional classification data along with eCl@ss data simultaneously

See class suggestions when classifying objects

When classifying an object in the user interface, using artificial intelligence, Active Workspace can
provide suggestions of classes that may be suitable for classification.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-35


© 2020 Siemens
6. Configuring Active Workspace features

Configure traditional classification

If you have a class hierarchy and data in rich client, you can expose these for classifying and searching in
Active Workspace.

1. In Teamcenter Environment Manager, install the following components:

• Base Install→Active Workspace→Server Extensions→Reuse and


Standardization→Classification Server

• Base Install→Active Workspace→Client→Reuse and Standardization→Classification Client

2. Configure the classification search.

3. (Optional) Install the Classification tile by installing the presentation layer.

The Classification tile on the Home page opens a dedicated location to browse the classification
hierarchy.

4. (Optional) Configure visual navigation cards.

Configure search for traditional classification

After installing classification or after adding data (classes, views, properties), you must enable searching
for the data.

1. Create search index views and choose properties by which to search and filter
Each property for which you want to search must be contained in a search index view.

2. Update and merge the schema file

6-36 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create search index views and choose properties by which to search and filter

Because you changed the hierarchy by adding search index views, you must regenerate the schema
files.

3. Index classification data


Any time you create new classification data, such as classifying new objects, you must re-index to
be able to search for the new object in the global search or see the property displayed in the list of
filters when searching for data.

Create search index views and choose properties by which to search and
filter

1. In Teamcenter rich client Classification, verify that classified data is available. Classification should
contain a structure of classes with attributes and classified objects.

For more information see the Teamcenter Classification documentation.

2. Choose one of the following to define the classification properties you want to index.

• To select all classes, attributes, and filters, run the smlutility utility. For example, from a
Teamcenter command window, type:

smlutility -create_indexing_views -u=username -p=password -g=dba

A search index view is created for each class in Classification Admin. All attributes of the class are
assigned to the view. You can only run this command once for a class.

• Specify individual classification properties:

a. Ensure that the ICS_searchindex_view_visible preference to TRUE.

b. In the Teamcenter rich client Classification Admin, the Add View operation now includes
the Search Index View option.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-37


© 2020 Siemens
6. Configuring Active Workspace features

Class attributes for these classes are not yet configured for indexing or filtering.
For a class to be available for indexing and filtering, the class must contain a search index
view, at least one attribute, and at least one classified object.

c. In Teamcenter rich client Classification Admin, select the search index view for a class and
select the View Attributes tab.

d. Add all attributes that you want included in the indexing to the View Attributes list.
You cannot add linked attributes to search index views, since these attributes can be
directly searched via the object properties they are linked to.

e. Individually, in the View Attributes list: select an attribute, choose Edit Current Instance
, select the Filter check box, and click Save Current Instance.
The Filter property indicates that the attribute is to be available in the Filter list in Active
Workspace.

6-38 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Update and merge the schema file

3. Update and merge the schema file

4. Index classification data

Update and merge the schema file

1. Run the bmide_modeltool utility to create a new schema file.

For example, in a Teamcenter command window, change to the tc_root\bin directory and type:

bmide_modeltool -u=username -p=password -g=dba -tool=all


-mode=upgrade
-target_dir="%TC_DATA%"

2. Verify the schema file was created correctly.

a. Verify that the tc_solr_schema.xml file in the TC_DATA\ftsi\solr_schema_files folder has the
current date and time.

b. Open the tc_solr_schema.xml file in a text editor and search for 0Y0_CLASSIFICATION_0Y0.
You should find several lines containing this string. Close the text editor without saving.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-39


© 2020 Siemens
6. Configuring Active Workspace features

3. Stop the Solr indexer services.

4. Merge the Teamcenter and Solr schemas. For example, in a Teamcenter command window, change
to the tc_root\solr-version directory and run this utility:

TcSchemaToSolrSchemaTransform "%TC_DATA%\ftsi\solr_schema_files

Changes to the tc_solr_schema.xml are applied to the Solr schema.xml file.

5. Verify the schema merge completed correctly.

a. Verify that the schema.xml file in the tc_root\SOLR_HOME\server\solr\collection1\conf


folder has the current date and time.

b. Open the schema.xml file in a text editor search for 0Y0_CLASSIFICATION_0Y0. You should
find several lines containing this string. Close the text editor without saving.

Index classification data

The following procedure sets up general indexing and helps you troubleshoot the indexing of
classification objects. If general indexing is set up and correctly functioning for the creation of objects in
Active Workspace, the indexing mechanism described here includes classification authoring activities
(such as classifying an object or deleting a classification). If, however, you use traditional classification
and make changes to the search index views (such as adding or removing a search index view from a
class or adding or removing properties from a search index view), you can use classification delta
indexing to pick up only these changes and prevent you from having to re-index all of your data.

1. (Optional) To prepare to verify whether indexing is successful, do the following:

a. Open tc_root\TcFTSIndexer\conf\TcFtsIndexer.properties in a text editor and search for


Indexer.keepGeneratedFiles.

b. Change the value of this to always and save the file.

This step causes indexing logs to be saved and must be performed before you index.

After you index, you can check whether the indexer found new objects.

2. Ensure that the Solr indexing service is running.

3. Re-index search data.

For example, in a Teamcenter command window, change to the tc_root\TcFTSIndexer\bin


directory and type:

runTcftsIndexer -task=objdata:clear n

6-40 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Index classification data

Enter option 4 to clear the indexer cache, the Solr index, and the objdata indexing records:

-task=objdata:clear 4

Enter Y three times.

After clearing the index, rerun the indexer:

runTcftsIndexer -task=objdata:index

Each time you modify existing classification classes or views, or create new ones on top of them,
you must update your template, merge the schema files, and re-index the search data.

4. Verify that indexing was successful.

a. Check the date and time of the log file located in the tc_root\TcFTSIndexer\logs folder.

b. The TcFTS indexer follows a specific sequence which is displayed in the window running the
indexer. For example:

...
Query found 18 objects in 0.556 seconds ***
Export of 18 objects in (secs): 2.989 ***
Transform time (sec) 0.942 ***
Load time (secs): 0.37 seconds ***
Query found 15 objects in 0.406 seconds ***
Export of 15 objects in (secs): 2.543 ***
Transform time (sec) 0.842 ***
Load time (secs): 0.27 seconds ***
...

• Query — The indexer examines the object types to be indexed and determines what has
changed. Changes include created, modified, or deleted objects.

• Export — The indexer exports the changes to a tcxml_<number>xml file.

• Transform — The indexer transforms the tcxml_<number>xml file into Solr format
creating a solr_<number>xml file. Both files are placed in the tc_root\TcFTSIndexer
\working\TcFtsIndexer_objdata\<number>\result folder.

• Load — The indexer loads the changes into the Solr database. The Solr data can then be
displayed in the filter dialog box in Active Workspace and Teamcenter Manufacturing
Access.

c. Change to the tc_root\TcFTSIndexer\working\TcFtsIndexer_objdata directory.


There are a number of temporary directories listed here. Each of them contains a results
directory. Search through the XML files listed in these results directories for the value of a

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-41


© 2020 Siemens
6. Configuring Active Workspace features

classified object. For example, if you classified something with the attribute name=Face mill,
then you can search for Face mill in the XML files. If it is there, indexing was successful.

5. Restart scheduled indexer syncing.

Note:
Reindexing is required because you changed the schema. From this point forward, changes
to your data can be captured by scheduling regular syncing of the database with the
runTcftsIndexer command.

Index only classification data (delta indexing)

The search index views in traditional classification define which classes and properties are searchable in
Active Workspace. If you make any changes to these views, you must update and merge the schema file
and index the data. Indexing all data can be very time-consuming. To perform this task more quickly,
you can index only the changes made in the search index views. Changes in the search index view that
require indexing are:

• Adding or removing a search index view from a class

• Adding or removing properties from a search index view

This procedure assumes that regular Active Workspace indexing is running and synchronizing on a
regular basis.

1. Update and merge the schema file.

2. (Optional) Run the awindexerutil utility:

awindexerutil -u=user -p=password -g=group -delta -classification


-dryrun

Running this utility using the dryrun option displays the objects that will be marked for indexing in
the next step. Scanning this output can assist you in troubleshooting the indexing of your data.

3. Run the awindexerutil utility:

awindexerutil -u=user -p=password -g=group -delta -classification

This step marks the changes found for indexing. Once marked, these objects are picked up in the
next regular indexing synchronization flow.

6-42 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring traditional classification—Example

Configuring traditional classification—Example

This example demonstrates how to configure the search in Active Workspace when using traditional
classification.

In rich client, there is the following classification hierarchy containing two abstract classes (Machines
and Tools) and each of those classes contains two storage classes. Each storage class contains one
classified object.

After installing the client and server components of Active Workspace, the Classification tab is now
visible:

The storage classes are available for classification:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-43


© 2020 Siemens
6. Configuring Active Workspace features

However, trying to search for a machine that is classified using one of its properties returns no search
results:

6-44 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring traditional classification—Example

To enable searching:

1. Add Search index views to the classes in rich client:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-45


© 2020 Siemens
6. Configuring Active Workspace features

2. For each property , select the Filter attribute and save the view.

6-46 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Install the presentation layer

Note:
This example works through a simple use case. When performing these activities for
production data, use the smlutility utility to create the Search index views.

Because the hierarchy has changed, the schema must be updated.

3. Update and merge the schema, and re-index the data.

Now, when you search for the Supplier property in Active Workspace, the data is found. The
classification class and the properties are displayed in the Filter list in Active Workspace:

Install the presentation layer

The presentation layer provides more flexibility than the traditional classification storage hierarchy. It
serves as the basis for implementing other classification features such as classification standard

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-47


© 2020 Siemens
6. Configuring Active Workspace features

taxonomy (CST) and classification libraries. It provides the ability to deal with traditional classification
features (such as creating a class hierarchy, adding classification objects to a classification hierarchy,
classifying workspace objects, searching for classification objects, and modifying and deleting objects
from a classification hierarchy) and CST and library features simultaneously.

Additionally, installing the presentation layer adds the Classification tile to the home page and allows
you to configure visual navigation cards for searching.

• In Teamcenter Environment Manager, navigate to the Features page and select Base Install > Active
Workspace > Server Extensions > Reuse and standardization > Next Generation Classification
Server and complete the installation.

After installing the presentation layer, you must:

1. Turn on the visibility of the presentation hierarchy using the


CLS_is_presentation_hierarchy_active preference.

2. Extend the traditional classification classes to the presentation layer.

Extend classes to the presentation layer using clsutility

1. Extend classification data to the presentation layer by running the following command line utility:

clsutility -import -hierarchy -cid=group-or-class-ID

This command extends the classification subhierarchy under the specified group or class.

• For classification groups, running this utility creates presentation layer group nodes with the
same ID as the associated groups.

• For classification classes, running this utility creates presentation layer master nodes with the
storage_class_type property corresponding to their associated classes.

Additional optional arguments:

• -include_instances
Includes ICOs in the subhierarchy.

• -exclude_children
Excludes the subhierarchy. It extends the specified group or class only.

2. (Optional) Synchronize the presentation layer with the classification hierarchy.

6-48 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Synchronize the presentation layer with the classification hierarchy

Synchronize the presentation layer with the classification hierarchy

Use one of the following methods to synchronize the presentation layer with the underlying
classification hierarchy:

• Manually run clsutility.

• Enable automatic synchronization that shadows specific operations by setting the


CLS_auto_sync_node_hierarchy preference to true.
When at least the top-level node of the storage and presentation hierarchies are linked, the
synchronization mechanism is triggered by a change to groups, classes, or ICOs in the storage
hierarchy and results in the following changes to the presentation hierarchy.

Operation on class Operation required on node hierarchy


hierarchy

Add/delete group Add/delete group node

Add/delete class Add/delete master node

Add/delete class ICO Add/delete classification element

Copy/paste or cut/paste of a Copy/paste or cut/paste of a group node


group

Copy/paste or cut/paste of a Copy/paste or cut/paste of a master node


class

The synchronization mechanism functions as follows:

• If a target is not found in the presentation hierarchy, it is created (applies to node or element).

■ To create a node in the presentation hierarchy, Teamcenter matches the parent node with the
parent class.

■ To create an element in the presentation node, Teamcenter matches the node with the storage
class.

• To find targets, Teamcenter searches for the following:

■ A group node with the same ID as the classification group

■ A master node with the storage class type property pointing to the associated classification class

■ A classification element referencing the associated ICO

The objects in the hierarchies are mapped as follows.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-49


© 2020 Siemens
6. Configuring Active Workspace features

Object types from Corresponding object types from the


Classification (class presentation layer (node hierarchy)
hierarchy)

Group Group node

Abstract class Master node

Storage class Master node

Classification object (ICO) Classification element (ICO)

Configure visual navigation cards

Visual navigation cards (VNCs) allow the display of larger images while viewing the selected level in the
classification node hierarchy. The images displayed in the VNCs reflect the class image stored in the
database.

Tip:
To make optimal use of the image space on the VNC, create a square class image. Rectangular
images are cropped.

VNCs are always visible for authoring. The classification location displays VNCs regardless of the
classification features you have installed (whether you have only traditional classification or additionally

6-50 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring interchangeable attributes

the presentation layer). When searching, however, you must have the presentation layer installed and
the classes extended to the presentation layer (and indexed) to see visual navigation cards.

Define the properties displayed on tiles by configuring the following business objects:

• To configure visual navigation cards for the classification hierarchy, configure the Cls0HierarchyNode
business object.
This business object is available after installing the presentation layer (Next Generation
Classification).

• To configure visual navigation cards for libraries:

• Lbr0Library configures the top level of a library structure.

• Lbr0Hierarchy configures the second level of a library structure.

• Lbr0HierarchyNode configures the remaining levels of a library structure.

These business objects are available after installing classification libraries (Classification Library
Management).

Configuring interchangeable attributes

Attributes are referred to as interchangeable if you can search for the value of one and the results list
other attributes in the group. For example, if length, width, and height are set to Interchangeable,
you can search for length=10 and the results return all objects with length=10, width=10, and
height=10.

To specify that attributes are interchangeable:

1. Add the desired attributes to the search_index_view in Classification Admin.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-51


© 2020 Siemens
6. Configuring Active Workspace features

2. Select the Filter option for each attribute.

3. Add the attribute IDs to the AWS_cls_attribute_interchangeability_definition preference.

For example, to define two attributes whose IDs are 10000 and 10001 as interchangeable, set the
preference value as follows:

10000:10001

10001:10000

To define three attributes as interchangeable whose IDs are 10000, 10001, and 10002, set the
following value:

10000:10001, 10002

10001:10000, 10002

10002:10000, 10001

4. Re-index the search data.

Configuring the search similar feature

The search similar feature finds the filters of objects and presents them. By modifying these facets, you
can find other objects with similar properties.

There are two types of properties that you can enable for the search similar feature:

• Workspace object properties


The CLS_search_similar_wso_props_enabled preference contains a list of workspace object
properties that are used to find similar objects.
When adding new properties to this preference, only properties that are listed in the
AWS_FullTextSearch_FacetFilters_ObjectData preference are valid entries. Use the values in this
preference to obtain the correct syntax of the property entries.

• Classification properties
Classification properties for the search similar feature are enabled using any of the following
methods:

• In rich client, in the Search index view of a class, select the Search Similar option for each desired
attribute.

6-52 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring the search similar feature

Run the smlutility utility:


smlutility -update_indexing_views -searchSimilar attribute-IDs class-IDs
For example:

• To enable the search similar feature for all properties in all classes, type the following:
smlutility -update_indexing_views -searchSimilar
This enables the Search Similar option on all properties in every Search Index view that have the
Filter option checked.

• To enable or disable the search similar feature for selected attributes in every class containing a
Search Index view, add the -attrids= argument. To disable an attribute, add an exclamation mark
before the attribute ID:
smlutility -update_indexing_views -searchSimilar -attrids= attr1, !attr2,attr3

• To enable or disable the search similar feature for selected classes, add the -classids= argument.
smlutility -update_indexing_views -searchSimilar -attrids= attr1, !attr2,attr3
classids=class1,class2

• Import the configuration using a JSON file:


smlutility -create_search_similar_views -searchSimilar -configFile=JSON-file-name
The JSON file must have the following format:

{
"SchemaVersion": "1.0.0",
"Classes": [
{
"ID": "classA",
"Enabled": [ "1" ],

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-53


© 2020 Siemens
6. Configuring Active Workspace features

"Disabled": [ "2", "3" ]


},
{
"ID": "classB",
"Enabled": [ "*" ],
"Disabled": [ "2" ]
},

],
"Attributes": {
"Enabled": [ "4", "5" ],
"Disabled": [ "6" ]
}
}

This code does the following:

• Enables attribute 1 in classA and all attributes in classB.

• Disables attribute 2 in both classA and classB and attribute 3 in classA.

• Enables attributes 4 and 5 in all classes containing a Search Index view and having the Filter
option set on both of these attributes.

• Disables attribute 6 in all classes.

For more information about the syntax of the JSON file, see the following schema file.
...\TR\data\classification\json\JSON-schema-version\SearchSimilar.schema.json

View DWG and CGM class images in the Classification tab

To use CGM or DWG file formats as class graphics, you must first convert them to PDF using the prepare
utility delivered with the Lifecycle Visualization installation.

1. Run the Lifecycle Visualization installation, and select the Convert and Print option.

6-54 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure a visual indicator for classification on an object

2. Copy the CGM or DWG file to the VVCP directory in the installation location.

3. Double click the prepare.exe utility.

4. Run the utility to convert the CGM or DWG files to PDF. For example, for a file named
my_drawing.dwg, enter the following:

prepare -pdf my_drawing.dwg

This converts the my_drawing.dwg file and creates the my_drawing.pdf file in the VVCP
directory.

You can add path names to change the input and output directories.

Run prepare -h to obtain information about the utility.

5. Associate the PDF to the required class in Classification Admin (rich client).

Configure a visual indicator for classification on an object

You can set a visual indicator on an object to display that it is classified:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-55


© 2020 Siemens
6. Configuring Active Workspace features

Add the following to your configuration code:

"classiBOM": {
"iconName": "Classified",
"tooltip": {
"showPropDisplayName": false,
"propNames": ["ics_classified"]
},
"modelTypes": ["Awb0DesignElement"],
"prop": {
"names": ["awb0UnderlyingObject"],
"type": {
"names": ["ItemRevision"],
"prop": {
"names": ["ics_classified"],
"conditions": {
"ics_classified": {
"$eq": "YES"
}
}
}
}
}
}

Upgrade classification

After upgrading Teamcenter or Active Workspace, or adding any (classification) features in Teamcenter
Environment Manager, you must do the following (if not already done for regular object indexing):

1. Update and merge the schema file

2. Index classification data

6-56 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
What is classification standard taxonomy?

If you make any changes to the traditional classification hierarchy, you must:

1. Update and merge the schema file

2. Re-index classification data only.

Configuring classification standard taxonomy

What is classification standard taxonomy?

The classification standard taxonomy (CST) is a framework that supports using standardized
classification hierarchies and data so that classification data can easily be shared between customers
and suppliers. In particular, this framework supports the eCl@ss standard that describes products and
services across a wide range of industries through the use of classes and properties with unique
identifiers.

For more information about the eCl@ss standard, visit their website:

https://www.eclass.eu/en.html

Teamcenter eCl@ss Data Management introduces the CST to support eCl@ss structures. CST classes are
available in the classification hierarchy, and if desired, alongside traditional classification classes (ICS) to
classify your data. Using Teamcenter eCl@ss Data Management, you can import and export eCl@ss-
compliant data.

eCl@ss and Teamcenter terminology

The classification standard taxonomy objects and concepts have different nomenclature than the eCl@ss
objects.

The eCl@ss Wiki provides in-depth explanations of eCl@ss objects:

http://wiki.eclass.eu/wiki/Category:Structure_and_structural_elements

The most commonly used objects are as follows.

Traditional classification (ICS)


eCl@ss CST

Value list Key-LOV definition Key-LOV

Property Property definition Dictionary attribute

Classification class Node definition --

Application class Class definition Group/class

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-57


© 2020 Siemens
6. Configuring Active Workspace features

Traditional classification (ICS)


eCl@ss CST

IRDI IRDI ID

Property block Property block --

Application data Classification object ICO

Aspect Aspect --

Install and set CST preferences

1. Run TEM and select the Classification Standard Taxonomy support (found in the Features
section under Extensions→Reuse and Standardization).

When you select this option, the Next generation Classification foundation option is
automatically selected as well. This option installs the presentation layer.

Note:
If your environment contains both SML classes and CST classes, see Classify with CST and ICS
simultaneously.

2. Make the node hierarchy (presentation layer) visible in the Active Workspace user interface by
creating the following user preference:

CLS_is_presentation_hierarchy_active=true

Being able to turn the visibility of the node hierarchy on and off per user allows users of both
traditional classification and CST to classify objects in the same environment. Depending on the
setting, a user can see either the traditional classification classes or the CST classes.

6-58 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
About classification standard taxonomy licensing

Note:
CST classes are not subject to access control. Therefore, if your environment contains both CST
and traditional classification classes, if the presentation hierarchy is not active
(CLS_is_presentation_hierarchy_active=false), CST classes are displayed in the search results for
traditional classification users.

About classification standard taxonomy licensing

Classification standard taxonomy features (CST) are available with a regular classification authoring
license. Reading, authoring, and browsing of a custom CST hierarchy is possible. If, however, you
download and use hierarchy data from eCl@ss, you require a cls_eclass_user named user license. With
this license, you can perform create, update, and delete operations on an eCl@ss hierarchy and data.

For complete information about licenses required, contact your Siemens Digital Industries Software
representative.

About the objects that you work with

IRDI
The International Registration Data Identifier (IRDI) originates from the eCl@ss standard. This
identifier is used by the classification standard taxonomy to uniquely identify all classes, properties,
and key-LOVs. Most importantly, using an IRDI supports:

• Unique namespaces

• Revisioning

In CST, the IRDI is displayed using the following format:

aaaa...a#bb-cccccc#nnn

Example:

XMPL#01-CLS001#001

Where:

IRDI Description
components

aaaa...a Unique alphanumeric namespace


Numeric namespaces are reserved as companies and organizations can register
them with ISO. For example, the following namespaces are reserved:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-59


© 2020 Siemens
6. Configuring Active Workspace features

IRDI Description
components

0173 is reserved by the eCl@ss organization

0175 is reserved by Siemens

Choose a namespace that is unique to your organization. This is particularly


important if you plan to share data with other organizations.

# Separator character

bb Data type

01: class

02: property

09: list of values (key-LOV)

cccccc Object identifier


This identifier uniquely identifies the object within the object data type. This
identifier can have up to six characters.

nnn Revision number


The revision number must have three characters.

Node hierarchy
The classification hierarchy consists of nodes of differing types.

• A group node is used for organization and cannot hold data.

• A master node references an application class that holds data. Master nodes can have other
master nodes as children.

6-60 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
About the objects that you work with

A node hierarchy can be revised.


Class
There are three types of classes in CST:

• Application class
An application class is referenced by nodes and can be used to store data. They hold the
properties used to define the class. An application class can reference properties and aspect
classes.

• Property block class


A property block class groups sets of properties together. You can group properties that are
frequently used, avoiding the need to repeatedly assign each property to a class. For example, a
milling tool generally comprises a holder, an adapter, and an insert. Each of these components is
described by many properties. The insert, for example, can be described by properties such as
thickness, cutting length, grade, and material. Because these properties apply to every insert, you
can group them into one property block class called Insert and reuse this property block like a
simple property in every class that contains an insert.

• Aspect class
An aspect class groups properties that pertain to overarching aspects of many objects and can be
reused across multiple object types. They often group such parameters as commercial

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-61


© 2020 Siemens
6. Configuring Active Workspace features

information, for example, supplier contact information, that have nothing to do with product
definition. Aspect classes can only be referenced directly by application classes.
Key list of values
A key list of values (key-LOV) holds selection lists.

These lists can be nested.

Key-LOVs are referenced by properties.


Property
A property is used to describe attributes of a class. It can have multiple data types:

• String
• Integer
• Double
• Boolean
• Reference

Reference property types point to another object such as a key-LOV definition or a property block
class.
Classification object
An internal classification object (ICO) is used to classify Active Workspace data.
View
Used to display all or a subset of the properties in a class in the user interface. There are two types
of views used in classification classes:

• Base view

• User, group, or role view

6-62 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
About the classification standard taxonomy architecture

About the classification standard taxonomy architecture

The classification standard taxonomy (CST) is displayed through a hierarchy of groups containing master
nodes that reference classes in which data is stored. This hierarchy is referred to as the presentation
layer (the installation option is called Next generation Classification foundation).

The presentation layer does not actually store the classes. It references classes that are stored in the CST
layer. A node in the hierarchy can hold a reference to a class that stores data. Group nodes are used for
organizational structure, and master nodes reference application classes in the CST layer. The CST layer
also stores properties and key-LOVs. Classification data is stored in the Teamcenter server layer.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-63


© 2020 Siemens
6. Configuring Active Workspace features

The significance of this architecture becomes apparent when understanding how CST and traditional
Classification (SML) work together.

Classifying objects in CST classes

Classifying objects functions in the same manner for both the traditional classification classes. and
classification standard taxonomy (CST) classes.

CST classes offer more options for filtering data and adding property values because they can contain
property blocks, cardinality, and polymorphism.

You can perform the following tasks with CST:

• Find a classified object by browsing the classification hierarchy

• Classify an object using the Classification tab

• Edit object properties

• Include classification properties when you compare search results

6-64 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
About cardinality on property blocks

Note:
You cannot classify an object multiple times when using CST classes.

About cardinality on property blocks

Cardinality on property blocks allows a user to specify the number of times that a property block class is
used in an application class. For example, when designing a power supply for mobile devices, there is a
class called Power supply containing two properties, Designation and Type. The number of times you
can enter a designation and type depends on the value of a third property, Number of slots.

In the user interface, you first specify the number of slots , and then, for each slot, specify a
designation and type.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-65


© 2020 Siemens
6. Configuring Active Workspace features

The Number of slots property is referred to as the cardinality controller.

6-66 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
About polymorphism

About polymorphism

Polymorphism refers to the idea of displaying different sets of properties depending on the value of
another property. For example, when designing a power supply for mobile devices, two types of power
supplies are produced with the following connector types:

Regular Deluxe

Micro USB Micro USB

USB USB

Lightning Lightning

USB-Type C

Thunderbolt

The set (property block class) of connector types (properties) displayed depends on a property called
Type of power supply (key-LOV). This property is referred to as the polymorphism controller. On the
user interface, this is displayed as follows. A user can choose between a Regular or a Deluxe power
supply and the properties displayed vary.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-67


© 2020 Siemens
6. Configuring Active Workspace features

About revisioning and status

Classification standard taxonomy supports three statuses:

• Develop

• Released

• Retired

Every class, property, and key-LOV is created with a status.

• When you create a new object and do not specify a release status, it is automatically assigned the
Develop status. You can also specify the status explicitly:

6-68 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
About revisioning and status

This means the class is in a draft state. You can still modify it, for example, by adding or removing
attributes in a class, but you cannot yet use it to classify data.

• Once the editing work is complete, you change the status of the object to Released using the
clsutility command line utility as follows:

clsutility -u=user -p=password-g=group -update -status -request=JSON_file

The JSON file must have a format similar to the following:

{
"SchemaVersion":"1.0.0",
"Options":["recursive"],
"Status":"Released",
"ObjectIRDIList":
[
"TDOC#01-CLS001#001"
]
}

Running the utility using the recursive option changes the status of the CLS001 class, as well as all
the objects it references (properties, key-LOV definitions, blocks, aspects) from Develop to Released.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-69


© 2020 Siemens
6. Configuring Active Workspace features

Note:
Nodes do not have a status and cannot be used to change the status of the application classes
they reference.

A Released class is available in the user interface to classify your data. Released classes cannot be
modified.

• If you create a new revision of a class, the status of the previously existing revision is automatically
changed to Retired. All classified objects in the Retired class are automatically moved to the
Released class, with the exception of those that are already released.

• All revisions are imported with three digits, for example, 001. If revisions are less than three digits,
zeros are prefixed up to three digits so that 01 becomes 001. If you then search for revision 01, it is
not found.

After releasing a class, you must create a base view definition of the class. This improves the
performance of the system and allows you to modify the order of presentation of the class properties.

About aspects

An aspect is an eCl@ss object that represents a group of properties. In classification standard taxonomy
terms, an aspect is a kind of block class that can be referenced directly by another application class
without going through a block property first.

Example:

6-70 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
About aspects

The two class attributes, Front seat and Rear seat, in the application class reference block properties
that, in turn, reference property block classes. The third class attribute, Manufacturer Info, references
the aspect class directly. The aspect class groups the properties pertaining to the manufacturer in one
class.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-71


© 2020 Siemens
6. Configuring Active Workspace features

The aspect class is represented in the JSON file as follows:

The application class that references the aspect class is described as follows:

6-72 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Importing JSON files

Caution:
• When importing classes with aspects, you must first import the JSON file containing the aspect
classes. Next, you import the application class that references the aspect. You cannot import
these two types of classes using the same JSON file.

• You cannot reference an aspect class in a block class.

• Aspects cannot reference other aspects.

Importing JSON files

You create a CST hierarchy in Active Workspace by importing a series of JSON files containing both
hierarchy and data. The schema files defining the JSON format and example files are in the following
directory:

...\TD\classification\json\1.0.0\schema

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-73


© 2020 Siemens
6. Configuring Active Workspace features

The order in which you import these files is as follows:

1. Key-LOV definitions

2. Property definitions

3. Class definitions

4. Node definition (hierarchy)

5. Classification object data

Adhering to the import principle of only being able to reference objects that are already in the database,
when importing classes that reference other classes (for example, when importing aspects), you must
import the referenced classes first, and then, in a separate JSON file, import the referencing classes.

Data is imported from JSON files using the clsutility utility. In general, the syntax of this utility is:

clsutility-u=user -p=password -g=group -operation input/output file path

For more information about the available commands and their exact syntax, type clsutility -h for the
top-level help and clsutility -command-name -h for information about each available command.

The following table lists the supported objects and an example of the clsutility statements used to
import these object types.

Object Operation clsutility command

Key-LOV Import clsutility -u=user -p=password -g=group -create -keylov_definitions -request="path-to-


JSON-file"

Property Import clsutility -u=user -p=password -g=group -create -property_definitions -request="path-


definition to-JSON-file"

Class definition Import clsutility -u=user -p=password -g=group -create -class_definitions -request="path-to-
JSON-file"

Nodes Import clsutility -u=user -p=password -g=group -create -node_definitions -request="path-to-


JSON-file"

Application data Import clsutility -u=user -p=password -g=group -create classification_objects -request="path-
(ICOs) to-JSON-file"

6-74 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Importing the hierarchy and classes of car seats

Note:
There are pairs of very similar commands in the clsutility: classification_objects and
classification_object, or node_definitions and node_definition. Be sure to use the plural forms
of these commands (objects and definitions) for all CST imports. The singular refers to traditional
classification objects.

Preparing JSON files for import (example)

Importing the hierarchy and classes of car seats

This example walks you through creating and importing the JSON files required to describe a class
containing attributes that allow you to configure the seats in a car. The example consists of several
levels of complexity:

• Classify a car in a class containing simple properties, for example, a key-LOV with the type of seat
(front seat or back seat).

• Classify a car in a class containing reusable sets of properties (blocks).

• Specify the number of seats when classifying the car (cardinality).

• Specify the attributes shown depending on the type of seat selected (polymorphism).

• Specify the attributes shown for each seat when specifying multiple seats (cardinality and
polymorphism).

For each of these examples, the JSON files are explained, as well as the clsutility commands required to
import the JSON files.

To verify that the definitions in the following examples are correct or to create additional definitions,
consult the following schema files found in ...\TR\data\classification\json\desired-release:

• Classification_Save_KeyLOVDefinitions_Request.schema.json

• Classification_Save_PropertyDefinitions_Request.schema.json

• Classification_Save_ClassDefinitions_Request.schema.json

• Classification_Save_Nodes_Request.schema.json

• Classification_Save_PropertyRecords_Request.schema.json

There are many online JSON validators to assist you in creating JSON files with the proper syntax. We
recommend using any of these to verify the JSON files that you create prior to importing them.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-75


© 2020 Siemens
6. Configuring Active Workspace features

Note the following points about these examples:

• The definitions are imported with a release status of Develop. This ensures that you can still modify
them if required. When you are satisfied with the structure and classes, you must change the status to
Released. Objects can be classified only in Released classes.

• The TDOC name space is used to differentiate the structures imported in this example from other
structures that you use. Creating your own name space helps when creating queries.

Tip:
Although the hierarchy is displayed in the user interface as soon as you import JSON files, IRDIs are
not displayed anywhere in the user interface. To assist you in viewing the IRDIs of objects that you
import, use the clsutility -list -hierarchy command.

Import a class with simple properties

The simplest use case is to import a class containing properties. This example shows how to import a Car
class containing three properties:

• Type of seat
A key-LOV with two entries: Front and Back

• Manufacturer
A simple string property

• Adjustable headrests
A boolean property

In the user interface, this class is displayed as follows:

6-76 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with simple properties

The order when importing this class is to first import the key-LOV definitions, then the property
definitions, then the class definition, and finally the node definition so that the class is visible in the
classification hierarchy.

1. Import the key-LOV definition.

In classification standard taxonomy, a key-LOV definition is separate from its property definition.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-77


© 2020 Siemens
6. Configuring Active Workspace features

In this example, there is one key-LOV whose JSON definition is stored in a file titled
simpleKeylovDef.json:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"KeyLOVDefinitions": [
{
"ObjectType": "09",
"Namespace": "TDOC",
"ID": "KEY001",
"Revision": "001",
"Name": "Type of seat",
"Status": "Develop",
"LOVItems": {
"DataType": "String",
"LOVStringItems": [
{
"StringValue": "R",
"DisplayValue": "Rear Seat"
},
{
"StringValue": "F",
"DisplayValue": "Front Seat"
}
]
}
}
]
}

6-78 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with simple properties

2. Import the property definitions.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-79


© 2020 Siemens
6. Configuring Active Workspace features

In this example, there are three properties to import, one of which (Type of seat) is a key-LOV that
references the key-LOV definition imported in the previous step. The JSON definition for the
properties is stored in a file titled simplePropDef.json:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"PropertyDefinitions": [
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP001",
"Revision": "001",
"Status": "Develop",
"Name": "Type of seat",
"DataType": {
"Type": "String",
"KeyLOV": "TDOC#09-KEY001#001"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP002",
"Revision": "001",
"Name": "Manufacturer",
"Status": "Develop",
"DataType": {
"Type": "String"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP003",
"Revision": "001",
"Name": "Adjustable headrests",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
}

]
}

3. Import the class definition.

6-80 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with simple properties

The Car class contains only three properties: Type of seat, Manufacturer, and Adjustable
headrests:

The JSON file, named simpleApplicationClassDef.json, consists of the following:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"ClassDefinitions": [
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS001",
"Revision": "001",
"Name": "Car",
"Status": "Develop",
"IsAbstract": false,
"UnitSystem": 3,
"ClassType": "Application Class",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP001#001"
},
{

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-81


© 2020 Siemens
6. Configuring Active Workspace features

"Type": "Property",
"Reference": "TDOC#02-PRP002#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP003#001"
}
]
}
]
}

4. Import the node definition that makes the class visible in Active Workspace.

A nested hierarchy is required to organize the classes.

To import this hierarchy, create the following JSON file and name it simpleNodeDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"NodeDefinitions": [
{
"Namespace": "TDOC",
"ID": "CSTAE0",
"Revision": "001",
"Name": "Automotive Engineering"
},
{
"Namespace": "TDOC",
"ID": "CSTAA0",
"Revision": "001",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAE0",
"Revision": "001"
},
"Name": "Assemblies"
},

6-82 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with a reusable set of properties (blocks)

{
"Namespace": "TDOC",
"ID": "CSTAA1",
"Revision": "001",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAA0",
"Revision": "001"
},
"Name": "Cars"
},
{
"Namespace": "TDOC",
"ID": "CSTAA2",
"Revision": "001",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAA1",
"Revision": "001"
},
"Name": "Simple Car",
"ApplicationClass": {
"Namespace": "TDOC",
"ID": "CLS001",
"Revision": "001"
}
}
]
}

5. Import the definitions into the database.

Definitions are imported using the clsutility utility. Run each of the following commands in a
Teamcenter command window:

clsutility -u=user -p=password -g=group -create -keylov_definitions


-request="simpleKeylovDef.json"
clsutility -u=user -p=password -g=group -create -property_definitions
-request="simplePropDef.json"
clsutility -u=user -p=password -g=group -create -class_definitions
-request="simpleApplicationClassDef.json"
clsutility -u=user -p=password -g=group -create -node_definitions
-request="simpleNodeDef.json"

Import a class with a reusable set of properties (blocks)

Frequently, there is a group of properties that is always used together. For example, the following set of
properties describe a front seat and a rear seat:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-83


© 2020 Siemens
6. Configuring Active Workspace features

Front seat Rear seat

Material Material

Color Color

Adjustable headrests Adjustable headrests

Electrically adjustable seats Rear seat entertainment

Lumbar support

Heated seats

Each time you create a class, you could manually add each of these properties to the class to describe
each of these seat types. However, it is easier to group them and select a single property called Front
seat that contains all the required properties. This set of properties is called a property block. A property
block is a special kind of class.

6-84 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with a reusable set of properties (blocks)

Property blocks are referenced by block properties which, in turn, are referenced in the application class
containing the block properties:

To create the JSON files required to import these classes and properties:

1. Create the individual property definitions.

Create the following JSON file and save it in a file named blockPropDef.json as follows:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"PropertyDefinitions": [
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP004",

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-85


© 2020 Siemens
6. Configuring Active Workspace features

"Revision": "001",
"Status": "Develop",
"Name": "Material",
"DataType": {
"Type": "String"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP005",
"Revision": "001",
"Name": "Color",
"Status": "Develop",
"DataType": {
"Type": "String"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP003",
"Revision": "001",
"Name": "Adjustable headrests",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP006",
"Revision": "001",
"Name": "Electrically adjustable seats",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP007",
"Revision": "001",
"Name": "Lumbar support",
"Status": "Develop",
"DataType": {
"Type": "Boolean"

6-86 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with a reusable set of properties (blocks)

}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP008",
"Revision": "001",
"Name": "Heated seats",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP009",
"Revision": "001",
"Name": "Rear seat entertainment system",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP010",
"Revision": "001",
"Name": "Front seat",
"Status": "Develop",
"DataType": {
"Type": "Reference",
"BlockReference": "TDOC#01-CLS002#001"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP011",
"Revision": "001",
"Name": "Back seat",
"Status": "Develop",
"DataType": {
"Type": "Reference",
"BlockReference": "TDOC#01-CLS003#001"
}
}

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-87


© 2020 Siemens
6. Configuring Active Workspace features

]
}

The last two properties, PRP010 and PRP011 reference the two property block classes that hold the
sets of properties.

2. Create the class definitions, including the property block classes.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"ClassDefinitions": [
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS002",
"Revision": "001",
"Name": "Front seat",
"Status": "Develop",
"IsAbstract": true,
"UnitSystem": 3,
"ClassType": "Block",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP004#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP005#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP003#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP006#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP007#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP008#001"
}
]
},

6-88 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with a reusable set of properties (blocks)

{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS003",
"Revision": "001",
"Name": "Back seat",
"Status": "Develop",
"IsAbstract": true,
"UnitSystem": 3,
"ClassType": "Block",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP004#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP005#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP003#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP009#001"
}
]
},
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS004",
"Revision": "001",
"Name": "Car",
"Status": "Develop",
"IsAbstract": false,
"UnitSystem": 3,
"ClassType": "Application Class",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP010#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP011#001"
}
]

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-89


© 2020 Siemens
6. Configuring Active Workspace features

}
]
}

The first two classes, CLS002 and CLS003, are the property block classes and the third class,
CLS004, is the application class that references the two property blocks.

3. Import the node definition that makes the class visible in Active Workspace.

The Block car node must be displayed in the Cars node that you created in the first example. To do
this, import the new node specifying the Car node, CSTAA1, as the parent. Save the following in a
file named blockNodeDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"NodeDefinitions": [
{
"Namespace": "TDOC",
"ID": "CSTAA3",
"Revision": "001",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAA1",
"Revision": "001"
},
"Name": "Block Car",
"ApplicationClass": {
"Namespace": "TDOC",
"ID": "CLS004",
"Revision": "001"
}
}
]
}

4. Import the definitions into the database.

Definitions are imported using the clsutility utility. Run each of the following commands in a
Teamcenter command window:

clsutility -u=user -p=password -g=group -create -property_definitions


-request="blockPropDef.json"
clsutility -u=user -p=password -g=group -create -class_definitions
-request="blockClassDef.json"
clsutility -u=user -p=password -g=group -create -node_definitions
-request="blockNodeDef.json"

The structure in Active Workspace is displayed as follows:

6-90 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with cardinal properties

Import a class with cardinal properties

This example shows how to create a class where we can specify the number of seat rows in a car during
classification. For example, when classifying a sports car, there is only one row of seats, so only one set
of seat properties is necessary. When classifying a family van, there are three rows of seats that each
need a set of properties to describe them.

We begin with a set of properties, a property block:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-91


© 2020 Siemens
6. Configuring Active Workspace features

This property block class contains the same attributes as in the previous example, but additionally
includes a new key-LOV property, Type of seat, where you can specify whether the seats are front, back,
or third-row seats.

The number of times that this block of properties is displayed in the user interface is determined by a
special property called a cardinality controller:

6-92 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with cardinal properties

A cardinality controller is referenced by another property and is only of significance if set to true. If this
is the case, then the user can specify the number of times that the set of properties is displayed.

To create the JSON files required to import these classes and properties:

1. Create the key-LOV definitions.

This example introduces a new key-LOV, Type of seat, with three values, Front, Rear, and Third.
Save the following in a file named cardinalKeyLOVDef.json

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"KeyLOVDefinitions": [
{
"ObjectType": "09",
"Namespace": "TDOC",
"ID": "KEY002",
"Revision": "001",
"Name": "Type of seat",
"Status": "Develop",

"LOVItems": {

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-93


© 2020 Siemens
6. Configuring Active Workspace features

"DataType": "String",
"LOVStringItems": [
{
"StringValue": "F",
"DisplayValue": "Front"
},
{
"StringValue": "R",
"DisplayValue": "Rear"
},
{
"StringValue": "T",
"DisplayValue": "Third row"
}
]
}
}
]
}

2. Create the individual property definitions.

There are three new properties in this example: Type of seat that references the new key-LOV,
Seat, the property that specifies the property block class that is to be displayed and acts as an
indicator that cardinality is involved, and the Number of seats that holds the count.

Save the following in a file named cardinalPropDef.json:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"PropertyDefinitions": [
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP012",
"Revision": "001",
"Name": "Type of seat",
"Status": "Develop",
"DataType": {
"Type": "String",
"KeyLOV": "TDOC#09-KEY002#001"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP013",

6-94 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with cardinal properties

"Revision": "001",
"Name": "Seat",
"Status": "Develop",
"DataType": {
"Type": "Reference",
"BlockReference": "TDOC#01-CLS005#001",
"CardinalityController": "TDOC#02-PRP014#001"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP014",
"Revision": "001",
"Name": "Number of seats",
"Status": "Develop",
"DataType": {
"Type": "Integer"
}
}
]
}

3. Create the class definitions, including the property block classes.

This example introduces two new classes, CLS005, the property block class, and CLS006, the
application class. Save the following in a file named cardinalPropDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"ClassDefinitions": [
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS005",
"Revision": "001",
"Name": "Seat properties",
"Status": "Develop",
"IsAbstract": true,
"UnitSystem": 3,
"ClassType": "Block",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP012#001"
},
{
"Type": "Property",

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-95


© 2020 Siemens
6. Configuring Active Workspace features

"Reference": "TDOC#02-PRP004#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP005#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP006#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP003#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP007#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP008#001"
}
]
},
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS006",
"Revision": "001",
"Name": "Cardinal car",
"Status": "Develop",
"IsAbstract": false,
"UnitSystem": 3,
"ClassType": "Application Class",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP013#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP014#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP002#001"
}
]
}

6-96 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with cardinal properties

]
}

4. Import the node definition that makes the class visible in Active Workspace.

The Cardinal car node must be displayed in the Cars node that we created in the first example. To
do this, import the new node specifying the Car node, CSTAA1, as the parent. Save the following
in a file named cardinalNodeDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"NodeDefinitions": [
{
"Namespace": "TDOC",
"ID": "CSTAA4",
"Revision": "001",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAA1",
"Revision": "001"
},
"Name": "Cardinal car",
"ApplicationClass": {
"Namespace": "TDOC",
"ID": "CLS006",
"Revision": "001"
}
}
]
}

5. Import the definitions into the database.

Definitions are imported using the clsutility utility. Run each of the following commands in a
Teamcenter command window:

clsutility -u=user -p=password -g=group -create -property_definitions


-request="cardinalPropDef.json"
clsutility -u=user -p=password -g=group -create -class_definitions
-request="cardinalClassDef.json"
clsutility -u=user -p=password -g=group -create -node_definitions
-request="cardinalNodeDef.json"

The structure in Active Workspace is displayed as follows:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-97


© 2020 Siemens
6. Configuring Active Workspace features

After specifying the number of seats in , that number of Seat property blocks is displayed . You
can assign different values for each seat row. With the new key-LOV , you can specify a separate type
of seat for each row.

Import a class with polymorphic properties

This example shows how to create a class where we can specify the properties displayed depending on
the type of seat row in a car that you select during classification. The following table displays the
different properties available for each seat row type:

6-98 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with polymorphic properties

Front seat Rear seat

Material Material

Color Color

Adjustable headrests Adjustable headrests

Electrically adjustable seats Rear seat entertainment

Lumbar support

Heated seats

These are the same properties used in the second example. The difference is that in this example, you
can specify the seat type during classification and, depending on this selection, display different
properties. The concept of displaying different properties depending on the value of an additional
property is referred to as polymorphism.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-99


© 2020 Siemens
6. Configuring Active Workspace features

This example contains two classes describing the front and rear seats:

Each of the property block classes contains a special property that specifies the type of seat. This
property references a key-LOV with the values Front or Rear.

6-100 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with polymorphic properties

The following application class contains the polymorphic Seat property that references the key-LOV.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-101


© 2020 Siemens
6. Configuring Active Workspace features

Another property that references the key-LOV, PRP016, contains the isPolymorphismController
attribute. When this property is used in a property block class (CLS0007 or CLS008), the
isPolymorphismController attribute indicates that the property is polymorphic and that its value
determines the list of class properties displayed in the user interface.

To create the JSON files for this example:

1. Create the key-LOV definition.

This example introduces one new key-LOV that is saved in a file called
polymorphicKeylovDef.json:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",

6-102 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with polymorphic properties

"KeyLOVDefinitions": [
{
"ObjectType": "09",
"Namespace": "TDOC",
"ID": "KEY003",
"Revision": "001",
"Name": "Type of seat",
"Status": "Develop",
"LOVItems": {
"DataType": "Reference",
"LOVReferenceItems": [
{
"StringValue": "F",
"DisplayValue": "Front",
"BlockReference": "TDOC#01-CLS007#001"
},
{
"StringValue": "R",
"DisplayValue": "Rear",
"BlockReference": "TDOC#01-CLS008#001"
}
]
}
}
]
}

The values of the key-LOV, Front and Rear, reference their respective property block classes,
CLS007 and CLS008.

2. Create the individual property definitions.

This example uses many of the properties created in the earlier examples, as well as two new
properties. Create the following JSON file and save it in a file named polymorphicPropDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"PropertyDefinitions": [
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP015",
"Revision": "001",
"Name": "Type of seat",
"Status": "Develop",
"DataType": {
"Type": "Reference",

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-103


© 2020 Siemens
6. Configuring Active Workspace features

"BlockReference": "TDOC#09-KEY003#001"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP016",
"Revision": "001",
"Name": "Seat",
"Status": "Develop",
"DataType": {
"Type": "String",
"KeyLOV": "TDOC#09-KEY003#001",
"IsPolymorphismController": true
}
}
]
}

PRP016 contains the IsPolymorphismController attribute.

3. Create the class definitions, including the property block classes.

This example introduces two new property block classes very similar to those in the block class
example, but additionally containing the polymorphic PRP016 property. Save this in a file named
polymorphicClassDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"ClassDefinitions": [
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS007",
"Revision": "001",
"Name": "Front seat",
"Status": "Develop",
"IsAbstract": true,
"UnitSystem": 3,
"ClassType": "Block",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP016#001"
},
{
"Type": "Property",

6-104 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with polymorphic properties

"Reference": "TDOC#02-PRP004#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP005#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP006#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP003#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP007#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP008#001"
}
]
},
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS008",
"Revision": "001",
"Name": "Back seat",
"Status": "Develop",
"IsAbstract": true,
"UnitSystem": 3,
"ClassType": "Block",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP016#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP004#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP005#001"
},
{
"Type": "Property",

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-105


© 2020 Siemens
6. Configuring Active Workspace features

"Reference": "TDOC#02-PRP003#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP009#001"
}
]
},
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS009",
"Revision": "001",
"Name": "Polymorphic car",
"Status": "Develop",
"IsAbstract": false,
"UnitSystem": 3,
"ClassType": "Application Class",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP015#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP002#001"
}
]
}
]
}

The application class CLS009 references PRP015, which is associated with the polymorphic
attribute PRP016 through the key-LOV.

4. Import the node definition that makes the class visible in Active Workspace.

The Polymorphic car node must be displayed in the Cars node that we created in the first
example. To do this, import the new node specifying the Car node CSTAA1 as the parent. Save the
following in a file named polymorphicNodeDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"NodeDefinitions": [
{
"Namespace": "TDOC",
"ID": "CSTAA5",

6-106 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with polymorphic and cardinal properties

"Revision": "001",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAA1",
"Revision": "001"
},
"Name": "Polymorphic car",
"ApplicationClass": {
"Namespace": "TDOC",
"ID": "CLS009",
"Revision": "001"
}
}
]
}

5. Import the definitions into the database.

Definitions are imported using the clsutility utility. Run each of the following commands in a
Teamcenter command window:

clsutility -u=user -p=password -g=group -create -keylov_definitions


-request="polymorphicKeylovDef.json"
clsutility -u=user -p=password -g=group -create -property_definitions
-request="polymorphicPropDef.json"
clsutility -u=user -p=password -g=group -create -class_definitions
-request="polymorphicClassDef.json"
clsutility -u=user -p=password -g=group -create -node_definitions
-request="polymorphicNodeDef.json"

Import a class with polymorphic and cardinal properties

This example shows how to create a class where you can first specify the number of seat rows a car has
during classification. For each seat row, the properties displayed depend on the type of seat row that
you select.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-107


© 2020 Siemens
6. Configuring Active Workspace features

This example uses the same two property block classes as the previous example, describing the front
and rear seats:

6-108 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with polymorphic and cardinal properties

Again, these classes are referenced by the same key-LOV as in the previous example, which determines
which of these classes is displayed:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-109


© 2020 Siemens
6. Configuring Active Workspace features

The application class references the properties that determine the polymorphism and cardinality:

6-110 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import a class with polymorphic and cardinal properties

After completing the previous examples, there are only a few new objects required to import this
example. To create the JSON files for this example:

1. Create the individual property definitions.

This example uses PRP014 created in the cardinality example and PRP016 created in the
polymorphism example. One new property is required that references the key-LOV created in the
polymorphism example. Create the following JSON file and save it in a file named
poly_cardPropDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"PropertyDefinitions": [
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP017",

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-111


© 2020 Siemens
6. Configuring Active Workspace features

"Revision": "001",
"Name": "Seat",
"Status": "Develop",
"DataType": {
"Type": "Reference",
"BlockReference": "TDOC#09-KEY003#001",
"CardinalityController": "TDOC#02-PRP014#001"
}
}
]
}

This property references the key-LOV definition, as well as the cardinality controller property. The
polymorphism is achieved by the reference of PRP016 to the key-LOV.

2. Create the class definitions.

This example introduces only one new application class. Save this in a file named
poly_cardClassDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"ClassDefinitions": [
{
"ObjectType": "01",
"Namespace": "TDOC",
"ID": "CLS010",
"Revision": "001",
"Name": "Polymorphic cardinal car",
"Status": "Develop",
"IsAbstract": false,
"UnitSystem": 3,
"ClassType": "Application Class",
"ClassAttributes": [
{
"Type": "Property",
"Reference": "TDOC#02-PRP014#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP017#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP002#001"
}
]

6-112 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Deleting CST structures and data

}
]
}

3. Import the node definition that makes the class visible in Active Workspace.

The Polymorphic cardinal car node must be displayed in the Cars node that we created in the first
example. To do this, import the new node specifying the Car node CSTAA1 the as parent. Save the
following in a file named poly_cardNodeDef.json.

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"NodeDefinitions": [
{
"Namespace": "TDOC",
"ID": "CSTAA6",
"Revision": "001",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAA1",
"Revision": "001"
},
"Name": "Polymorphic cardinal car",
"ApplicationClass": {
"Namespace": "TDOC",
"ID": "CLS010",
"Revision": "001"
}
}
]
}

4. Import the definitions into the database.

Definitions are imported using the clsutility utility. Run each of the following commands in a
Teamcenter command window:

clsutility -u=user -p=password -g=group -create -property_definitions


-request="poly_cardPropDef.json"
clsutility -u=user -p=password -g=group -create -class_definitions
-request="poly_cardClassDef.json"
clsutility -u=user -p=password -g=group -create -node_definitions
-request="poly_cardNodeDef.json"

Deleting CST structures and data

Deleting objects is performed using clsutility with the -delete arguments. You may delete any of the
following using the utility:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-113


© 2020 Siemens
6. Configuring Active Workspace features

• Nodes

• Classification objects

• Classes

• Properties

• Key-LOVs

The utility requires a JSON file as input. The format for the JSON is found in the schema directory. The
following example contains the request used to test (using the dryrun option) whether the TDOC#01-
CLS001#001 class and all the objects it references (including other block classes, key-LOVs, and
properties) can be deleted:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"Options": [ "recursive", "dryrun"],
"ObjectIRDIList": [
"TDOC#01-CLS001#001"
]
}

To actually delete the class and all the objects it references, remove the dryrun option in the JSON
request file and run the clsutility -delete command again.

Note the following:

• To delete a branch in the classification hierarchy, delete the topmost class in the branch using the
recursive argument. This deletes everything from that class downwards and prevents you from
having to list all objects requiring deletion individually.

• You cannot delete a class in which objects are classified. You must first delete the classifications and
then the classes.

Managing views for CST data

Views are used to display all or a subset of the properties in a class in the user interface. There are two
types of views used in classification classes:

Base view A base view is used internally to cache data required to display the class, helping to
improve performance. Additionally, you can use the base view to modify the order in
which the properties of a class are displayed in the user interface. For best results,
create a base view for each application class in a Released state.

6-114 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Managing views for CST data

If no other view exists in the class, the user interface displays the properties contained
in the base view.
User, group, These types of views are used to override the order of properties in the base view and
or role view limit the number of properties shown to different types of users based on their needs.
For example, an Engineering group may need to see one group of properties, whereas
a Logistics group needs to see a different group of properties. You can create views for
specific groups, roles, or individual users.

Note:
You can create views only for application classes. Because of this, you can influence the order in
which properties, blocks, and aspects are displayed in a class, but you cannot influence the order
of properties within blocks or aspects.

Creating base views in bulk

When you use the following commands, you can quickly create base views.

• To create base views for every released application class, type:

clsutility -create -base_view_definitions

This command creates a base view definition for every application class in the Released state. If an
application class already has a base view, it is skipped.

• To create a base view for a specific application class, type:

clsutility -create -base_view_definitions -class_definition=IRDI of class

This command creates a base view for the application class with the specified IRDI.

• To create a base view for all released application classes, regardless of whether they already have one:

clsutility -create -base_view_definitions -force

This command creates a new base view definition for every application class in the Released state
and overwrites any existing base view.

You cannot use the -create -base_view_definitions command to modify the order in which class
properties are displayed in the user interface. To do this, you must use the -create -view_definitions
command and specify the ViewType as BaseView in the JSON input file.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-115


© 2020 Siemens
6. Configuring Active Workspace features

Creating views using the -create -view_definitions command

You create user, group, or role views by importing a JSON file that defines the properties that are
displayed for each group, role, or user in the user interface. The properties of the class are displayed in
their order of appearance in the JSON file (from top to bottom). You can include only properties in the
views that already exist in the base view of the class. Hide attributes by excluding them in the JSON file
for the view.

The schema file describing the JSON format is found here:

...\TD\classification\json\1.0.0\schema
\Classification_Save_ViewDefinitions_Request.schema.json

Refer also to the sample import file found here:

...\TD\classification\json\1.0.0\samples
\Classification_Save_ViewDefinition_Request_sample.json

To create a group, role, or user view containing properties in a specific order:

clsutility -create -view_definitions -request=JSON file

The format of the input file must resemble the following:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"ViewDefinitions": [
{
"ClassDefinition": "TDOC#01-APPC04#001",
"ViewType": "GroupView",
"ViewId": "Engineering",
"ViewAttributes": [
{
"IRDI": "TDOC#02-PDF015#001"
},
{
"IRDI": "TDOC#02-PDF016#001"
}
]
},
{
"ClassDefinition": "TDOC#01-APPC04#001",
"ViewType": "RoleView",
"ViewId": "Designer",
"ViewAttributes": [
{
"IRDI": "TDOC#02-PDF011#001"

6-116 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Managing views for CST data

},
{
"IRDI": "TDOC#02-PDF014#001",
"IsProtected": true,
"IsRequired": true
}
]
},
{
"ClassDefinition": "TDOC#01-APPC04#001",
"ViewType": "UserView",
"ViewId": "JSmith",
"ViewAttributes": [
{
"IRDI": "TDOC#02-PDF012#001"
},
{
"IRDI": "TDOC#02-PDF013#001"
}
]
}
]
}

Notice that you can specify whether a property value must be entered for a property (IsRequired) or
whether it is protected and cannot be modified in the user interface (IsProtected).

To create a base view to reorder its properties, the input must resemble the following:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"ViewDefinitions": [
{
"ClassDefinition": "TDOC#01-APPC04#001",
"ViewType": "BaseView",
"ViewId": "BaseView",
"ViewAttributes": [
{
"IRDI": "TDOC#02-PDF013#001"
},
{
"IRDI": "TDOC#02-PDF015#001"
},
{
"IRDI": "TDOC#02-PDF011#001",
"IsProtected": true
},
{

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-117


© 2020 Siemens
6. Configuring Active Workspace features

"IRDI": "TDOC#02-PDF014#001",
"IsRequired": true
},
{
"IRDI": "TDOC#02-PDF012#001"
},
{
"IRDI": "TDOC#02-PDF016#001"
}
]
}
]
}

Finding view definitions

You can also extract an existing view definition from the database using the following command:

clsutility -find -view_definitions -request=JSON file name

The JSON schema file for the -find command is found in:

...\TD\classification\json\1.0.0\schema\Classification_Find_View_Request.schema.json

Refer also to the sample file found here:

...\TD\classification\json\1.0.0\samples
\Classification_Find_ViewDefinition_Request_sample.json

The JSON file must resemble the following:

{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"ViewDefinitions": [
{
"ClassDefinition": "TDOC#01-APPC10#001"
},
{
"ClassDefinition": "TDOC#01-APPC12#001",
"ViewType": "GroupView"
},
{
"ClassDefinition": "TDOC#01-APPC09#001",
"ViewId": "JSmith"
},
{
"ClassDefinition": "TDOC#01-APPC08#001",

6-118 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Managing views for CST data

"ViewType": "GroupView",
"ViewId": "Engineering"
},
{
"ViewType": "UserView",
"ViewId": "JSmith"
},
{
"ViewId": "MNancy"
},
{
"ClassDefinition": "TDOC#01-APPC11#001",
"ViewType": "BaseView",
"ViewId": "BaseView"
}
]
}

It is not necessary to uniquely identify each view that you want to display. It is sufficient to just request;
for example, all the views for a particular class:

{
"ClassDefinition": "TDOC#01-APPC10#001"
}

Alternatively, you could request all user views for a particular user:

{
"ViewType": "UserView",
"ViewId": "JSmith"
}

Listing the class descriptor for a view

Whereas a class definition describes only the class, or a key-LOV definition only one key-LOV, the class
descriptor compiles all the definitions required to describe an ICO. Each node of the hierarchy shares a
class descriptor. The class descriptor provides a view on the data from the classification consumer
perspective.

To obtain the class descriptor for a particular view:

clsutility -get -class_descriptor -request=JSON file name

The schema file explaining the required JSON syntax is found in:

...\TD\classification\json\1.0.0\schema\Classification_Get_ClassDescriptor_Request.schema.json

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-119


© 2020 Siemens
6. Configuring Active Workspace features

Deleting view definitions

To delete a view definition, type:

clsutility -find -view_definitions -request=JSON file name

When deleting, the JSON request file uses the same schema as the JSON find request.

Note:
Be careful when deleting base views. For performance reasons, a released class should always
contain a base view. It is advisable to overwrite an undesired base view with a corrected version
instead of deleting it.

Deleting a class definition deletes all views belonging to the class.

Exporting classified objects

To export the classification information (the ICO) for an object classified in a CST hierarchy, use the
following clsutility command:

clsutility -u=user -p=password-g=group -find -classification_objects -request=JSON_file -


output=path-to-output-file

This command requires a JSON file resembling the following (see the
Classification_FindRequest.schema.json schema file):

{
"SchemaVersion": "1.0.0",
"Locale" : "en_US",
"ObjectIDList": [
{
"ID": "026144/A"
}
]
}

The input JSON file contains a list of object IDs for which the ICO information is exported to a file of your
choice.

Converting XML files to JSON

Converting eCl@ss data to JSON

eCl@ss data is generally delivered in two formats:

6-120 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Converting eCl@ss data to JSON

• ONTO ML XML
Hierarchy (segment) data downloaded from the eCl@ss website is delivered in this format.

• BMECAT XML
Classification objects that are downloaded from the Siemens Industry Mall website are delivered in
this format.

To import this data into Active Workspace, it must be converted into the JSON file format. You can do
this with the eclass2json utility.

This utility is launched using a platform-independent Perl script and is configured using the
eclass2json.properties file found in the same directory:

..\TR\bin\eclass2json

The utility functions by outputting a variety of data to temporary files that it then references to create
the JSON files. For this reason, the correct creation of the JSON files requires running the utility to
output objects individually in the following sequence:

Sequence Object objectType name used by utility

1. Hash maps (temporary files) hashmaps

2. Units unitsmap

3. Key-LOVs keylovs

4. Properties properties

5. Aspects aspects

6. Blocks blocks

7. Application classes applicationClasses

8. Classification classes classificationClasses

9. Classification objects data

The utility requires a specific directory structure that it uses to find its input, as well as to store the
completed JSON files. As input, this directory must contain the extracted XML files to be converted.
During processing, the utility creates subdirectories for both the temporary hash map files and the newly
created JSON files.

The properties file consists of several sections. The first section contains default input parameters. Each
of these can be overridden in the second section of the file. Furthermore, in the properties file, you can
specify multiple configurations, allowing you to use the same properties file to convert various different
types of data (for example, eCl@ss91 and eCl@ss10). For example, for an import of eCl@ss91 advanced
data, you might name your configuration eclass_9_1_advanced. The configuration name can be any

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-121


© 2020 Siemens
6. Configuring Active Workspace features

contiguous string. The name is used solely by the utility and is not displayed in the user interface after
import.

Tip:
Each property can also be overridden in the command line arguments. See the
eclass2json.properties file for the correct syntax.

To import classification objects (ICOs), it is recommended to create a unique configuration to describe


the location of the BMECAT XML files, and to import these after completely importing the hierarchy
files.

Default value priority

The eclass2json utility searches for property values in a specific order:

1. cfgName.objType.propertyName
2. cfgName.propertyName
3. objType.propertyName
4. propertyName

For example, consider the following set of property values:

eClass91.hashMaps.baseDirectory = C:\\hashmaps

eClass101.baseDirectory = C:\\baseDirectory

baseDirectory=C:\\classification\\baseDirectory

If the utility is run for hash maps and the eClass101 configuration, the hash maps are stored in C:\
\baseDirectory. For any other configuration, such as my_configuration, the hash maps are stored in
the C:\\classification\\baseDirectory directory because the utility first looks if there is a property called
my_configuration.hashMaps.baseDirectory, and then it looks whether there is a property called
my_configuration.baseDirectory. After that, it searches for a directory called
hashmaps.baseDirectory and finally, it looks for baseDirectory. As the only result the utility finds is the
simple baseDirectory, this value is chosen.

Run the eclass2json utility

1. Create a backup copy of the eclass2json.properties file.

2. Open the eclass2json.properties file in a text editor. The following properties are listed in the
default section at the top of the file:

6-122 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Run the eclass2json utility

Property Description

eclassVersion Describes the eCl@ss version of the data to be converted.

eclassLevel Can be either ADVANCED or BASIC.

segment Refers to the portion of the hierarchy to be converted and must be


expressed in a five-character string, for example, SG_27.

status Specifies the status the data will have in the database after
conversion. It can be either Develop or Released. You can classify
in released classes only.

objectCountPerFile Specifies the maximum number of objects described in a file.

topLevelNode Specifies the name of the node in the classification hierarchy in


Active Workspace that contains the segment data that you import.

baseDirectory Describes the path to a directory that you create in your operating
system. This directory must contain the input files. Other file paths
specified in the eclass2json.properties file are specified relative to
this path.

xmlFileDirectory Specifies the path to the directory holding the XML files to be
converted. This path must be specified relative to the
baseDirectory path.

xmlFileNameBase Specifies the name of the XML segment file to be converted, for
example, eClass9_1_ADVANCED_EN_.

xmlFileName Specifies the name of the units file, for example,


eClass9_1_UnitsML_EN_DE.xml.

xmlFileNameLocale For data (BMECAT) files only, specifies which language version of
the input file is to be used. For example, if you downloaded data for
both English and German, files such as the following XML files are
found in the input directory:

CAx_171117_92926_deu.xml

CAx_171117_92926_eng.xml

The string specified here must exactly match the text used in the
file name. To convert the German files, then, the property must be
stated as:

xmlFileNameLocale = deu

xmlFileNameExtension For data (BMECAT) files only, specifies the file type, for example,
xml.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-123


© 2020 Siemens
6. Configuring Active Workspace features

Property Description

WSO.revision_separator Specifies the separator between item ID and item revision that is
used at import when creating a classified item revision in Active
Workspace.

WSO.revision_id Specifies the revision ID which is later used to create a revision of


this ID (or to classify a revision of this ID) when importing the
JSONs into Active Workspace.

jsonOutputDirectory Specifies the name of the directory in which the utility places the
JSON files it creates. The utility creates this directory in the base
directory.

hashMapDirectory Specifies the name of the directory in which the utility places the
temporary files it creates for further reference. The utility creates
this directory in the base directory.

The values you set here for the path, file name, file name base, and file name extension are used
by the utility to construct the complete paths to the files it requires. It is important that you set
them exactly as they are shown in your operating system.

3. Examine these properties and modify them based on your directory structures. If you want to save
several import configurations (for example, eCl@ss91 and eCl@ss10) in the same properties file,
navigate to the bottom of the file and enter the overriding properties in the following format:

configuration-name.property-name = value

For example, to import segment 13 instead of the default segment 27, enter:

eclass_9_1_advanced.segment = SG_13

4. Obtain the hierarchy data from the eCl@ss website and extract the contents into a directory.

5. Enter the path to this directory as the value for the eclass_9_1_advanced.baseDirectory in the
overrides section of the properties file.

6. When you are satisfied that the properties file adequately describes the location of the input data
as well as the desired property values and output locations, save the file and open a Teamcenter
command prompt.

7. Call the Perl script in the required order. The following example displays the commands for the
eclass_9_1_advanced configuration:

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced


-objectType:hashmaps

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced


-objectType:keylovs

6-124 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Converting BMECAT XML files to JSON

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced


-objectType:properties

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced


-objectType:blocks

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced


-objectType:aspects

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced


-objectType:applicationClasses

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced


-objectType:classificationClasses

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced


-objectType:data

After running these commands, the base directory contains a folder for the temporary files and a
folder for the JSON files.

8. Import the newly created JSON files into the database as described in Importing JSON files.

Converting BMECAT XML files to JSON

Siemens classifies their product data according to the eCl@ss standard. When downloading data from
the Siemens Industry Mall, you can choose to download CAx data that is delivered in the BMECAT XML
file format. This data is provided as a zipped file that you unpack in a directory on your operating
system. The files of interest for the eclass2json conversion utility are found in the 01_Product-Master-
Data directory.

The BMECAT data is contained in a different file structure than the eCl@ss data. Consider this when
modifying the eclass2json.properties file. For example, if you are importing property records for a
configuration called eclass_9_1_advanced, you must overwrite the path properties with the correct
information for the -objectType=data step. For a directory structure such as the following:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-125


© 2020 Siemens
6. Configuring Active Workspace features

An example of some of the properties is as follows:

eclass_9_1_advanced.data.baseDirectory = C:\\baseDirectory\
\caxxonline_ECLASS90_190212_105539

eclass_9_1_advanced.data.xmlFileNameDirectory = 01_Product-Master-Data

eclass_9_1_advanced.data.xmlFileNameLocale = eng

During conversion, the utility creates a property record (classification object) for each PRODUCT in the
XML file . The FEATURES are used to create properties. The MANUFACTURER_PID is used to create
the classification object ID .

BMECAT XML file:

JSON file:

6-126 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Import eCl@ss units

The REFERENCE_FEATURE_GROUP is used to create the hierarchical position. The first two digits,
in this case, 27, indicate the segment being converted.

The utility creates a section in the JSON file for a classified object and uses the
MANUFACTURER_PID to identify the item ID. During import, the utility checks whether there is an item
revision in the database with that ID. If so, it is automatically classified. If not, the item revision is
created and automatically classified. The DESCRIPTION_SHORT is used as the classification object
description .

Import eCl@ss units

When viewing classification data in Active Workspace, you can convert between units that exist in the
database. The eCl@ss standard data packages include a large number of unit definitions. These are
contained in an XML file in the eCl@ss data package that you downloaded. To be able to convert
between units when using eCl@ss data in Active Workspace, you must first import the units into the
database.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-127


© 2020 Siemens
6. Configuring Active Workspace features

Units with conversion Units without conversion

1. Open the eclass2json.properties file in a text editor. This file can be found in:

..\TR\bin\eclass2json

2. Modify the baseDirectory, xmlFileDirectory, xmlFileNameBase, baseDirectory and


xmlFileName parameters to form the correct path to the eCl@ss units file.

Ensure that the eCl@ss version of the unit file that you use matches the version of the eCl@ss data
in your database.

3. Modify the jsonOutputDirectory parameter to point to an appropriate directory.

4. Convert the unit definition file to JSON with the eclass2json utility:

%TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -objectType:units

5. Import the newly created JSON file found in the jsonOutputDirectory folder as follows:

clsutility -create -unit_definitions -request=JSON file

The eCl@ss units are now available for use in the user interface. When converting between measures,
the value is stored in the object's unit system (the one chosen in the Unit System radio buttons at the
top of the Properties section). For example, if a property's base unit is mm and if the unit system of an
object is metric, even if you set the value of the Net weight property to lb or kg, internally, the value is
converted to mm before being stored.

Working in CST and traditional classification simultaneously

Classify with CST and ICS simultaneously

Both CST and traditional classification classes can co-exist in a single environment.

6-128 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Classify with CST and ICS simultaneously

In this case, the nodes reference the appropriate class type: For traditional classification, a node
references ICS classes and for CST, it references CST classes.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-129


© 2020 Siemens
6. Configuring Active Workspace features

The CLS_is_presentation_hierarchy_active user preference determines whether nodes or classes are


displayed in the hierarchy. If this preference is set to true, only nodes are displayed in the hierarchy. If it
is set to false, traditional classes are displayed.

Note:
The CLS_is_presentation_hierarchy_active preference is not delivered by default. You must add
it manually.

Traditional classification (ICS) classes must be extended to the presentation hierarchy as follows:

1. Extend classes to the presentation layer using clsutility

2. Synchronize the presentation layer with the classification hierarchy

Extend classes to the presentation layer using clsutility

1. Extend classification data to the presentation layer by running the following command line utility:

clsutility -import -hierarchy -cid=group-or-class-ID

This command extends the classification subhierarchy under the specified group or class.

6-130 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Synchronize the presentation layer with the classification hierarchy

• For classification groups, running this utility creates presentation layer group nodes with the
same ID as the associated groups.

• For classification classes, running this utility creates presentation layer master nodes with the
storage_class_type property corresponding to their associated classes.

Additional optional arguments:

• -include_instances
Includes ICOs in the subhierarchy.

• -exclude_children
Excludes the subhierarchy. It extends the specified group or class only.

2. (Optional) Synchronize the presentation layer with the classification hierarchy.

Synchronize the presentation layer with the classification hierarchy

Use one of the following methods to synchronize the presentation layer with the underlying
classification hierarchy:

• Manually run clsutility.

• Enable automatic synchronization that shadows specific operations by setting the


CLS_auto_sync_node_hierarchy preference to true.
When at least the top-level node of the storage and presentation hierarchies are linked, the
synchronization mechanism is triggered by a change to groups, classes, or ICOs in the storage
hierarchy and results in the following changes to the presentation hierarchy.

Operation on class Operation required on node hierarchy


hierarchy

Add/delete group Add/delete group node

Add/delete class Add/delete master node

Add/delete class ICO Add/delete classification element

Copy/paste or cut/paste of a Copy/paste or cut/paste of a group node


group

Copy/paste or cut/paste of a Copy/paste or cut/paste of a master node


class

The synchronization mechanism functions as follows:

• If a target is not found in the presentation hierarchy, it is created (applies to node or element).

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-131


© 2020 Siemens
6. Configuring Active Workspace features

■ To create a node in the presentation hierarchy, Teamcenter matches the parent node with the
parent class.

■ To create an element in the presentation node, Teamcenter matches the node with the storage
class.

• To find targets, Teamcenter searches for the following:

■ A group node with the same ID as the classification group

■ A master node with the storage class type property pointing to the associated classification class

■ A classification element referencing the associated ICO

The objects in the hierarchies are mapped as follows.

Object types from Corresponding object types from the


Classification (class presentation layer (node hierarchy)
hierarchy)

Group Group node

Abstract class Master node

Storage class Master node

Classification object (ICO) Classification element (ICO)

Migrating traditional classification to classification standard taxonomy

Classification standard taxonomy (CST) offers some features that traditional classification does not.
Additionally, in the future, CST will be regularly enhanced. For this reason, you may want to consider
migrating your traditional classification classes to the CST format. To do this, you can run the following
utility:

clsutility -migrate -classification2cst -cid=class-ID

Caution:
It is strongly recommended that you test the migration of your classes in a staging environment
and evaluate the results. Deploy the migration in production only when you are completely
satisfied with the test results.

This utility argument migrates one traditional classification class and all the objects (properties,
dictionary attributes, and key-LOVs) referenced by that class, as well as all the parent classes, to the CST
format. Optionally, the utility can also convert any ICOs already existing in the class using the following
command:

6-132 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Migrating traditional classification to classification standard taxonomy

clsutility -migrate -classification2cst -cid=class-ID -include_icos

Running the utility creates a class in the database with an automatically generated IRDI. This IRDI is
displayed in the utility output. Additionally, node definitions are created for application classes so that
the migrated CST classes are visible and can be used for classification.

All nodes are created at the root level.

You must set the following two preferences to run the migration:

• CST_Classification_to_cst_namespace
This preference specifies the namespace of all CST objects created by the migration utility.

• CST_classification_to_cst_status
This preference specifies the status of the CST objects created by the migration utility. Valid values are
Develop, Released, or Retired. Objects set to Released can no longer be modified.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-133


© 2020 Siemens
6. Configuring Active Workspace features

Current limitations

• Attribute inheritance is not supported.

• Interdependent key-LOVs are not supported.

• Not all class attribute options are supported.

• Localization values are lost for UserData1 and UserData2 properties.

• Reference attributes are not supported in CST.

• The Hide Keys option in key-LOVs is not migrated.

• The Class details options are not migrated.

Administering classification libraries

Library management overview

Libraries are used to organize classified objects with similar characteristics or application in a hierarchy.
They reflect the business use of the objects they contain. For example, if you were looking for a bolt,
you would start by searching for the bolt library. Once you find the bolt library, you can perform
additional searches, use filters, or browse through the hierarchy to find the object that meets your
criteria.

The class hierarchy is built based upon attribute inheritance. This does not always reflect the business
use of the object for which you search. Libraries are based on a presentation hierarchy and provide you
with a different view on the data. The presentation hierarchy is built on top of the traditional
classification hierarchy and mirrors it. However, because it is built from workspace objects, it supports
the flexibility of libraries. A library contains library elements that are used to manage library objects and,
ultimately, reference classification classes. A classifying node links to a storage class. Using an optional
synchronization mechanism, you can ensure that any actions performed on the traditional classification
hierarchy are also performed on the presentation hierarchy.

6-134 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Library management overview

A presentation hierarchy can have its own symbols and images but its structure is a one-to-one
reflection of the classification storage hierarchy. Classification nodes in the presentation hierarchy refer
back to classification classes in the storage hierarchy.

Data that is stored in a storage ... is displayed in a presentation hierarchy


hierarchy...

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-135


© 2020 Siemens
6. Configuring Active Workspace features

There is no user interface for classification libraries. You can display presentation layer nodes in My
Teamcenter and search for data filtered by libraries in Active Workspace. Libraries are administered using
the clsutility and lbrmanger utilities.

Membership rules are used to populate a library on demand. A membership rule tells Teamcenter to
search through a part of a presentation hierarchy and find all elements that have a particular
characteristic, and then create a library element for the node element. For example, select all classified
bolts from the Bolts class that are made of titanium and whose diameter is greater than 20. You can
create multiple rules for a particular library node, and you can search either presentation hierarchies or
other libraries to populate a new library.

Deploying the Library Management feature configures:

• Indexing of libraries

• Indexing of library elements that includes:

• Element ID, name

• Associated classification attributes

• Associated classification node hierarchy

• Visual navigation card configuration for the following object types:

• Library

• Hierarchy

• Hierarchy nodes

• Style-sheets for the following:

• Library elements with classification properties and the underlying library object section

• A Library Element section in the item revision style sheet

Types of objects you work with

When creating libraries, you work with the following objects:

• Library: container

• Hierarchies

■ Hierarchy nodes

6-136 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using the clsutility and the lbrmanager utility

◊ Library elements

◊ Membership rules
• Specifications

• Specification rules

Library Classification data that is filtered to suit a particular business need.


Hierarchy Structures within a library that organize their constituent library elements. A library can
contain multiple hierarchies. A hierarchy (also referred to as a presentation hierarchy)
refers back to classes in the classification storage hierarchy.
Node A representation of a classification storage class within a library hierarchy.
Membership Rule that provides an automated way to populate a library with library elements. Rules
rule identify the objects that should become members of a library and are specific to a
particular library node. They can be evaluated at any time to update a library. For
example:

Rule A Select all classified bolts from where material is titanium.

Rule B Select all bolts from the vendor catalog where material is titanium and
diameter greater than 20.

Specification Design or component selection guidelines set up by expert users for a particular
domain or discipline to assist you in finding components suitable to a particular design
purpose.

Using the clsutility and the lbrmanager utility

Libraries are administered using two command line utilities:

• clsutility
This utility is used to create and update the presentation layer based on the classification hierarchy.

• lbrmanager
This utility is used to create, display, publish, and retract library objects.

These utilities contain many arguments and subarguments. The instructions about how to use the
utilities is embedded in the utilities themselves. To obtain help for the utilities, enter:

utility-name -h

For example:

lbrmanager -h

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-137


© 2020 Siemens
6. Configuring Active Workspace features

To obtain help about a subargument, enter:

utility-name -subargument -h

For example:

clsutility -include_instances -h

These utilities are installed when you Set up classification libraries.

Set up classification libraries

1. Install the library management features by selecting:

• Base Install→Active Workspace→Client→Reuse and Standardization→Library Management

• Base Install→Extensions→Reuse and Standardization→Library Management

• Base Install→Active Workspace→Server Extensions→Reuse and Standardization→Library


Management

This step installs the following features:

• The clsutility utility required to create the presentation layer.

• The lbrmanager utility required to administer libraries.

Additionally, it installs the following prerequisites:

• Advanced PLM Services for Applications

• Advanced PLM Services for Partitioning

• Advanced PLM Services for Realization

• Next Generation Classification foundation (the presentation layer)

2. Extend classes to the presentation layer using clsutility

3. Synchronize the presentation layer with the classification hierarchy

4. Create library data using the lbrmanager utility

6-138 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Create library data using the lbrmanager utility

Create library data using the lbrmanager utility

The following examples demonstrate how to create, display, publish, and retract library objects.

Note:
To obtain more information about any of these commands, type:

command-name -sub-command -h

For example:

lbrmanager -create -library -h

Create a standalone library

lbrmanager -u=user-ID -p=password -g=group -create -library -id=MechanicalPartsLibrary -


name=MechanicalPartsLibrary -descr="MechanicalParts Library" -type=Domain -
disciplines="Mechanical,Electrical"

To display a library:

lbrmanager -u=user-ID -p=password -g=group -show -libraries -id=MechanicalPartsLibrary

Create a hierarchy

lbrmanager -u=user-ID -p=password -g=group -create -hierarchy -id=FixturesHierarchy -


name=FixturesHierarchy -descr="Fixtures Hierarchy" -libraryId=MechanicalPartsLibrary

To display a hierarchy:

lbrmanager -u=user-ID -p=password -g=group -show -hierarchies -


libraryId=MechanicalPartsLibrary -id=FixturesHierarchy

Create a library node

lbrmanager -u=user-ID -p=password -g=group -create -node -id=Assemblies -name=Assemblies -


descr="All Assemblies" -libraryId=MechanicalPartsLibrary -hierarchyId=FixturesHierarchy

To display a node:

lbrmanager -u=user-ID -p=password -g=group -show -nodes -libraryId=MechanicalPartsLibrary -


id=Assemblies

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-139


© 2020 Siemens
6. Configuring Active Workspace features

Create a child library node

lbrmanager -u=user-ID -p=password -g=group -create -node -id=BasePlate -name=BasePlate -


descr="Base Plate" -libraryId=MechanicalPartsLibrary -hierarchyId=FixturesHierarchy -
parentNodeId=Assemblies

To display a node:

lbrmanager -u=user-ID -p=password -g=group -show -nodes -libraryId=MechanicalPartsLibrary -


id=BasePlate

Display the previously created library

lbrmanager -u=user-ID -p=password -g=group -show -libraries -id=MechanicalPartsLibrary

Output Description
[MechanicalPartsLibrary] Library created in Create a standalone library.
MechanicalPartsLibrary

|-[FixturesHierarchy] FixturesHierarchy Hierarchy created in Create a hierarchy


|-[Assemblies] Assemblies Node created in Create a library node
|-[BasePlate] BasePlate Child node created in Create a child library node

Publish an item to a library

Prerequisite data:

• Two items: BasePlateItem1, BasePlateItem2

• A text file, BasePlate.txt, with the following content:

-type=Item -mfkPropNames=item_id -item_id=BasePlateItem1

-elemPropNames=lbr0ElementId -lbr0ElementId=BasePlateLE01

-type=Item -mfkPropNames=item_id -item_id=BasePlateItem2

-elemPropNames=lbr0ElementId -lbr0ElementId=BasePlateLE02

lbrmanager -u=user-ID -p=password -g=group -publish -objectsFromFile -


libraryId=MechanicalPartsLibrary -nodeId=BasePlate -inputFile=BasePlate.txt

To display a library with a library element:

6-140 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Creating a library from the Fixtures branch of the Manufacturing Resource Library—Example

lbrmanager -u=user-ID -p=password -g=group -show -nodes -libraryId=MechanicalPartsLibrary -


id=BasePlate

Output Description
[MechanicalPartsLibrary] Library created in Create a standalone library.
MechanicalPartsLibrary

|-[FixturesHierarchy] FixturesHierarchy Hierarchy created in Create a hierarchy


|-[Assemblies] Assemblies Node created in Create a library node
|-[BasePlate] BasePlate Child node created in Create a child library node
->[BasePlateLE01] BasePlateItem1 Element created in Publish an item to a library
->[BasePlateLE02] BasePlateItem2 Element created in Publish an item to a library

Retract an item from a library

lbrmanager -u=user-ID -p=password -g=group -retract -byElementkey -


libraryId=MechanicalPartsLibrary -nodeId=BasePlate -elementIds=BasePlateLE01

Setup membership rules

lbrmanager -u=user-ID -p=password -g=group -create -memberRule -name=TestRule -


nodeId=BasePlate -libraryId=MechanicalPartsLibrary -propName=sml01001 -sml01001=”steel”

Evaluate membership rules to populate a library

lbrmanager -u=user-ID -p=password -g=group -evaluate -memberRules -


libraryId=MechanicalPartsLibrary

Instantiate a library element into a collaborative design

Prerequisite data:

• A collaborative design with ID DesignID01

lbrmanager -u=user-ID -p=password -g=group -instantiate -test -designId=DesignID01-


libraryId=MechanicalPartsLibrary -elementId=BasePlateLE02

Creating a library from the Fixtures branch of the Manufacturing Resource Library—
Example

# Create library: "Resources Library"


lbrmanager -u= -p= -g= -create –library -id=MRM_LIB -name="Resources"
-descr="Resources Library" -administrators=Tool_Admin

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-141


© 2020 Siemens
6. Configuring Active Workspace features

# Create hierarchy: "Fixtures"


lbrmanager -u= -p= -g= -create –hierarchy -libraryId=MRM_LIB
-id=MRM_FIXT_ROOT
-name=Fixtures -descr="Fixtures Hierarchy"

# Create library nodes and members


lbrmanager -u= -p= -g= -create -nodesFromClassification
-libraryId=MRM_LIB
-hierarchyId=MRM_FIXT_ROOT –includeInstances -clsNodeId=FIXT

# Create hierarchy: "Machines"


lbrmanager -u= -p= -g= -create –hierarchy -libraryId=MRM_LIB
-id=MRM_MACH_ROOT
-name="Machines" –descr="Machines Hierarchy"

# Create library nodes and members


lbrmanager -u= -p= -g= -create -nodesFromClassification
-libraryId=MRM_LIB
-hierarchyId=MRM_MACH_ROOT –includeInstances -clsNodeId=MDL

# Create hierarchy: "Factory Resources"


lbrmanager -u= -p= -g= -create –hierarchy -libraryId=MRM_LIB
-id=MRM_FRL_RES_ROOT
-name="Factory Resources" -descr="Factory Resources Hierarchy"

# Create library nodes and members


lbrmanager -u= -p= -g= -create -nodesFromClassification
-libraryId=MRM_LIB
-hierarchyId=MRM_FRL_RES_ROOT -includeInstances -clsNodeId=FRL

# Create library: "Tools Library"


lbrmanager -u= -p= -g= -create –library -id=TOOLS_LIB -name="Tools
Library"
-descr="Tools Library" -administrators=Tool_Admin

# Create hierarchy: "Tools"


lbrmanager -u= -p= -g= -create –hierarchy -libraryId=TOOLS_LIB
-id=MRM_TOOLS_ROOT
-name=Tools – descr="Tools Hierarchy"

# Create library nodes and members


lbrmanager -u= -p= -g= -create -nodesFromClassification
-libraryId=TOOLS_LIB
-hierarchyId=MRM_TOOLS_ROOT -includeInstances -clsNodeId=TOOL_MRL

6-142 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring classification artificial intelligence

Setting up classification artificial intelligence

Configuring classification artificial intelligence

Using artificial intelligence (AI), Active Workspace can guide you to the correct class in which to classify
new objects. This is beneficial if your hierarchy is very large so you do not have to manually navigate to
the desired class or remember the required class name. This saves time, especially for workflows where
you often classify into similar classes.

The classification AI engine is based on TensorFlow, an open source machine-learning library. It can,
optionally, use Geolus, the Teamcenter shape search engine, to recommend a class based on the shape
of the object being classified. After being trained on a database, the engine receives object metadata
from the Teamcenter server and returns the probabilities for potential classes. You can specify which
classes are displayed in the user interface based on these probabilities. For example, only classes with a
probability of higher than 50% are displayed as potential classification classes.

To configure classification AI, the AI engine must first be trained on the data in your database. The
training outputs a data model (files) that is used to deliver suggested classes.

Training the AI engine is carried out by running a utility. This utility need only be run when necessary. If
your data changes often, new training is required. Training can be time-consuming depending on how
much data you have.

The general process to install and configure classification AI is as follows:

Prerequisite:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-143


© 2020 Siemens
6. Configuring Active Workspace features

If you want to use the Geolus shape search engine, it must be installed and configured on the
Teamcenter server. For details refer to the Geolus documentation.

1. Install the feature.

2. Modify the required preferences.

3. Train the AI engine.

4. View the suggestions in Active Workspace.

Install classification AI components

This procedure assumes that classification is already installed on Active Workspace. Additionally, if
desired, Geolus must already be installed and configured.

1. Install the microservices framework using one of the following methods:

• Deployment Center

• Teamcenter Environment Manager for a Windows environment

• Teamcenter Environment Manager for a Linux environment

2. Install the classification AI components using one of the following methods:

• Deployment Center:

a. In the Applications step, select Classification AI.

b. In the Components section, in the Microservice Node panel, specify a value for the Model
File Location. This is the same value you must enter in the CLS_AI_Shared_Directory
preference in a later configuration step.

• Teamcenter Environment Manager (TEM)

a. In the Features panel, select the following features:

A. Base Install > Active Workspace > Server Extensions > Reuse and standardization
> Classification AI Training

B. Base Install > Active Workspace > Server Extensions > Reuse and standardization
> Classification AI

You must select the options in the given order.

6-144 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Train the classification AI engine

b. In the Classification AI Microservice panel, specify a value for the Classification AI Model
File Location. This is the same value you must enter in the CLS_AI_Shared_Directory
preference in a later configuration step.

The installation creates a new folder in the Teamcenter root directory named classification. This folder
contains all the required components to configure classification AI.

Tip:
During installation, the URL of the microservice that is used by the classification AI engine is
displayed. This is the value required for the CLS_AI_Engine_URL that you must set later in the
configuration process.

Train the classification AI engine

Training the artificial intelligence engine on your data involves running a utility that extracts data from
the database in a format that the engine can subsequently use to create the training model. The data
that is extracted is determined by a preference.

1. Set the required preferences:

CLS_AI_Enable_AI_Engine
Set this preference to true to enable class suggestions.
CLS_AI_Shared_Directory
Specifies a directory where the classification artificial intelligence training model is stored. This
is the same path that you specify during installation of classification AI. If this preference does
not exist in the database, you must create it.
CLS_AI_Engine_URL
Specifies the URL of the microservice that supports classification AI. This URL is displayed
during installation of the feature and has this format:

IP of machine on which microservices are installed:port/cais/makePrediction

A common port used is 9090.

If you use Geolus, you must additionally set this preference:

CLS_AI_Enable_Geolus
Enables the additional comparison of shape parameters using the Geolus search engine with
classification AI.

2. In a Teamcenter command prompt window, navigate to the TC_ROOT\classification\ai\bin


directory and run the following bat file:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-145


© 2020 Siemens
6. Configuring Active Workspace features

runClsAITraining.bat

This script trains the AI engine on the data in your database.

• The CLS_AI_Object_Properties preference specifies which properties are used for training.

• By default, the files created by the script are stored in a file named cait-artifacts-
TrainOuput_temp. The optional argument for the runClsAITraining.bat script, ouput-file-name,
allows you to change the suffix of the file from temp to a custom suffix.

• The files are stored in the zipped_models directory in the directory specified by the
CLS_AI_Shared_Directory preference. For each run, a new training model is created. These files
are used by the AI engine to deliver suggestions.

Each time you run the script, you create a new training model that has no memory of the last run.

3. (Optional) Set remaining classification AI preferences.

Troubleshooting classification AI

• To ascertain whether the classification AI server is running, open a Web browser and type the URL
where microservices is installed:

IP of machine on which microservices are installed:port/cais/

A common port used is 9090.


If the server is running correctly, the following is displayed:

Connected to Classification AI Serving

• If Geolus is enabled, the following preferences are set by the installation and can be checked for
accuracy:
SS1_DASS_cer_name
Defines the full name of the Geolus server certification file.
SS1_DASS_cer_path
Defines the path to the Geolus server certification file.
SS1_DASS_ssl_verify
Defines whether CURL verifies the certificate authenticity of the Geolus server.
GeolusServer
Defines a URL that points to the Geolus server.

6-146 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshooting classification AI

Classification preferences and utilities

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-147


© 2020 Siemens
6. Configuring Active Workspace features

lbrmanager

Performs various library management functions. Using a multitude of arguments, you can create,
update, and delete data, show data, publish and retract it, as well as search for various library elements.

To use the lbrmanager utility, you must install the Display only the branches of the classification
hierarchy that relate to my project feature in your Teamcenter configuration.

SYNTAX

lbrmanager -u=user-name {-p=password | -pf=password-file} -g=group-name

[-create | -delete | -show | -find | -update | -revise | -copy | -share | -unshare | -evaluate |

-publish | -retract | -instantiate | -search | -clone | -import | -h]

ARGUMENTS

The lbrmanager utility contains many arguments and subarguments whose descriptions and syntax you
can find in the help contained within the utility.

• List the utility help in the customary fashion:

lbrmanager -h

• List the utility help for subarguments as follows:


lbrmanager -subargument -h
For example:

lbrmanager -show -h

Running this command lists the help for all the subarguments of the -show command, such as the
following:

Usage: lbrmanager -show -libraries


[-id=<ID> | <MFK of the form: attr1=value, attr2=value...,
object_type=boName>]
[-norecurse : Do not show the Library structure.]
[ -h | -help : This option will print usage details for this operation. ]

ENVIRONMENT

This utility must be run in the Teamcenter shell environment.

6-148 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
smlutility

smlutility

Use this command to create or delete search indexing views for classification. Classes that do not have a
search index view or properties that are not included in the search index view cannot be searched for in
the global search in Active Workspace. Additionally, only properties that are included in the search index
view are displayed as filters when searching.

For smlutility details not included below, refer to the Utilities Reference in the Teamcenter collection.

SYNTAX

smlutility -create_indexing_views [-u=user-id] [-p=password] [-g=group]


[-reportfile=file-name] [-listIds=class-id] [-delimiter=user-specified-delimiter] [-recursive]

smlutility -delete_indexing_views [-u=user-id] [-p=password] [-g=group]


[-reportfile=file-name] [-listIds=class-id] [-delimiter=user-specified-delimiter] [-recursive]

ARGUMENTS

-create_indexing_views or -delete_indexing_views
Creates or deletes search indexing views for classification.
-u
Specifies the user ID.

This is generally infodba or another user with administration privileges. If this argument is used
without a value, the operating system user name is used.

Note:
If Security Services single sign-on (SSO) is enabled for your server, the -u and -p arguments
are authenticated externally through SSO rather than being authenticated against the
Teamcenter database. If you do not supply these arguments, the utility attempts to join an
existing SSO session. If no session is found, you are prompted to enter a user ID and password.

-p
Specifies the user's password.

If used without a value, the system assumes a null value. If this argument is not used, the system
assumes the user-ID value to be the password.

This argument is mutually exclusive with the -pf argument.


-g

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-149


© 2020 Siemens
6. Configuring Active Workspace features

Specifies the group associated with the user.

If used without a value, the user's default group is assumed.


-reportfile
Specifies the path to the output file. If you do not specify this argument (or if the file cannot be
opened), the output is written to stdout.
-listIds
Specifies a list of classes for which search indexing views should be created or deleted.

When creating, if no class ID is specified, indexing views for all classes that do not have indexing
views are created. If a class contains a default view, the attributes of the default view are copied to
the Search Index view. Otherwise, all the attributes of the class are set as attributes of the search
indexing view.

When deleting, if no class ID is specified, indexing views for all classes are deleted.

To create Search Index views for a class and all its child class (that is, for a single branch of a
hierarchy), include the topic level class ID in the listIds argument along with the recursive
argument.
-delimiter
Specifies a user-defined delimiter.
-recursive
Specifies that the index view be created (or deleted) for all subclasses. This argument is used
together with the listIds argument.

clsutility

Performs various classification standard taxonomy functions. Using a multitude of arguments, you
can create, update, delete, and migrate data. You can also use this utility to display the node hierarchy
in various levels of detail.

To use the clsutility utility, you must install the Classification Standard Taxonomy feature in your
Teamcenter configuration.

Syntax

clsutility -u=user-name {-p=password | -pf=password-file} -g=group-name

[-create | -delete | -find | -ask | -add | -import | -search | -set | -update | -get |

-remove | -describe | -migrate | -list | -h]

6-150 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
clsutility reference tables

Arguments

The clsutility utility contains many arguments and subarguments whose descriptions and syntax you
can find in the help contained within the utility.

• List the utility help in the customary fashion:

clsutility -h

• List the utility help for subarguments as follows:


clsutility -subargument -h
For example:

clsutility -create -h

Running this command lists the help for all the subarguments of the -show command, such as the
following:

USAGE

clsutility
-u=<username>
{-p=<password> | -pf=<password_file> }
-g=<group>
-output=<output file name>
<command> <sub-command> <command options...>
---------------------------------------------------------
For the command "-create" the following sub-commands are available:
-default_objects [Creates default Classification Context, Hierarchy and
Scheme objects.]
-node [Creates a Classification Hierarchy node object.]
-class_definitions [Creates a Classification standard taxonomy Class.]
-property_definitions [Creates a Classification standard taxonomy Property.]
-keylov_definitions [Creates a Classification standard taxonomy Keylov.]
-classification_object [Creates a new instance of Classification object.]
-classification_objects [Creates a set of Classification objects.]
-node_hierarchy [Creates a Classification node hierarchy from
Classification hierarchy.]
-node_definitions [Creates a Classification standard taxonomy Master
node.]
-view_definitions [Creates Classification Standard Taxonomy View
Definitions.]

Environment

This utility must be run in the Teamcenter shell environment.

clsutility reference tables

All clsutility commands begin with the following validation:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-151


© 2020 Siemens
6. Configuring Active Workspace features

clsutility -u=user-name {-p=password | -pf=password-file} -g=group-name

Add the following to the command to perform the required actions. Optional arguments are displayed in
brackets ([ ]).

Key-LOV definitions

Use this command To

-create -keylov_definitions -request=JSON-file-name Create key-LOVs described in the given JSON


file.

-delete -keylov_definitions -request=JSON-file-name Delete key-LOVs described in the given JSON


file.

-update -keylov_definitions -request=JSON-file-name Update key-LOV definition. If it does not exist,


the utility creates a new key-LOV based on the
data in the JSON file.

-update -status -request=JSON-file-name Update the key-LOV definition status.

Property definitions

Use this command To

-create -property_definitions -request=JSON-file-name Create properties described in the given JSON


file.

-delete -property_definitions -request=JSON-file-name Delete properties described in the given JSON


file.

-find -property_definitions -request=JSON-file-name Find properties described in the given JSON file.

-update -property_definitions -request=JSON-file-name Update properties described in the given JSON


file.

-update -status -request=JSON-file-name Update the property definition status.

Class definitions

Use this command To

-create -class_definitions -request=JSON-file-name Create classes described in the given JSON file.

-delete -class_definitions -request=JSON-file-name Delete classes described in the given JSON file.

-find -class_definitions -request=JSON-file-name Find classes described in the given JSON file.

-update -class_definitions -request=JSON-file-name Update classes described in the given JSON file.

-update -status -request=JSON-file-name Update the class definition status.

6-152 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
clsutility reference tables

Nodes

Use this command To

-create -node_definitions -request=JSON-file-name Create the hierarchy nodes described in the


given JSON file.

If a hierarchy node already exists, the utility


updates the node with the values provided.

-delete -node_definitions -request=JSON-file-name Delete the hierarchy nodes described in the


given JSON file.

-update -node -id=hierarchy-node-ID -name=new-name-of-hierarchy- Update a hierarchy node with the values
node provided.

Update a hierarchy node with a new description.


[-descr=new-description-for-given-node]

-find -all_nodes Find and display all nodes in the system.

-find -node -id=hierarchy-node-ID-including-namespace Find and display a single node based on its ID.

-find -top_level_nodes Display all top-level nodes in the system.

-get -classification_objects -id=hierarchy-node-ID List the classification objects belonging to the


given hierarchy node.

-ask -node_class_props -id=hierarchy-node-ID List all properties belonging to a hierarchy node


object.

-ask -node_class_props -id=hierarchy-node-ID -name=name-of-property- List all properties belonging to a hierarchy node
including-prefix object with a given name.

-ask -node_parent -id=hierarchy-node-ID List the parent of a given hierarchy node object.

[-full_hierarchy]: lists all ancestor nodes of a hierarchy node

-ask -node_ancestors -id=hierarchy-node-ID List all parents of a given hierarchy node object.

-ask -node_children -id=hierarchy-node-ID List all child nodes of a given type for the
specified hierarchy node object and optionally,
for the given type.
[-type={0: group | 1: master | 3: all}]

-ask -is_top_level_node -id=hierarchy-node-ID Check whether a hierarchy node is a top-level


node.

-ask -is_descendent_node -id=hierarchy-node-ID -ancestor_id=ancestor- Check whether a hierarchy node is a descendent


hierarchy-node-ID of another node.

-ask -node_type -id=hierarchy-node-ID Display the type of the given hierarchy node.

-ask -node_instances -id=hierarchy-node-ID List the classification objects belonging to the


given hierarchy node, including all the objects
belonging to child nodes.

-ask -node_class_props -id=hierarchy-node-ID List properties belonging to a hierarchy node.

-ask -node_class_prop -id=hierarchy-node-ID -name=name-of-property- List all properties belonging to a hierarchy node.
being-sought-including-prefix

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-153


© 2020 Siemens
6. Configuring Active Workspace features

Use this command To

-ask -node_attachments -id=hierarchy-node-ID List all the attachments belonging to the given
hierarchy node.

-ask -node_characteristic -id=hierarchy-node-ID -characteristic={0: is- List whether a given node is an assembly, has
an-assembly | 1: has-multiple-instances | 3: is-a-leaf-node} multiple instances, or is a leaf node.

-import -image -id=hierarchy-node-ID -os_path=path-to-image-file Import an image for the given hierarchy node.
Images are displayed in the right pane of the
user interface.
[-new_file_name=new-file-name-used-by-Active-Workspace]

[-do_update]: updates existing primary image

[-is_primary_image]: sets the image to primary image

-import -icon -id=hierarchy-node-ID -os_path=path-to-image-file Import an icon for the given hierarchy node.
Icons are displayed in the classification hierarchy
and help to visualize the class names.
[-new_file_name=new-file-name-used-by-Active-Workspace]

[-do_update]: updates existing icon

-remove -image -id=hierarchy-node-ID Remove an image attached to a node.

[-delete_dataset]: removes image dataset in addition to image

-remove -icon -id=hierarchy-node-ID Remove an icon attached to a node.

[-delete_dataset]: removes icon dataset in addition to icon

-get -image -id=hierarchy-node-ID Identify the primary image used by the given
hierarchy node.

-get -images -id=hierarchy-node-ID List all the images used by the given hierarchy
node.

-get -icon -id=hierarchy-node-ID Identify the icon used by the given hierarchy
node.

Classification objects (ICOs)

Use this command To

-create -classification_objects -node_id=hierarchy-node-ID Create multiple classification instances.

[-obj_count=number-of-classification-objects]

[-prefixid=prefix-assigned-to-new-objects] |

[-request=JSON-file-name]

-find -classification_objects -request=JSON-file-name Display the classification properties of a given


classification object.

6-154 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Examine the hierarchy using the clsutility -list -hierarchy command

Classification views

Use this command To

-create -base_view_definitions Create base views for every released application


class. If a base already exists for a class, the class
is skipped.

-create -base_view_definitions -class_definitionIRDI-of-class Create a base view for the given application
class.

-create -base_view_definitions -force Create or recreates a base view for every


released application class.

-create -view_definitions -request=JSON-file-name Create a user, group, or role view for a class, or
modifies the order of or suppresses properties in
a base view for a class.

-get -class_descriptor -request=JSON-file-name List the class descriptor for specified classes.

Examine the hierarchy using the clsutility -list -hierarchy command

Using the clsutility, you can list classification standard taxonomy hierarchy objects to help you better
understand the classification data in the database. This method of viewing the hierarchy is based on the
class descriptor. Whereas a class definition describes only the class, or a key-LOV definition only one key-
LOV, the class descriptor compiles all the definitions required to describe an ICO. Each node of the
hierarchy shares a class descriptor. The class descriptor provides a view on the data from the
classification consumer perspective.

Note:
When you list all the nodes in the database, the utility lists hierarchies that are not migrated to
CST, but it cannot display ICOs belonging to these hierarchies.

The output of the utility can be directed to a text file that you can open in a text editor by using the -
output=output-file-name.txt.

The following arguments are available when using clsutility -list -hierarchy:

Argument Description
-nodeId= Specifies the unique ID of the node for which you want to display the
hierarchy. The utility displays all the parents of the given node, as well as the
node itself. If a node ID is not provided, all top level nodes are displayed.
To view the children of the given node, additionally use the -recursive
argument.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-155


© 2020 Siemens
6. Configuring Active Workspace features

Argument Description
If you use this argument, you cannot use the -classId and -classNamespace
arguments.
-classId= Specifies the class ID of the class definition referenced from the given node.
If you specify a class ID here, you must also specify a namespace in the -
classNamespace argument.
If you use this argument, you cannot use the -nodeId argument.
-classNamespace= Specifies the namespace of the class definition referenced from the node. If
you specify a namespace here, you must also specify a class ID in the -classId
argument.
If you use this argument, you cannot use the -nodeId argument.
-recursive Displays the entire hierarchy below the specified node.
This argument cannot be used with the -showClass argument.
-showClass Shows detailed information about the referenced classes of the given node.
This argument cannot be used with the -recursive argument.
-showJSON Displays the JSON response from CST_class_describe which is used to build
the report of a class.
-showType Displays the class definition of the dynamic runtime type. This argument is
used for Siemens Digital Industries Software internal troubleshooting
purposes.
-showICOs Displays the ICOs of the nodes.
-showICOProperties Displays all ICO properties if you have also specified -showICOs.
-icoLimit= Limits the number of ICOs of a single node that are to be displayed.
-icoId= Shows only the ICO with this ID.

• To view all the top nodes in the hierarchy, type:

clsutility -list -hierarchy

• To view all the nodes in the hierarchy, type:

clsutility -list -hierarchy -recursive

• To view all the nodes underneath a specified node, type:

clsutility -list -hierarchy -nodeId=node ID -recursive

• To view the details of a specific class, type:

clsutility -list -hierarchy -nodeId=node ID -showClass

6-156 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Examine the hierarchy using the clsutility -list -hierarchy command

For example, for an eCl@ss class called AC-DC supply, the clsutility -list -hierarchy -recursive
command can be used to find the node ID (in this example, 0173-1#AFX043.

You can then use the node ID as input for the clsutility -list -hierarchy -nodeId=0173-1#AFX043 -
showClass command. The output resembles the following:

This output displays all the parent nodes of 0173-1#AFX043, as well as all the classes (application,
block, aspects) referenced by it, the properties, and the key-LOVs included in the class. The properties
are listed as follows:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-157


© 2020 Siemens
6. Configuring Active Workspace features

Index:internal
code

IRDI

Data type

Unit

Property name

If key-LOVs are used repeatedly in a class, their details are listed the first time they are used.

All subsequent uses of the key-LOV are abbreviated with a reference to the first usage:

• To find the node from which you want to begin displaying the hierarchy assuming you know the class
ID and the class namespace, type:

clsutility -list -hierarchy -classId= class ID -classNamespace=class namespace

If the class ID of the AC-DC supply class is AFR745 and the namespace is 0173-1, type:

clsutility -list -hierarchy -classId=AFR745 -classNamespace=0173-1

The output is as follows:

• To display the JSON file from which the output information is drawn, type:

clsutility -list -hierarchy -showClass -showJSON

6-158 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Setting classification preferences

This argument functions only with the -showClass argument.


The output includes the description of the class as well as the JSON that the user interface uses to
display the class.

• To display all the ICOs of a specific node, type:

clsutility -list -hierarchy -nodeId= 0173-1#AFR842 -showICOs

All the ICOs are displayed in addition to the complete hierarchy, with the number of instances
displayed for each class:

To display a specific ICO from this list, type

clsutility -list -hierarchy -showICOs -icoId=ICO ID

This is particularly useful when combined with -showICOProperties.

• To display no more than x number of ICOs within a class, type

clsutility -list -hierarchy -showICOs -recursive -icoLimit=x

View output in a text editor

The text files created by this utility can be extremely large. To assist you in manipulating these files, you
can try the following in a text editor:

• Enable collapsing the code in the editor. This can be done, for example, by viewing the text file as C++
code, or a similar viewing feature depending on the text editor. This adds the ability to collapse at
every curly bracket in the output of the hierarchy. Collapsing unwanted portions of the output makes
it easier to find what you are looking for.

Setting classification preferences

The following preferences are available to configure your classification environment.

ICS_classifiable_types
Stores the business object types that can be classified. If your company works with custom business
objects, you must add the item type to this preference to be able to classify it. If you want to classify,
for example, items only, you must remove the Item Revision entry from the list of classifiable types.
AWC_classification_facets_threshold

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-159


© 2020 Siemens
6. Configuring Active Workspace features

Sets the number of search facets displayed using the preference. The default value is 200. The
facets are sorted with the most common facets at the top. Exercise caution when setting the
number of returned facets as a very large number can cause a decrease in performance.
AWC_classification_vnc_threshold
Defines the maximum number of visual navigation cards (VNCs) displayed in a search location. The
default value is 15. This preference is not delivered with the software. You must add it manually.
CLS_is_presentation_hierarchy_active
Specifies whether traditional classes or the presentation hierarchy (nodes) are visible in the
classification hierarchy. If this preferences is set to true, the presentation node hierarchy is visible. If
it is set to false, traditional classes are visible.

This user preference is not delivered by default and must be added manually after installing the
presentation layer (Next Generation Classification Server installation option).
CLS_auto_sync_node_hierarchy
Allows the system to mirror operations performed on the classification storage class hierarchy onto
the node hierarchy in the presentation layer.
CLS_search_similar_wso_props_enabled
Specifies the list of workspace object properties that are displayed in the Filters pane when using
the SearchSimliar feature.
AWC_cls_object_filter_sorting
Defines how the classification hierarchy is sorted in the Filter panel. Valid values are:

• Ascending
Sorts the hierarchy in alphabetical order, from A to Z.

• Descending
Sorts the hierarchy in reverse alphabetical order, from Z to A.

• Count (default)
Sorts the hierarchy based on the number of instances for the given filter value.

The following preferences are required when migrating from traditional classes to classification standard
taxonomy (CST) classes using the clsutility -migrate -classification2cst utility:

CST_Classification_to_cst_namespace
Specifies the namespace of all CST objects created by the migration utility.
CST_classification_to_cst_status
Specifies the status of the CST objects created by the migration utility. Valid values are Develop,
Released, or Retired. Objects set to Released can no longer be modified.

The following preferences are used to configure classification artificial intelligence (AI):

6-160 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Setting classification preferences

CLS_AI_Enable_AI_Engine
Set this preference to true to enable class suggestions.
CLS_AI_Shared_Directory
Specifies a directory where the classification artificial intelligence training model is stored. This is
the same path that you specify during installation of classification AI.
CLS_AI_Engine_URL
Specifies the URL of the microservice that supports classification AI. This URL is displayed during
installation of the feature and has this format:

IP of machine on which microservices are installed:port/cais/makePrediction

A common port used is 9090.


CLS_AI_Object_Properties
Specifies the properties that are extracted from the Teamcenter database and used to train the AI
engine. These properties form the basis for the class suggestions offered when classifying objects in
Active Workspace.

By default this property is set to:

object_name
object_desc
object_type
owning_user
owning_group
CLS_AI_Enable_Geolus
Set this preference to true to enable the additional comparison of shape parameters using the
Geolus search engine with classification AI.
CLS_AI_Geolus_Max_Num_Results
Limits the number of results returned by the Geolus search engine. By default, this preference is set
to 1000.
CLS_AI_Engine_Probability_Cutoff
Specifies the percentage probability above which classes are considered appropriate suggestions for
classification AI. If too many class suggestions are displayed or you would like to increase the
accuracy of the classes displayed, you can increase the value of this preference. By default, this
preference is set to 10.
CLS_AI_Engine_Suggestions_Cutoff
Specifies the maximum number of suggestions displayed to the user. The default value is 10.
CLS_AI_Query_Start_Date

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-161


© 2020 Siemens
6. Configuring Active Workspace features

Specifies the earliest modification date of the data to include in training. Only objects created or
modified after this date are included in the training. If this date is not set, there is no restriction on
objects used in training.
CLS_AI_Query_End_Date
Specifies the latest modification date of the data to include in training. Only objects created or
modified before this date are included in the training. If this date is not set, there is no restriction on
objects used in training.
CLS_AI_Query_Object_Type
Specifies the type of data to include in training. Only objects of the given type (and any child objects
of this type) are included for training. If left blank, the value of this preference is WorkspaceObject
by default.

Troubleshooting the installation and configuration

• Performing a bulk import of classification data


Ensure that the CLS_auto_sync_node_hierarchy preference is set to false before performing a PLM
XML import of hierarchy data.

• Search is incorrectly configured


The following situations may arise if the search is not correctly configured:

• You cannot search by classification properties

• The classification search works but facets are not visible (or there are unassigned facets).

• You cannot search the library elements by classification property.

Correctly configure the search.

• The incorrect filters are displayed for library elements

1. Set the dynamic prioritization preferences to display all the configured filters. This allows you to
investigate further.

• Set AWC_dynamicPriority_hideSingleValueFacetCategories to true.

• Set AWC_dynamicPriority_hideUnassignedValueFacetCategories to true.

2. Update and merge the schema file

• The classification search works, but there only a limited number of properties available in the
search filters.

6-162 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Digital signature configuration tasks

Increase the number of search facets displayed using the AWC_classification_facets_threshold


preference. The default value is 200 and the facets are sorted with the most common facets at the
top.

Caution:
Setting this value to a high number can cause a decrease in performance or even cause
problems with Solr.

• What business constants are involved in classification installation?


The following business object constants are set in Business Modeler IDE:

• The Awp0SearchClassifySearchEnabled business object type constant is set to true at the


workspace object level. This turns on the classification search.

• The Awp0SearchIsClassifyDataIndexed business object type constant is set to true at the item
and item revision level.
This turns on classification indexing. The object type on which this constant is set is indexed for
searching. All subtypes inherit the setting.

• The Awp0SearchIsIndexed business object type constant is set to true at the item and item
revision level.
The object type on which it is set is indexed for searching. All subtypes inherit the setting.

Note:
Do not set this constant at the workspace level since this prevents your database from being
indexable.
Instead, set it true for each object that you want to index. For example, item and item
revision.

Verify that these constants are correctly set using the gettypeconstantvalue utility, for example:

gettypeconstantvalue -u=username -p=password -g=dba


-typename=WorkspaceObject
-constantname=Awp0SearchClassifySearchEnabled

Digital signature configuration

Digital signature configuration tasks

What is digital signature?

A digital signature is a mathematical stamp on an object used to confirm that the object has not been
modified since the signature was applied. It also identifies who applied the digital signature.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-163


© 2020 Siemens
6. Configuring Active Workspace features

Why configure digital signature?

After installing digital signature using Teamcenter Environment Manager (TEM), it is not fully functional
unless you configure it. You must perform additional steps to enable digital signature.

What do I need to do before configuring?

Before you can configure digital signature, you must install the features. Install the following from the
Features panel of Teamcenter Environment Manager (TEM):

• Digital Signatures (client)


Installs the user interface elements for viewing digital signatures in Active Workspace.
Select Active Workspace→Client→Digital Signatures.

• Digital Signatures (server)


Installs the server-side definitions for digital signatures.
Select Active Workspace→Server Extensions→Digital Signatures.

Where can I find out more about digital signature?

See Security Administration in the Teamcenter help collection.

What does a digital signature look like?

Following is an example of a digital signature applied to a workspace object in Active Workspace.

Enable digital signature

A digital signature is a mathematical stamp on an object used to indicate if that object has been
modified after the signature was applied. It also identifies who applied the digital signature. You must
use public key infrastructure (PKI) authentication when applying the digital signature.

6-164 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Enable digital signature

Note:
Digital signature is supported in only Microsoft Internet Explorer. If you use any other browser, you
can view digital signatures, but you cannot apply or void a digital signature.

You must have administrative privilege to perform these steps.

1. Install and configure your Teamcenter four-tier server for digital signature as described in
Teamcenter Security Administration.

2. Patch your environment to a version of Teamcenter. Refer to the general patch instructions in the
Teamcenter documentation, as well as the readme file for the patch.

For information about installing patches on a Teamcenter server, see the appropriate server
installation guide (for Windows Server Installation or UNIX and Linux Server Installation).

3. Install Active Workspace and include the digital signature features shown in the Teamcenter
Environment Manager (TEM) Features panel:

• Active Workspace Client

• Digital Signatures (client) for Active Workspace


Enables Active Workspace to support digital signature functionality. This includes applying and
voiding digital signatures to Teamcenter objects that are configured to support it and digitally
signing data upon workflow task completion.

• Active Workspace Indexer

• Active Workspace (server)

• Digital Signatures (server) for Active Workspace


Installs the Active Workspace style sheet to support applying digital signatures on objects.

4. Configure your system by adding the following code to all style sheets specific to Active Workspace.

Note:
Generally, these style sheet names begin with the prefix Awp0 (for example,
Awp0DatasetSummary). The Awp0 and Summary are standard for each style sheet to be
modified. The middle portion denotes the object type to be updated, for this example,
Dataset).

<section title=”Signatures”>
<objectobjectSet source = "Fnd0DigitalSignatureRel.Fnd0DigitalSignature"
sortdirection = "ascending" sortby = "object_string"
defaultdisplay = "listDisplay">

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-165


© 2020 Siemens
6. Configuring Active Workspace features

<tableDisplay>
<property name = "owning_user"/>
<property name = "fnd0State"/>
<property name = "creation_date"/>
</tableDisplay>
<thumbnailDisplay/>
<listDisplay/>
<command actionKey = "addDigitalSignatureAction"
commandId = "com.teamcenter.rac.applyDigitalSign"
renderingHint = "commandbutton"/>
<command actionKey = "voidDigitalSignatureAction"
commandId = "com.teamcenter.rac.voidDigitalSign"
renderingHint = "commandbutton"/>
</objectSet>
</section>

5. Install Microsoft .NET Framework 4 on each client.

Note:
This is available from Microsoft.

6. Install ActiveX on each client.

ActiveX is located in your Active Workspace kit in the additional_applications\Pkcs7install


directory. You must run the installer in this directory.

When the wizard prompts you to enter the hash algorithm, type the hash algorithm value to be
used, such as SHA256, SHA384, SHA512, or SHA1.

The default value is SHA256. However, if the PKI infrastructure requires any other algorithm, it
must be configured here and the same needs to be configured in the Teamcenter server in the
tc_profilevars file. The hash algorithm is stored in the TC_DS_HASH_ALGORITHMS environment
variable.

6-166 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Overview of geography access

Geography access configuration

Overview of geography access

Geography access allows you to configure both a geography entry and a custom confidentiality
agreement prior to users logging on to an Active Workspace session.

For example, in the following Active Workspace session, users must first select the country in which they
are currently located before the home page is displayed. If the user does not select a country, the only
other option is to log off.

If you require your users to agree to a confidentiality agreement, for example, for authorized data access
(ADA) requirements, you can configure a custom confidentiality agreement statement to be displayed
following the selection of their current working location. The I agree button is unavailable until a valid
country is selected in the drop-down list.

You can run a report, License Login Report, that displays the logon information. This report is displayed
in My Teamcenter by choosing Tools→Reports→Report Builder Reports→License Login Report.

Configure geography access

1. Update the site geography.

You can assign geography to a site using the site_util utility.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-167


© 2020 Siemens
6. Configuring Active Workspace features

Note:
You can also assign site geography using the Organization application.

2. Configure the geography list using the Business Modeler IDE.

By default, Teamcenter attaches the Fnd0CountryCodes list of values (LOV) on the


User.Geography attribute.

Note:
If you add a custom LOV to the User.Geography attribute, you must remove it before
starting a Teamcenter upgrade.

3. Update the user geography.

You can assign geography to a single user using the -Geography argument of the make_user
utility. To change the geography for all users at the same time, you can perform a batch mode
change using the -allUserDeclaredGeography argument and the two-character ISO 3166 country
code; for example, to set geography to Germany (DE) for all users, enter:

-allUserDeclaredGeography=DE

Note:
You can also assign user geography using the Organization application.

4. Configure preferences for logon entry of geography:

• LoginCountry_selection_enabled
Enables the Country Selection dialog box for users to select the country from which they are
logging in.
True Displays the Country Selection dialog box.
False Allows the logon process to continue and display the user's home page.

• AWC_PostLoginStages
Lists the postlogon stages in the sequence displayed on the Active Workspace client after
successful authentication.
Setting this preference ensures the user cannot bypass the postlogon page.
PickGeograp Displays the Geography entry on the postlogon page.
hy

• LoginCountry_save_previous_selection

6-168 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure confidentiality agreement

Allows/denies the ability to save the previous country selection in the Country Selection dialog
box. If users are logging on from the same site each time, you can configure it so the user does
not have to make the country selection each time.

Note:
This preference is ignored when LoginCountry_selection_enabled is set to False.

True Downloads the previously selected country and fills in the combination box in
the Country Selection dialog box with the value stored on the
User.Geography attribute.

The user selects Agree to accept the previously entered country.


False Causes the Country Selection dialog box to not save the previous geography
entry. This forces all users who log on to enter a new country when logging on.
The initial value in the selection box is blank and the Agree button is
unavailable until the user selects a country.

5. After the geography access is enabled for users, you can generate the License Login Report. This
report, which is also helpful for audit purposes, displays the following data:

• User ID

• Month

• Year

• Geography

• Intellectual property (IP)

This report documenting logon information of users can be stored and used for future reference.

Configure confidentiality agreement

Note:
By default, there is no confidentiality agreement configured.

In Teamcenter, you can configure a custom confidentiality agreement statement to be displayed


following the user's selection of their current working location. The I agree box is unavailable until a
valid country is selected in the dropdown list.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-169


© 2020 Siemens
6. Configuring Active Workspace features

To modify the LoginCountry_confidentiality_statement text message, perform the following steps:

1. Create a nontranslatable resource file, custom-name_text.xml.

2. Add the existing key (LoginCountry_confidentiality_statement) located in the


tc_text_locale.xml file to the custom-name_text.xml file.

3. Add the custom file to the TC_USER_MSG_DIR\language_locale directory.

Note:
language_locale is the JAVA standard language name. For example, fr_FR.

4. Modify the LoginCountry_confidentiality_statement in the TC_USER_MSG_DIR\language_locale


\custom-name_text.xml file.

Following are tips for creating a confidentiality statement:

• Create the new language directory in a location other than TC_ROOT or TC_DATA to prevent its loss
during migrating or patching. A typical custom structure might be:

d:\custom-localizations\
en_US\
conf_messages_test.xml
fr_FR\
conf_messages_test.xml
de_DE\
conf_messages_test.xml

6-170 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Overview of license attachment

• The conf_messages_test.xml file has different contents in each directory. For example:

• English (en_US) file:

<?xml version="1.0" encoding="us-ascii" standalone="yes"?>


<textsrv filename="tc_text_locale.xml">
<key id="LoginCountry_confidentiality_statement">Your 8859 character set English
Confidentiality Statement goes here.</key>
</textsrv>

• German (de_DE) file:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>


<textsrv filename="tc_text_locale.xml">
<key id="LoginCountry_confidentiality_statement">Your 8859 character set German
Confidentiality Statement goes here.</key>
</textsrv>

• French (fr_FR) file:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>


<textsrv filename="tc_text_locale.xml">
<key id="LoginCountry_confidentiality_statement">Your 8859 character set French
Confidentiality Statement goes here.</key>
</textsrv>

• Make certain your environment variable is set correctly:

set TC_USER_MSG_DIR=d:\custom-localizations

License attachment configuration

Overview of license attachment

Note:
Users of this feature must have administrative privileges. Generally, this feature is used by project
managers.

To provide time-limited grants or denials of access to users who do not have access to classified data
based on their clearance level, you can attach and detach licenses to workspace objects. For example,
you can restrict access of ITAR-controlled items to only those users in the United States.

Use the Attach Licenses command to add one of the following licenses to a workspace object:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-171


© 2020 Siemens
6. Configuring Active Workspace features

• ITAR
The ITAR license grants discretionary access to specific users or groups to workspace objects with
International Traffic in Arms Regulations (ITAR) classifications for a specified period of time.

• IP
The IP license grants discretionary access to specific users or groups to workspace objects that have
intellectual property (IP) classification. It grants the access for a specified period of time.

• Exclude
The Exclude license denies specific users or groups access to the attached workspace objects for a
period of time.

Adding the License List panel to custom XRT pages

Active Workspace ships with the License List panel visible on the following XRT style sheets:

• Awb0ItemRevSummaryForShowObjectLocation.xml

• Awp0ItemRevSummary.xml

To add the License List panel to your custom XRT pages, insert the following line in the XRT style sheet:

<inject type="dataset" src="LicenseListInfo"/>

6-172 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Using licenses

Attaching licenses

Using licenses

Note:
Users of this feature must have administrative privileges. Generally, this feature is used by project
managers.

To provide time-limited grants or denials of access to users who do not have access to classified data
based on their clearance level, you can attach and detach licenses to workspace objects. For example,
you can restrict access of ITAR-controlled items to only those users in the United States.

Use the Attach Licenses command to add one of the following licenses to a workspace object:

• ITAR
The ITAR license grants discretionary access to specific users or groups to workspace objects with
International Traffic in Arms Regulations (ITAR) classifications for a specified period of time.

• IP
The IP license grants discretionary access to specific users or groups to workspace objects that have
intellectual property (IP) classification. It grants the access for a specified period of time.

• Exclude
The Exclude license denies specific users or groups access to the attached workspace objects for a
period of time.

Attach licenses

Note:
Using this feature requires ADA administrative privileges. Generally, this feature is used by Data
Security Administrators or Controllers.

1. Select a workspace object and click Attach Licenses .

The Licenses panel displays.

2. Click Add to select the available licenses (ITAR License, IP License, Exclude License, or a
custom license type).

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-173


© 2020 Siemens
6. Configuring Active Workspace features

3. Select a license type and license and click Add .

If you select ITAR License, you must edit the Authorizing Paragraph for the license before adding
the license.

4. (Optional) Type the authorizing paragraph.

5. Select This Revision or All Revisions. Then, click Attach to attach the selected license(s).

6-174 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Detach licenses

You can confirm the license was successfully added by clicking Attach Licenses .

Detach licenses

Note:
Using this feature requires ADA administrative privileges. Generally, this feature is used by Data
Security Administrators and Controllers.

1. Select a workspace object and click Attach Licenses .

The Licenses panel displays.

2. Select any license to detach and click the Detach button. This detaches the license(s) from the
selected items.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-175


© 2020 Siemens
6. Configuring Active Workspace features

Localization configuration

Localization configuration tasks

What is localization?

Localization is the presentation of an application's text in the local language. You can install Active
Workspace to be displayed in many different languages.

Why configure localization?

After installing Active Workspace to run on a localized Teamcenter server, additional setup may be
required to present text in the local language.

What can I configure?

You can configure the following aspects of localization:

• Configure Active Workspace for additional locales.

• Configure locales for visualization servers.

What do I need to do before configuring?

Before you can configure localization, you must ensure that the server-side of Teamcenter is configured
for the locales you want.

Where can I find out more about localization?

See Teamcenter Localization in the Teamcenter help collection.

6-176 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring Active Workspace for other locales

Configuring Active Workspace for other locales

You can configure Active Workspace to support various languages in addition to English. Use the
Deployment Center or the Teamcenter Environment Manager to manage your available locales.

Tip:
When creating custom content, the parenthetical value is post-fixed to the JSON file name in the
i18n folder of your custom module.

Deployment Center

The list of available locales is not a required parameter in the Deployment Center, so you must show all
parameters when choosing locales.

Your list of components may differ.

1. Select the Active Workspace Client component.

2. Select Show all parameters.

3. Choose your additional Client Locales.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-177


© 2020 Siemens
6. Configuring Active Workspace features

Teamcenter Environment Manager

The list of available locales is found when you Update Active Workspace client settings.

1.

2.

Locale support by Visualization Server Manager

You can configure the Active Workspace client to display the user interface in any of the supported
Teamcenter locales. However, some visualization data, such as Product and Manufacturing Information
(PMI), requires a Visualization Server Manager (VSM) configured for the same locale as the information.
For visualization data to display correctly in the Active Workspace client, you must have at least one VSM
configured to run in each locale for which you have data. With this system in place, visualization
processes are then routed to the appropriate server based on locale.

VSMs can be configured to support the following languages:

Brazilian Portuguese English Korean

Chinese (Simplified) French Polish

Chinese (Traditional) German Spanish

6-178 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
SLM configuration tasks

Czech Italian Russian

French Japanese

You can configure a VSM with any one of these languages. If you want to configure a cluster of VSMs to
support more than one language, you need at least one VSM per language.

To change the language of a VSM, set Windows to the required language, location, and locale. You can
adjust these settings using the Region and Language options found in the Windows Control Panel. You
must adjust the Date and time formats, the Current location, and the Current language for non-
Unicode programs values. After changing your Windows settings, reboot the system. When the VSM is
started again, it inherits the new language configuration of the operating system.

If all VSMs are configured to use the same language, all clients use the available language regardless of
browser preferences.

Note:
If you have a VSM system configured for two or more different languages, then Siemens Digital
Industries Software highly recommends that at least one VSM be configured for English, even
though this may require a minimum of three VSMs.
When the server system is configured with multiple languages, if at least one VSM is configured
for English, then the English locale is a default.
The following table shows the VSM system response to a visualization data request from client
when the client is not in one of the pre-configured languages.

VSM system configured for two or


more languages Client is not in a pre-configured VSM language

VSM for English exists The data request is routed to an English VSM.

No VSM for English The data request is rejected.

SLM configuration

SLM configuration tasks

What is SLM?

SLM is the Teamcenter service lifecycle management application used for performing ongoing work on
products.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-179


© 2020 Siemens
6. Configuring Active Workspace features

Why configure SLM?

You may want to make some properties visible for use, such as add a list of manufacturers.

What can I configure?

You can configure the following aspects of SLM:

• Configure physical structures.

What do I need to do before configuring?

Before you can configure SLM, you must install the features. Install the following from the Features
panel of Teamcenter Environment Manager (TEM):

• As-Built
Provides searching and BOM extensions necessary to support SLM As-Built capabilities.
Select Active Workspace→Server Extensions→MRO→As-Built.

• As-Maintained
Provides searching and BOM extensions necessary to support SLM As-Maintained capabilities.
Select Active Workspace→Server Extensions→MRO→As-Maintained.

• Service Event
Provides searching and BOM extensions necessary to support SLM Service Event Management
capabilities.
Select Active Workspace→Server Extensions→MRO→Service Event.

You must also install SLM features to Teamcenter using the Extensions→Maintenance Repair and
Overhaul menu in TEM.

Where can I find out more about SLM?

See the Teamcenter service lifecycle management documentation in the Teamcenter help collection.

Configuring physical structures

To add a list of manufacturers to the Manufacturer's ID box in the Generate As-Built Structure,
Generate As-Maintained Structure, and Create Lot dialog boxes, in the Business Modeler IDE creates a
list of values and attaches it to the ManufacturerOrgId property on the PhysicalPartRevision and Lot
business objects.

6-180 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Program Planning configuration overview

Program Planning configuration

Program Planning configuration overview

What is Program Planning?

Program Planning enables organizations to efficiently coordinate the various work activities of multiple,
functional teams by providing enterprise-wide visibility into top-level projects and their major event
dates.

Complete the pre-configuration tasks

Prior to configuring Program Planning, you must complete the pre-configuration tasks.

What can I configure?

You can configure the following areas of Program Planning:

• Ensure that LOVs more accurately reflect your business use by configuring the out-of-the-box LOVs.

• Define the Schedule Template Attribute Maps (STAM) and Schedule Template Value Maps (STVM) to
define which attributes and attribute values your organization uses when automatically generating
schedules from ECNs.

• Define whether program objects are automatically added to the program's Teamcenter project by
setting the program security.

After Installing Program Planning

After you have installed Program Planning, there are several post-installation tasks that must be
completed, including changes made to Organization, Access Manager, and Dispatcher.

What do programs look like?

Following is an example of a program.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-181


© 2020 Siemens
6. Configuring Active Workspace features

Program Planning preconfiguration tasks

Before you can configure Program Planning, you must install the features and load the necessary
templates in Business Modeler IDE.

Install the Program Planning features

Install the following from the Features panel of Teamcenter Environment Manager (TEM):

• Within Features, select the following:

• Program Planning (client)


Enables the program management capability in Active Workspace.

• (Optional) Schedule Manager (client)


Allows Active Workspace users to relate schedules and change objects.

• (Optional) Change Management (client)


Allows Active Workspace users to relate programs, projects, and subprojects to change objects.

• Program Planning Execution Client


Program Planning execution features for the Active Workspace client.

• (Optional) Change Management Schedule Manager


Allows Active Workspace users to relate schedules and change objects.

6-182 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Program Planning preconfiguration tasks

• (Optional) Program Change Client


Allows Active Workspace users to relate programs, projects, and subprojects to change objects.

• (Optional) Program Planning Event Change Client


Allows Active Workspace users to relate events to change objects.

• (Optional) Program Schedule Manager Client


Allows Active Workspace users to create plan-level items to schedules and supports automatic
generation of schedules within a program.

• Within Enterprise knowledge Foundation, select the following:

• (Optional) Change Management

• Dispatcher Server

• Dispatcher Client

• Program Planning (server)


Enables the program management capability in Active Workspace.
Select Active Workspace→Server Extensions→Program Planning.

• Program Planning

• (Optional) Schedule Manager

• Program Planning Execution


Program Planning execution features for Active Workspace.

• (Optional) Change Management Schedule Manager


Allows Active Workspace users to relate schedules and change objects.

• (Optional) Program Change


Allows Active Workspace users to relate programs, projects, and subprojects to change objects.

• (Optional) Program Planning Event Change


Allows Active Workspace users to relate events to change objects.

• (Optional) Program Schedule Manager


Allows Active Workspace users to create plan-level items to schedules and supports automatic
generation of schedules within a program.

• Dispatcher Components

• Dispatcher Scheduler

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-183


© 2020 Siemens
6. Configuring Active Workspace features

• Dispatcher Client

• Dispatcher Module

• Select Translators

• AsyncService

Load the templates

These templates can be found in tcdata\model\ in Business Modeler IDE.

Installation Order Template Name Description

1 foundation Foundation (Required)

2 aws2 Active Workspace (no dependencies)

3 prg0programinfra Program Planning Infrastructure (no dependencies)

4 pgp0awprgplanning Program Planning (Dependent on 2 and 3)

5 cm Change Management (Dependent on 7)

6 saw1projectmanagementaw Schedule Manager (Dependent on 8)

7 psi0ppsminterface Program Planning Schedule Management Interface


(Dependent on 3, 4, and 6)

8 pch0pchinterface Program Change Interface (Dependent on 9)

9 pec0ppeventchange Program Planning Event Change

Program Planning post-installation configuration tasks

After installing Program Planning, you must complete the following tasks:

• Navigate to Organization in Teamcenter and modify the site name in the SOA URL box using the
pattern: http://<MachineName>:7001/tc.

6-184 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Program Planning post-installation configuration tasks

• Navigate to Access Manager in Teamcenter and do the following:

• Under Has Class (POM_application_object) → Working, create an ACL named


DispatcherRequest.

• Assign read, write, and delete privileges to the dcproxy user.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-185


© 2020 Siemens
6. Configuring Active Workspace features

• To support async operations, in the Dispatcher installation directory, run the .bat files located in the
bin folders of Scheduler, Module, and Dispatcher Client directories. The required files are listed
below in the order they should be run.

1. \Scheduler\bin\runscheduler.bat

2. \Module\bin\runmodule.bat

3. \DispatcherClient\bin\runDispatcherClient.bat.

Refer to the Installing and Configuring Dispatcher in the Teamcenter help collection for configuration
instructions.
Async operations are required in Program Planning for generating schedules.

Configure out-of-the-box Program Planning LOVs

The following out-of-the-box Schedule Manager LOVs can be configured in Business Modeler IDE
(BMIDE) to better represent your business.

Program LOVs that you can configure:

• State
Reflects the current state of the program.
Predefined values are: Not Started, In-Progress, Complete, Closed.

• Classification
Used to label a program, project, or subproject. For example, an organization could classify a
program's significance to the organization (high, medium, low) or program's complexity (complex,
moderate, simple).
This LOV has no predefined values.

Event LOVs that you can configure:

• State
Reflects the current status of the event.
Predefined values are: Not Started, In-Progress, Complete, Closed.

• Event Code
Identifies the events that are applicable to your business. This LOV has no predefined values. Your
organization's programs may include kickoff events, design review events, and release to market
events as values to define.
In addition to defining the event code values, you can define a unique color to each event code
value.

Criteria LOVs that you can configure:

• State

6-186 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Assign colors to the program event LOVs

Reflects the current status of the criterion.


Predefined values are: New, Open, In-Process, Ready, Pass, Fail.

Program deliverable LOVs that you can configure:

• Deliverable Type
Identifies a functional or other classification of the program deliverable.
Predefined values are: End Item, Sourced Item, Internal Item, Program Management, Quality
Management, Other.

Risk, issue, or opportunity LOVs that you can configure:

• State
Reflects the current status of the program risk, issue, or opportunity.
Predefined values are: In Progress, Closed, Canceled.

• Priority
Indicates the importance of the program issue.
Predefined values are: Critical, High, Medium, Low.

• Impact
Indicates the effect of the program risk or opportunity on the plan. Each value is associated with a
number (5 - 1), which is used to calculate the Risk Score (Impact x Probability = Risk Score).
Predefined values are: Severe, Major, Moderate, Minor, Insignificant.

• Strategy—Risk
Identifies the plan of action for handling this program risk.
Predefined values are: Not Applicable, Accept, Avoid, Mitigate, Transfer.

• Strategy—Opportunity
Identifies the plan of action for handling this program opportunity.
Predefined values are: Not Applicable, Accept, Enhance, Exploit, Share.

Assign colors to the program event LOVs

As an administrator, in addition to defining the Event Code LOV (Prg0EventCode) on the program Add
Event panel, you can assign each program event value a different color (Pgp0Color) for easy
identification on the program timeline. For example, kick-off events may show as green, design review
events may show as blue, and release events may show as yellow. The default event code color is
AW_Boston_Blue (#388ba6).

Use the Prg0EventCode LOV to define the Event Code value based on your company's best practices.
Use the Pgp0Color LOV to define a library of colors, including hex codes, which can be assigned to
events. Use the Pgp0EventToColor LOV to map a defined Event Code to a defined color.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-187


© 2020 Siemens
6. Configuring Active Workspace features

Note:
Maximum allowable length for the Event Code value is 12 characters.

In Active Workspace, the end user picks the desired event type from the Event Code LOV, and the event
displays in the program timeline in the color associated with that event type.

Instructions for adding values to existing LOVs is discussed in the Business Modeler IDE.

Define Program Planning security

Define Program Planning program security using the following preference and program field. When
program security is configured, program objects are automatically added to the program's Teamcenter
project when the object is created.

6-188 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Add custom program and project objects

Set the Program_Management_Security site preference to 1 (default is 0) to automatically create a


Tc_project for the Program Planning program. This will also automatically assign the program's projects
and subprojects to the Tc_project when they are created.

When the Program_Management_Security preference is set to 1 and the Content Security field value
for the program, project, or subproject is set to True, the Tc_project security also propagates to program
deliverables, deliverable instances, changes, schedules, events, event criteria, attachments, risks, issues,
opportunities, and checklist associated with the program, project, or subproject. The Content Security
field is located on the Overview tab of the program, project, and subproject.

Note:
The Content Security field must be set at each plan level (program, project, and subproject) in
order to propagate all plan objects to the Teamcenter project. If this field is not set for one level of
the plan—for example, the project—then only the objects for the program and subproject are
propagated to the Teamcenter project.

Add custom program and project objects

Use this procedure to add custom subtype objects to the Prg0AbsProgramPlan and
Prg0AbsProjectPlan Program Planning objects. Unlike how other custom business objects within
Teamcenter are subtyped, the parent-child relationship for these two objects is governed by the
Prg0PlanAllowsChildren and Prg0PlanAllowedChildTypes business object constants.

Note:
The Prg0AbsEvent and Prg0AbsCriteria objects are directly subtyped like any other business
objects in Teamcenter.

1. In Business Modeler IDE, select either the Prg0AbsProgramPlan or Prg0AbsProjectPlan business


object, depending on where you want to create the new custom subtype object.

2. Add the new custom subtype object under the selected business object.

3. Select the business object (Prg0AbsProgramPlan or Prg0AbsProjectPlan) where you added the
custom object and under the Business Object Constants section, do the following.

• Set the Prg0PlanAllowsChildren constant to true.

• In the Prg0PlanAllowedChildTypes constant, enter the name of the custom subtype object. If
you created more than one custom subtype object, enter then names as comma separated
strings.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-189


© 2020 Siemens
6. Configuring Active Workspace features

4. Create a corresponding XML Rendering Stylesheet (XRT) for the custom object (project, event, or
criteria).

a. Log on to Teamcenter rich client as an administrator and navigate to My Teamcenter.

b. Create a new XMLRenderingStylesheet dataset.

c. Search for the appropriate dataset, depending on the custom object: Pgp0ProjectPlanCreate
(custom project), Pgp0Prg0EventCreate (custom event), or Pgp0Prg0CriteriaCreate (custom
criteria).

d. Click the Viewer tab and copy the contents of the dataset.

6-190 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Share Program Planning data between Teamcenter sites

e. Paste the copied content into your custom XML rendering stylesheet.

f. Create a new preference named AWC_<Custom Class Name>.CREATERENDERING.

g. Restart the Teamcenter server and then log off and back on to Active Workspace.

Share Program Planning data between Teamcenter sites

As an admin, you can export Program Planning data from one Teamcenter site and import it into
another Teamcenter site. For example, if you want to move data from a test environment into a
production environment.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-191


© 2020 Siemens
6. Configuring Active Workspace features

Prerequisite Steps

Before exporting and importing data, complete the following steps at both the source and destination
sites.

• In Teamcenter, click Windows > Open Perspective > Other > PLM XML/TC XML Export Import
Administration and verify that ProgramPlanningDefaultTM is installed in Teamcenter.

• If ProgramPlanningDefaultTM is not installed, in the Teamcenter command prompt, enter the


following command to import the mode:
tcxml_import -u=infodba -p=infodba -g=dba -scope_rules -
scope_rules_mode=append -file=%Tc_Root%\install\prg0programinfra /
programplanningdefaultTOS.xml

• Generate the Administration Data Comparison report to compare the source and destination
structures, since both sides must have the same data structure, including Tc_project, objects, and
users.

Export and Import data

Use the Teamcenter tcxml_export and tcxml_import utilities to export Program Planning data from one
Teamcenter site and import it into another Teamcenter site.

1. On the source site, navigate to the Teamcenter command prompt and enter the following.

tcxml_export -u=<username> -p=<password> -g=<group>-


input_criteria=Prg0ProgramPlan{prg0PlanId =<Program ID>}-bulk_extract -
optionset=ProgramPlanningBulkExtractDefault-file=<name of file>.bcz

The ProgramPlanningBulkExtractDefault option set is mandatory for export. If you do not specify
the output file path, then the Breifcase file is generated in <TC_ROOT>\tc_menu\.

2. Copy the Briefcase file (.bcz).

3. On the destination site, paste the Briefcase file in <TC_ROOT\tc_menu> (or in a custom folder).

6-192 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Program save as behavior default deep copy rules

4. On the destination site, do the following to add the bulk load argument to the tcxml_import utility.

a. Login to Teamcenter as a dba.

b. Search for the BulkLoadDefault Optionset and add the opt_bulk_load_in_prod option.

c. On the destination site, navigate to the Teamcenter command prompt and enter the
following.
tcxml_import -u=infodba -p=infodba -g=dba -file=<name of file>.bcz -bulk_load

Note:
If the file is in a custom file, use the full path name as shown above. If the file is in
<TC_ROOT>\tc_menu\ then enter only the file name (=<name of file>.bcz).

Program save as behavior default deep copy rules

Program save as behavior can be configured through deep copy rules in BMIDE. The table below shows
the default deep copy rules used when saving a program as a new program.

Primary Secondary Relationship Option


Program Events Reference Copy as object
Program Project Reference Copy as object
Program Deliverables - PDR GRM Copy as object
Program Risks GRM Copy as object
Project Events Reference Copy as object
Project Subproject Reference Copy as object
Project Deliverables - PDR GRM Copy as object
Project Risks GRM Copy as object
Subproject Events Reference Copy as object
Subproject Deliverables - PDR GRM Copy as object
Subproject Risks GRM Copy as object
Events Criteria Reference Copy as object
Events Deliverables - PDR GRM Copy as object
Events Checklists GRM Copy as object
Events Risks GRM Copy as object
Deliverables Deliverable instances GRM Copy as object
(any Teamcenter
objects)
Checklists Checklist questions GRM Copy as object

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-193


© 2020 Siemens
6. Configuring Active Workspace features

Primary Secondary Relationship Option


Primary Secondary Relationship Option
Prg0AbsPlan Change, Schedule, Issue, GRM Do not copy
Opportunity

Define STAMs and STVMs

What are STAMs and STVMs?

The Schedule Template Attribute Map (STAM) defines which attribute your organization uses when
automatically generating schedules from ECNs. The Schedule Template Value Map (STVM) defines the
actual value of the attribute you defined in the Schedule Template Value Map (STAM). You can create
more than one STAM/STVM pair for each schedule.

Before the program manager can automatically generate schedules from change notices, a system
administrator must create Schedule Template Attribute Maps (STAM) and Schedule Template Value
Maps (STVM). These two maps work together to identify which attributes and values are used when
schedules are automatically generated from the change. Typically, the system administrator creates the
necessary STAMs and STVMs prior to the start of the program, and the same STAM/STVM pairs are used
throughout the duration of the program.

Example:

Name Description Source Source obj.


Source obj. attribute
obj. type attribute value

Part_STAM Mapping attributes for Item Source


parts revision

Part_STVM Parts made in North Make


America

Parts purchased in North Buy


America

Create a Schedule Template Attribute Map (STAM)

The system administrator creates the Schedule Template Attribute Map (STAM) to define which attribute
your organization uses when automatically generating schedules from ECNs. You can create more than
one STAM/STVM pair for each schedule.

1. From the home page, navigate to your Home folder.

6-194 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Field definitions for STAM

2. Click Add .

3. In the Add panel, in the filter box scroll and select Schedule Template Attribute Map.

4. Define the STAM values.

5. Click Add.

Field definitions for STAM

The system administrator defines the Schedule Template Attribute Map (STAM) attributes.

Field name Definition Valid values

Name Identifies this STAM.

Description Describes this STAM.

Context Identifies whether the schedule is Impacted item


generated from an event's change notices Deliverable instance

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-195


© 2020 Siemens
6. Configuring Active Workspace features

Field name Definition Valid values

(impacted item) or from an event's program Program Deliverable


deliverables (deliverable instance).

Source Object Identifies the Teamcenter object class for Varies, depending on your
Type which schedules are automatically Teamcenter configuration.
generated from the designated schedule
template. Enter the object name exactly as
it appears in the Business Modeler IDE.

Source Object Identifies the attribute on the object class Example: object_name
Attribute identified in the Source Object Type box.
This value is optional.
Specify a value only if the template
selection is based on the object class and
value of the attribute on the object class.
Enter the attribute name exactly as it
appears in the Business Modeler IDE
(without the object class prefix). If an
attribute is specified, the system looks for a
corresponding STVM.

Project Associates this template to a security-level


project. The project consists of entities that
(project-level
correlate groups of users with the data
security)
associated with a given project or subset of
a project. Project-level security is defined by
your system administrator. Templates that
are not associated with a security-level
project are open for access by everyone.

Default Identifies the schedule template to use Select from the list of defined
Schedule when a change schedule is automatically schedule templates for your
Template generated. The default schedule template is organization.
used when the template selection is based
only on the object class (for example, there
is no STVM) or when the Source Object
Attribute is specified but Teamcenter could
not find a corresponding STVM.

Create a Schedule Template Value Map (STVM)

The system administrator creates the Schedule Template Value Map (STVM) to specify the schedule
template to be selected by the autogeneration process for a given object class and the value of the

6-196 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Field definitions for STVM

specified attribute on that object class. As a system administrator, create an STVM only after you have
created the STAM for the object class.

1. From the home page, navigate to your Home folder.

2. Click Add .

3. In the Add panel, in the filter box scroll and select Schedule Template Value Map.

4. Define the STVM values.

5. Click Add.

Field definitions for STVM

The system administrator creates the Schedule Template Value Map (STVM) to specify the schedule
template to be selected by the autogeneration process for a given object class and the value of the
specified attribute on that object class. As a system administrator, create an STVM only after you have
created the STAM for the object class.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-197


© 2020 Siemens
6. Configuring Active Workspace features

Field name Definition Valid values

Name Identifies this STVM.

Description Describes this STVM.

Schedule Identifies the STAM for which this STVM is Click the to select a STAM,
Template being created. and then click Set.
Attribute Map

Source Object Identifies the value of the source object


Attribute Value attribute that maps to the selected STAM.

Project Associates this template to a security-level


project. The project consists of entities that
(project-level
correlate groups of users with the data
security)
associated with a given project or subset of
a project. Project-level security is defined by
your system administrator. Templates that
are not associated with a security-level
project are open for access by everyone.

Schedule Identifies the schedule template to use


Template when a change schedule is automatically
generated.

Relations configuration

Relations configuration tasks

What are relations?

Relations are the associations between a Teamcenter object and pieces of information that describe
aspects of the object. The Relations tab in Active Workspace allows you to see the relationships for a
selected object.

Why configure relations?

You may want to change how relations are displayed to end users.

What can I configure?

You can configure the following aspects of relations:

6-198 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Relations configuration tasks

• Create new view or update existing views.

• Configure what views appear in the Relations Legend.

• Specify what user interface styles are applied.

• Specify user interface styles.

• Specify what properties are visible in the object filter.

• Configure the object expansion button.

• Configure how edges attach to objects.

What do I need to do before configuring?

Before you can configure relations, you must install the features. Install the following from the Features
panel of Teamcenter Environment Manager (TEM):

• Relationship Browser
Installs the user interface elements for viewing relations in Active Workspace.
Select Active Workspace→Client→Relationship Browser.

• Relationship Viewer
Installs the server-side definitions for relationships.
Select Active Workspace→Server Extensions→Relationship Viewer.

Where can I find out more about relations?

See Relation Browser in the Teamcenter help collection.

What do relations look like?

Following is an example of the Relations tab in Active Workspace.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-199


© 2020 Siemens
6. Configuring Active Workspace features

Creating new views or updating existing views

A view is a group of objects and relations in the Legend panel.

A configuration file defines the available views. The RV1_DARB_UI_configuration_file_name


preference specifies the name of this configuration file. You can update this configuration file to add
new views or update existing views.

This configuration file contains the following elements:

<view name="General">
<ruleName>GenericRule</ruleName>
<group name="relations">
<filter name="Attach" parameterSet="Attach" color="(64,100,142)"/>
<filter name="Folder" parameterSet="FolderRelation" color="(196,189,151)"/>
<filter name="Master" parameterSet="Master" color="(167,153,80)"/>
<filter name="Traceability" parameterSet="Traceability" color="(255,182,121)" />

6-200 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Creating new views or updating existing views

<filter name="WhereUsed" parameterSet="WhereUsed" color="(149,179,215)"/>


</group>
<group name="objects">
<filter name="File" parameterSet="Dataset" color="(202,216,234)"/>
<filter name="Folder" parameterSet="Folder" color="(196,189,151)"/>
<filter name="Functional" parameterSet="Functional" color="(255,182,121)"/>
<filter name="Logical" parameterSet="Logical" color="(191,161,229)"/>
<filter name="Physical" parameterSet="Physical" color="(138,66,8)"/>
<filter name="Plant" parameterSet="Plant" color="(184,214,150)"/>
<filter name="Requirement" parameterSet="Requirement" color="(64,100,142)"/>
<filter name="Other" parameterSet="WorkspaceObject" color="(238,236,225)"/>
</group>
</view>

Following are elements in the file:

• view name
Specifies the name of the view, for example, General.

• ruleName
Specifies the name of the dataset that implements the traversal logic of the view. The GenericRule
dataset is the default rule file.

• group name
Specifies if this is a list containing objects or relations. These lists are presented in the Relation
Controls section of the Relations browser.
The order of the objects filters is important. Your object is displayed using the first filter on the list
that successfully matches. The last filter in the objects section, Other, matches all objects because it
is associated with WorkspaceObject. It is there to ensure all objects receive some formatting. Do not
place any filters after the Other filter.

• filter name
Specifies the name of the relation or object name.
For example:

<filter name="Attach" parameterSet="Attach" color="(64,100,142)"/>


<filter name="File" parameterSet="Dataset" color="(202,216,234)"/>

• parameterSet
Specifies the name of the parameterSet element in this configuration file. The parameterSet
element defines the Teamcenter objects and relations that map to the filter name.

• color
Specifies the display color of the object or relation.

The parameterSet element specifies what objects or relations are to be added to a view, for example,
the following is the parameterSet definition for the Attach relation:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-201


© 2020 Siemens
6. Configuring Active Workspace features

<parameterSet name="Attach">
<fact>source=GRM,key=Attach,relationType=TC_Attaches,targetDirection=forward,
inputTypes=ItemRevision</fact>
<fact>source=GRM,key=Attach,relationType=TC_Attaches,targetDirection=backward,
inputTypes=Dataset</fact>
<fact>source=GRM,key=Attach,relationType=IMAN_specification,targetDirection=forward,
inputTypes=ItemRevision,excludeTypes=FullText</fact>
<fact>source=GRM,key=Attach,relationType=IMAN_specification,targetDirection=backward,
inputTypes=WorkspaceObject</fact>
<fact>source=Property,key=Attach,propertyName=IMAN_Rendering,targetDirection=forward,
inputTypes=ItemRevision</fact>
</parameterSet>

Following are elements in the parameterSet element:

• name
Specifies the name of the parameterSet element. This name must be the same as defined in the
View element.

• fact
Specifies the input parameters to the query service.

• source
Specifies what query service. The following query services are supported:

• GRM
An example is:

source=GRM,key=Attach,relationType=TC_Attaches,targetDirection=forward,
inputTypes=ItemRevision

• WhereUsed
An example is:

source=WhereUsed,key=Structure,inputTypes=ItemRevision

• WhereReferenced
An example is:

source=WhereReferenced,key=Folder,level=1,inputTypes=Item|Folder,
outputTypes=Folder

• Property
An example is:

source=Property,key=Folder,propertyName=contents,targetDirection=forward,
inputTypes=Folder

• key
Specifies one of the existing relation types.

6-202 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example of configuring views: configure relations expansion

• relationType
Specifies the internal business object name of a Teamcenter relation type.

• targetDirection
Specifies the direction of the relation. The direction values are forward and backward.
The forward direction represents the edge that comes out of the source node and targets a lower
level node.
The backward direction represent the edge that comes out of the source node and targets an upper
level node.

• inputTypes
Queries only those objects that are specified in this element.

• outputTypes
Returns only those objects that are specified in this element. For example, for a folder, you can specify
that the query only return folder, item, or dataset.

• excludeTypes
Specifies what object types to exclude from the query results. For example, when you want your
query to return all dataset types except the FullText dataset type, use this element to exclude the
FullText dataset type.

Example of configuring views: configure relations expansion

When users open an object in the Relations tab, the system automatically expands the relations forward
one level. If your users are not interested in confirming the data attached by outgoing relations but
rather confirming incoming relations, you can set the expansion to automatically expand backward. You
can change this expansion using the defaultExpandDirection setting in the RB_UIConfigure.xml file.

1. In the Teamcenter rich client, search for the dataset RelationB*.

2. In the Search pane, right-click RelationBrowserConf and choose Named References.

3. In the Named References dialog box, select RB_UIConfigure.xml and click Download.

4. Open the RB_UIConfigure.xml file and add the defaultExpandDirection setting as shown:

<view name="General">
<ruleName>GenericRule</ruleName>
<defaultLayout>Bottom-to-Top</defaultLayout>
<defaultExpandDirection>backward</defaultExpandDirection>

</view>

The supported values are:

• forward

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-203


© 2020 Siemens
6. Configuring Active Workspace features

Expands outgoing relations one level upon open. This is the default behavior if there is no
defaultExpandDirection setting in the configuration file.

• backward
Expands incoming relations one level upon open.

• all
Expands both incoming and outgoing relations one level upon open.

5. Check out the RelationBrowserConf dataset.

6. Delete the original RB_UIConfigure.xml file from the Named References dialog box and import
the new RB_UIConfigure.xml file.

7. Click Close to close the Named References dialog box.

8. Check in the RelationBrowserConf dataset.

Example of configuring views: localize names that appear in the custom


Relations Legend views

To localize the custom view or the names that appear in the custom Relations Legend views that you
created:

1. In Teamcenter rich client, search for the dataset RelationB*.

2. In the Search pane, right-click RelationBrowserConf and select Named References.

3. In the Named References dialog box, select the RB_UIConfigure.xml file and click Download.

4. Open the RB_UIConfigure.xml file and update the value of the view name property to localize the
name of the custom view and the filter name property to update the name of the relations and
object names. For example, to localize the names of relations and objects that are in the Design
view in Chinese, update the value of the filter name property with the localized name as follows:

<view name="Design">
<ruleName>GenericRule</ruleName>
<defaultLayout>IncrementalHierarchic</defaultLayout>
<group name="relations">
<filter name="Attach" parameterSet="Attach" color="(64,100,142)"/>
<filter name="Impact" parameterSet="Impact" color="(243,130,37)"/>
<filter name="Master" parameterSet="Master" color="(167,153,80)"/>
<filter name="Structure" parameterSet="BOMStructure" color="(138,66,8)"/>
<filter name="Traceability" parameterSet="Traceability" color="(255,182,121)"/>
<filter name="WhereUsed" parameterSet="WhereUsed" color="(149,179,215)"/>
</group>
<group name="objects">
<filter name="Change" parameterSet="Change" color="(243,130,37)"/>

6-204 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring what views appear in the Relations Legend

<filter name="File" parameterSet="Dataset" color="(202,216,234)"/>


<filter name="Physical" parameterSet="Physical" color="(138,66,8)"/>
<filter name="Requirement" parameterSet="Requirement" color="(64,100,142)"/>
</group>
</view>

5. Check out the RelationBrowserConf dataset.

6. Delete the original RB_UIConfigure.xml file from the Named References dialog box and import
the new RB_UIConfigure.xml file.

7. Click Close to close the Named References dialog box.

8. Check in the RelationBrowserConf dataset.

Configuring what views appear in the Relations Legend

Update the RV1_DARB_RelationBrowserViews.Relations preference with the name of the views that
you want listed in the Relations Legend panel. The first name listed in the preference appears as the
default view.

Configuring what user interface style to apply to objects and relations

A user interface style defines aspects of user interface design such as shape and color of objects and
relations. These user interface styles are defined in an XML dataset that is specified in the
RV1_DARB_GraphStyle_file_name preference.

You can configure what styles your objects and relations use by modifying the XML dataset specified in
the RV1_DARB_PresentationRule_file_name preference, for instance,
RelationBrowserPresentationRule.

This file specifies what style to apply to an object or relation and what conditions to process when
applying the style:

<PresentationRule type="Node" styleId="FolderStyle">


<Conditions operator="or">
<Type value="Folder" operator="isTypeOf" />
</Conditions>
</PresentationRule>
<PresentationRule type="Node" styleId="RequirementStyle">
<Conditions operator="or">
<Type value="Requirement Revision" operator="isTypeOf" />
<Type value="RequirementSpec Revision" operator="isTypeOf" />
<Type value="Requirement" operator="isTypeOf" />
<Type value="RequirementSpec" operator="isTypeOf" />
</Conditions>
</PresentationRule>
<PresentationRule type="Edge" styleId="StructureRelationStyle">
<Conditions operator="and">

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-205


© 2020 Siemens
6. Configuring Active Workspace features

<Property name="relationType" value="Structure" operator="equalTo"/>


</Conditions>
</PresentationRule>

This file consists of the following elements:

• PresentationRule
Defines rules for one type of object. It the object satisfies the conditions specified by the rule, the
style will be applied to the object.
This element has the following subelements:

• type
Specifies the type of object: node for object and edge for relation.

• styleID
Specifies what style to apply. styleID must be the same as defined in the GraphStyle XML file. (The
name of the GraphStyle XML file is defined in the RV1_DARB_GraphStyle_file_name preference).

• Conditions
Specifies a condition value that must be satisfied before the style is applied to the object. The
condition value is a logical operator.
This element has the following subelements:

■ Property
Only used when the PresentationRule type is edge. Name specifies the relation type. Value
specifies the relation name.
For Property elements, only the equalTo operator is supported.

■ Type
Only used when PresentationRule type is node. Value specifies the name of the object.

■ Conditions Operator
Specifies what conditions must be must before the style is applied. Valid operators are: and (all
rules must be met) and or (at least one of the rules must be met).
Valid operators for Type are equalTo and isTypeOf. When property is edge, only the equalTo
operator is valid.

Specifying user interface styles such as shapes and colors

The user interface style controls aspects of user interface design such as shape and color of objects and
relations. The style is defined in an XML file. The name of this XML file is specified in the
RV1_DARB_GraphStyle_file_name preference.

Following is a sample of the style that you can define:

<EdgePresentation id="TraceabilityStyle">
<parameter name="lineStyle">

6-206 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Example of configuring user interface styles: configure the style of nodes and edges

<!—define line’s style -->


<value>SOLID</value>
</parameter>
<parameter name="lineWidth">
<!-- “lineWidth use pixel to define. Usually this digit no more than "10" -->
<value>2</value>
</parameter>
<parameter name="arrowOption">
<!-- arrow direction is directed for target-->
<value>target</value>
</parameter>
<parameter name="arrowSourceShape">
<!-- shape of arrow which direction is directed for source is circle-->
<value>circle</value>
</parameter>
<parameter name="arrowSourceFillInterior">
<!-- arrow is filled with color -->
<value>true</value>
</parameter >
<parameter name="arrowSourceScale">
<!-- Define the arrow size scale.-->
<value>1.0</value>
</parameter>
<parameter name="arrowTargetShape">
<!-- shape of arrow which direction is directed for target is DIAMOND -->
<value>simple</value>
</parameter>
<parameter name="arrowTargetFillInterior">
<!-- arrow is filled without color -->
<value>false</value>
</parameter>
<parameter name="arrowTargetScale">
<!--Define the arrow size scale. -->
<value>1.0</value>
</parameter>
</EdgePresentation>

Example of configuring user interface styles: configure the style of nodes


and edges

You can configure the style of nodes and edges in the Relations node in Active Workspace using a
combination of preferences and XML files.

Use the RV1_DARB_Tooltip_Max_Row preference to define the maximum number of rows to show in
the Relations node tooltip. Use the RV1_DARB_Tooltip_Max_Width preference to define the maximum
character length to show in the Relations node tooltip.

Perform the following steps to change the line style:

1. In the Teamcenter rich client, search for the RelationB* dataset.

2. In the Search pane, right-click RelationBrowserStyle and choose Named References.

3. In the Named References dialog box, select GraphStyle.xml and click Download.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-207


© 2020 Siemens
6. Configuring Active Workspace features

4. Open the GraphStyle.xml file and make the necessary changes. For example, to change the line
style of the traceability relation to dash, update the linestyle option under the Traceability Style
section from SOLID to DASH.

<EdgePresentation id="TraceabilityStyle">
<parameter name="lineStyle">
<value>DASH</value>
</parameter>
<parameter name="lineWidth">
<value>2</value>
</parameter>
<parameter name="arrowOption">
<value>target</value>
</parameter>
<parameter name="arrowSourceShape">
<value>circle</value>
</parameter>
<parameter name="arrowSourceFillInterior">
<value>true</value>
</parameter>
<parameter name="arrowSourceScale">
<value>1.0</value>
</parameter>
<parameter name="arrowTargetShape">
<value>simple</value>
</parameter>
<parameter name="arrowTargetFillInterior">
<value>false</value>
</parameter>
<parameter name="arrowTargetScale">
<value>1.0</value>
</parameter>
<parameter name="tooltip">
<value>relationType</value>
</parameter>
</EdgePresentation>

5. Check out the RelationBrowserStyle dataset.

6. Delete the original GraphStyle.xml file from the Named References dialog box and import the
new GraphStyle.xml file.

7. Click Close to close the Named References dialog box.

8. Check in the RelationBrowserStyle dataset.

Specifying what properties are visible in the object properties filter

Update the RV1_DARB_Filter_Properties preference with the internal names of the properties that you
want to see in the properties filter.

6-208 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring object expansion button in the one-step commands

Configuring object expansion button in the one-step commands

Update the RV1_DARB_Expand_Incoming_Levels preference with the number of levels that incoming
links can be expanded.

Update the RV1_DARB_Expand_Outgoing_Levels preference with the number of levels that outgoing
links can be expanded.

Configuring how edges attach to objects

When there are too many relation lines attached to an object, it becomes difficult to understand where
the lines are coming from. For easier understanding of where the lines are coming from, you can
terminate all edges as one point.

To do this, update the value of the RV1_DARB_Concentrated preference to true.

Schedule Manager configuration

Schedule Manager configuration tasks

What is Schedule Manager?

Use Schedule Manager to plan and track project tasks. A properly executed schedule ensures that
projects are completed on time, within budget, and to the satisfaction of the project stakeholders.

What can I configure?

The instructions for configuring Schedule Manager can be found in Configuring Schedule Manager in
the Teamcenter help collection.

What do I need to do before configuring?

Before you can configure Schedule Manager, you must install the features. Install the following from the
Features panel of Teamcenter Environment Manager (TEM):

• Schedule Manager (client)


Enables Schedule Manager in Active Workspace.
Select Active Workspace→Client→Schedule Manager.

• Schedule Manager (server)


Installs the server-side definitions for Schedule Manager.
Select Active Workspace→Server Extensions→Schedule Manager.

• (Optional) Change Management Schedule Manager Client

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-209


© 2020 Siemens
6. Configuring Active Workspace features

Allows interaction between Schedule Manager and Change Management in Active Workspace. It
allows Active Workspace users to relate schedules and change objects.

• (Optional) Change Management Schedule Manager (server)


Allows interaction between Schedule Manager and Change Management in Active Workspace. It
allows Active Workspace users to relate schedules and change objects.

• To use any async operation in Schedule Manager, such as Save As, task reassignment, or shifting a
schedule, in Enterprise knowledge Foundation select the following:

• Dispatcher Server

• Dispatcher Client

• Dispatcher Components

■ Dispatcher Scheduler

■ Dispatcher Client

■ Dispatcher Module

• To initiate workflows on schedule tasks where the workflow trigger type is Scheduled start date,
Both Scheduled start date and predecessors complete, or Either Scheduled start date and
predecessors complete, install and configure the Workflow to Scheduling Integration option in
Teamcenter Environment Manager (TEM).

Workflow to Scheduling Integration is discussed in Teamcenter features.

• To enable schedule coordinators to view resource workload data, the schedule coordinator must be
added to the Resource Graph Viewer role.

6-210 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Integrating Microsoft Project with Teamcenter

After installing Dispatcher

If you have installed Dispatcher to support async operations in Schedule Manager, refer the Configuring
the AsyncService topic in the Enable default translators chapter in Installing and Configuring Dispatcher
in the Teamcenter help collection for configuration instructions.

Async operations are required in Schedule Manager for the following operations:

• Creating a new schedule from an existing schedule (save as)

• Reassigning all schedule tasks from one member to another

• Shifting a schedule

What do schedules look like?

Following is an example of a schedule.

Integrating Microsoft Project with Teamcenter

As a system administrator, complete the following tasks to support Active Workspace and Microsoft
Project integration. This functionality is useful if there are employees in your organization who are
responsible for updating schedule tasks but don't use Active Workspace or Schedule Manager.

Integrate Microsoft Project with Teamcenter

1. Install Microsoft Project on your server.

2. Install Client for Office using the stand-alone installer. Select the Microsoft Project plugin in the
Select Features dialog box.

Configure Teamcenter to support Microsoft Project

• Prevent updates of schedules or tasks in certain states.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-211


© 2020 Siemens
6. Configuring Active Workspace features

• Map custom schedule task properties between Microsoft Project and Teamcenter. This ensures that
when a Microsoft Project schedule is imported into Teamcenter Schedule Manager, the custom
property data is automatically transferred and does need to be manually reentered. This procedure is
discussed in the Exchanging data between Microsoft Project and Schedule Manager section of the rich
client Schedule Management documentation.

Search configuration

Search configuration tasks

What is search?

Searching finds data stored in the Teamcenter environment. Users can search for many types of data,
such as objects, structured content, shapes, and classifications.

What can I configure?

You can configure many aspects of indexing and search, such as:

• Object data indexing

• Structure indexing

• Shape search

• Classification search

You can also install other search-related features such as Active Content and dispatcher.

What do I need to do before configuring?

Before you can configure search, you must install the indexing features.

Configuring structure indexing

Introduction to structure indexing

Structure indexing is part of the Active Content Structure feature that provides support for fast structure
(BOM) navigation and in-context search capability leveraged by the Active Workspace client.

If you are using Massive Model Visualization (MMV), structure indexing must be set up. MMV also
requires Visualization Data Server. The Visualization Data Server uses the structure indexing
infrastructure of Active Workspace to keep cached product structures up-to-date.

For any given product configuration, there are two indexes maintained:

6-212 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Structure indexing recommendations

• An index within the Teamcenter database that is used for structure modeling and navigation.

• An index within Solr used for in-context searches. (Structure data is stored within the same Solr
instance as object data but within a separate collection.)

The Structure feature is made up of several components:

• Template
Contains the model and schema, the tcserver libraries, and so on.

• Active Workspace client contributions


Contains the client exposure of the server features.

• Indexer and translator additions


Contains indexing framework support and additions.

Use the bomindex_admin utility and the TcFTSIndexer to manage BOM index data. The
runTcFTSIndexer utility maintains both Teamcenter and Solr indexes. Structure indexing support is
added into the TcFTSIndexer installation during installation. Active Workspace should already be
installed and working.

All Active Workspace indexing is orchestrated by a single TcFTSIndexer instance. This is the index
orchestrator that performs orchestration functions for all types of indexing (object data, structure, and
so on). It is expected that the TcFTSIndexer is run with the -service argument, and separate commands
are issued to control the indexing operations for the different indexing types. A given indexing action
can be executed once or executed on a given interval.

Structure indexing recommendations

Indexing structure content requires effort. Therefore, you must understand what content should be
indexed for the most benefit, and the configurations of that content that are appropriate and useful for
index-enabled interaction.

For example, suppose you have a dozen significant top-level structures representing product platforms.
This is a clear example of content that would benefit from being indexed. Even if that content were no
longer active within the engineering organization or were out of production, there may still be value to
sustaining that definition if users would benefit from the information about those products.

To help you decide what you should index, following are some examples.

• Must index

• Large structures using Massive Model Visualization

• Should likely index

• Product platforms under development

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-213


© 2020 Siemens
6. Configuring Active Workspace features

• Requirement structure for a strategic initiative

• Mature product in manufacturing production

• Should be considered for indexing

• Moderately sized structures sharing considerable reused content

• Out-of-production products with ongoing service

• Unlikely to need an index

• R&D concepts

• Legacy products out of production

• Small and simple structures

Structure indexing provides where-used capabilities in the top-level assembly contexts that are indexed
and facet-based search filtering capability.

Structure indexing requirements for Massive Model Visualization

Structure indexing is required for Massive Model Visualization (MMV) large structures. MMV also
requires the Visualization Data Server. The Visualization Data Server uses the structure indexing
infrastructure of Active Workspace to keep cached product structures up-to-date.

You can retain interim files that represent changes between the last valid indexed version and the latest
structure data.

Indexing design and structured content

Teamcenter maintains a separate index for structured content to ensure search results are always up-to-
date. The administrator defines the structures and configurations to index, minimizing response times
whenever a user searches for data.

The following diagram shows the indexing framework mechanism.

6-214 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Indexing design and structured content

The following diagram shows the process that occurs when you create an index for structured content.

To define structured content search indexes, you define property constants on structure elements in the
Business Modeler IDE to specify the properties to index. The Teamcenter indexer then indexes those
properties when it creates or updates the structured content index. You use the same property
constants as you use with the basic Active Workspace search but attach them to structure elements.
Changing the structure filters follows the same process as other search filters.

You must reindex the structure at regular intervals to ensure that the search results reflect changes to
the structure. Manual edits and system operations (for example, release and revise) on structures are
reflected only after the indexer processes the changes.

Each top level of a structure is indexed for all the specified revision rules and effectivities. For example:

• Latest Working, Released creates one set of occurrences.

• Released creates one set of occurrences.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-215


© 2020 Siemens
6. Configuring Active Workspace features

• Released, Effectivity Milestone 1(1/1/2013) creates one set of occurrences.

For best performance, Siemens Digital Industries Software recommends you index only those structures
and configurations that are frequently accessed.

Note:
Whenever there is a change to a revision rule or a saved variant rule (SVR), you must run an index
synchronization on the structure.

For each searchable revision rule, the system creates a unique set of occurrences that includes all
possible variations in the structure (sometimes referred to as a 150% BOM). Each indexed occurrence is
stored with a bit mask that identifies the valid variant rule for the occurrence. The variant mask is
exported in TC XML format and indexed in the Teamcenter indexer. Teamcenter can then process the bit
mask to build a 100% BOM for any given variant rule.

Tip:
To have the index update the variant mask when new SVRs are added to the index definition, set
the PersistFullyExpandedSVR site preference to true before creating the SVRs.

The following diagram shows the process that occurs when a user changes index content and
Teamcenter updates the index.

Teamcenter maintains the indexed status of each structure in the Awb0BOMIndexAdminData


business object on the awb0IndexState property.

6-216 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Index structure content data

Index structure content data

Index the structure content by running the bomindex_admin utility, for example:

bomindex_admin -u=username -p=password -g=dba -logfile=C:\Scratch\log\log1.txt


-function=create -inputfile=C:\Scratch\log\bomindex_admin_input.txt

Maintain the structure indexes by running the runTcFTSIndexer utility using the structure type.

Structure index life cycle

Over the course of an index life cycle there are 16 possible states. These states represent the current
processing or condition the index is in.

Following is the life cycle of an index:

1. Created
Product configuration parameters are defined but the index data is not yet generated.

2. Active
The index data is generated and synchronized periodically.

3. Delete pending
The product configuration is marked for deletion, or the delete processing is occurring.

4. Deleted
There are no longer any artifacts relating to the index configuration.

The current index state and configuration details for product configurations are maintained within the
Teamcenter database as unique BOMIndexAdminData table entries. As indexes for product
configurations are created, maintained, and then eventually deleted, it is the BOMIndexAdminData
table entry that tracks the configuration and state information. The data contained in the
BOMIndexAdminData table is often referred to as product configuration, BIAD, or BIADInfo.

The BOMIndexAdminData entry for a given product configuration is created (and deleted) using the
bomindex_admin command line utility.

The TcFTSIndexer is responsible for orchestrating the index generation and synchronization of the
indexes defined by the BOMIndexAdminData entries.

Updating an indexed structure with an added or modified saved variant rule (SVR)

Structure indexing supports adding new as well as modified saved variant rules on an existing indexed
structure without a need to completely re-index the structure. When SVRs are saved, they do not
automatically capture the default and derived default values. These values must be saved for each SVR
that is used for indexing.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-217


© 2020 Siemens
6. Configuring Active Workspace features

Log on to the Teamcenter client and set the PersistFullyExpandedSVR preference to true. Load the
existing SVR in Structure Manager and click the Save button.

Indexing a structure with a closure rule

Administrators can index a structure with a closure rule to skip a subassembly or leaf BOM lines from
structure indexing. Such lines do not appear in Active Workspace. These subassembly or leaf BOM lines
do not appear in in-context search results and are not considered for index synchronization. The closure
rule based filter can be applied per indexed configuration. The input file line format is as follows:

item-query-string | item-revision-ID | base-revision-rule | effectivity-unit |


effectivity-end-item-query-string | effectivity-date (dd-mmm-yyyy hh:mm:ss) |
variant-rules | subscribers | closure-rules

For example, if an administrator is applying a BOMExpandSkipByItemType closure rule while indexing


with variant rules vrule1 and vrule2, then the input file for the bomindex_admin utility is as follows:

item_id=HDD-0527 | B | Any Status; Working | 5 |


item_id=HDD-0527 | 31-May-2013 00:00:00 |
vrule1:item_id=OwnItem1:B,vrule2:,vrule3:item_id=OwnItem3:A | | BOMExpandSkipByItemType

If the closure rule is updated, removed, or replaced, the administrator must trigger re-index.

Structure indexing utilities

Overview of the bomindex_admin utility

The bomindex_admin utility creates the BOMIndexAdminData to define a specific product


configuration to be indexed. This utility is also used to mark a specified product configuration (/
BOMIndexAdminData/BIAD) for deletion.

A product configuration has many parameters, and they are passed to the utility in a text file specified
by the -inputfile parameter. The input file is described in the bomindex_admin utility.

You can specify up to 110 effectivities. The effectivity numbers must be comma separated. Also, you
must repeat the effectivity end item query string for each effectivity unit, for example:

| 5,10,12 | item_id=HDD-0527,item_id=HDD-0527,item_id=HDD-0527 |

When performing the same function (action) on multiple product configurations, each product
configuration can be specified on separate lines in the input file. Add these one at a time to help
manage errors that may occur during the creation process.

6-218 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Structure indexing using TcFTSIndexer

Note:
Any revision status is not supported, either in the revision rule or in a custom revision rule entry
for the input file. Find information on creating revision rules in the Teamcenter online help.

Structure indexing using TcFTSIndexer

The TcFTSIndexer is used to orchestrate the required processing to create, synchronize, and eventually
delete the indexes defined by the BOMIndexAdminData tables (BIADs). TcFTSIndexer can be run in a
number of ways and is also used to perform object data indexing.

The TcFTSIndexer has an extensibility model that allows different indexing types to define the
processing required using a sequence of steps organized in flows. Steps can be reused by multiple flows
and different indexing types. This is different than the traditional QETL model where every action is
plugged in as a part of query, extract, transform, or load.

Key concepts of the extensibility model are:

• Type
Specifies the name of the indexing type (for example, objdata, structure).

• Action
Specifies a name that ties a command line option to start a flow (for example, sync starts the
synchronization flow).

• Flow
Specifies the flow to execute (for example, reindexflow, syncflow).

• Step
Specifies a single step that is executed as part of a flow.

With these concepts in mind, structure indexing is accomplished with:

• The structure indexing type.

• The test, show, sync, and recoverfailures actions.

• The testflow, showflow, syncflow, and recoverfailuresflow flows.

• A number of steps that are the building blocks of the various flows

The general syntax for starting any action is using the runTcFTSIndexer utility is:

runTcFTSIndexer -task=type:action [additional-arguments]

The -help argument lists all available actions. Do not use any actions described as Internal use only.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-219


© 2020 Siemens
6. Configuring Active Workspace features

runTcFTSIndexer -help

If you are using multiple types of indexing (for example, object indexing and structure indexing), the
TcFTSIndexer process must first be started in service mode, for example:

runTcFTSIndexer -service

However, you can still run the -task=structure:show and -task=structure:help tasks without having to
start it as a service first.

The main -task actions for structure indexing are:

• -task=structure:test
Performs basic tests, such as for Teamcenter logon, FMS connectivity, verifying or downloading of
transform files, Solr schema, and so on. This command cannot be run concurrently with other
structure indexing actions.

• -task=structure:show
Shows a summary of all configured product configurations.

• -task=structure:sync
Performs normal synchronization and delete actions for all product configurations. This command
queues up all the synchronization actions for the product configurations. The queued synchronization
actions are processed as resource permits. This command cannot be run concurrently with other
structure indexing actions. The TcFTSIndexer must be running in service mode to run this command.

• -task=structure:syncone product-config-UID
Performs normal synchronization and delete actions for a single product configuration UID. This
command queues up all the synchronization actions for the product configurations. The queued
synchronization actions are processed as resource permits. This command cannot be run concurrently
with other structure indexing actions.

• -task=structure:recoverfailures
Changes all product configurations with failed states to the last known good state. Structure indexing
will resume from the recovery state and structure will not be re-indexed completely.
For example:

IndexGenFailure will be changed to ReadyToIndex

IndexExportFailure or SolrIndexGenFailure will be changed to IndexExportRequested

IndexSyncExportFailure or IndexGenSyncFailure will be changed to IndexSyncRequested

IndexDelFailure or SolrIndexDelFailure will be changed to MarkedForDeletion

• -task=structure:resetall

6-220 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Obtain TcFTSIndexer troubleshooting logs

Downloads the latest transform and schema files, resets all active product configurations to the
ReadyToIndex state, and resets all deleted product configurations to the MarkedForDeletion state.
This command cannot be run concurrently with other structure indexing actions.

• -task=structure:reset product-config-UID
Resets the given PRODUCT_CONFIG_UID setting to the ReadyToIndex or MarkedForDeletion state.
This command cannot be run concurrently with other actions.

TcFTSIndexer troubleshooting

Obtain TcFTSIndexer troubleshooting logs

TcFTSIndexer logs are located in TC_ROOT\TcFTSIndexer\logs\. These logs contain messages from
object and structure data as well as framework messages. For example:

• TcFtsIndexer_objdata.log contains object data messages. These messages are filtered from
TcFtsIndexer.log.

• TcFtsIndexer_structure.log contains structure data messages. These messages are filtered from
TcFtsIndexer.log.

1. Change the logging level to DEBUG in the following %TC_DATA%\logger.properties file:

• logging.rootLogger

• logging.logger.Teamcenter

• logging.logger.Teamcenter.Soa.Communication

2. Change the logging level to DEBUG for the following in the %TC_ROOT%\ TcFTSIndexer\conf
\log4j.properties file:

• Log4j.logger.com.siemens.teamcenter.ftsi

3. Restart Solr and theTcServers and rerun the test use case.

4. Send the TcFtsIndexer log and the matching syslog and comlog files to the Global Technical
Access Center (GTAC) team.

You can identify the syslog and comlog files by matching the local time in the TcFtsindexer log
where the error occurred with the UTC time within the syslogs. Send all files that fit this criteria.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-221


© 2020 Siemens
6. Configuring Active Workspace features

Note:
To avoid performance issues, revert the logging levels back to the original state when your debug
session is complete.

Resolving TcFTSIndexer issues

Issue Possible resolution

Locate errors in TcFTSIndexer logs are located in TC_ROOT\TcFTSIndexer\logs\.


TcFTSIndexer Choose a method for finding errors that most closely aligns with
your issue.

• If the TcFTSIndexer is still running, you can send a summary


log report to the command window and to the
TcFtsIndexer.log. Open a new shell and run:

• TcFtsIndexer.bat/sh -status to generate the summary report


in the console. The summary shows the steps in the flow
where errors occurred.

• TcFtsIndexer.bat/sh -debug to generate additional


information in the summary report. The summary shows the
flow in progress, including connections and the logs
associated with them.

• If the TcFTSIndexer finished processing, navigate to the end of


TcFtsIndexer.log. The report contains an entry for each TaskId
that has an error.
Search for the TaskId in the log to locate the point of failure to
learn more about the error.

Note:
If you need more information or if a file is referenced in
the error, you can search for the TaskId in the files
associated with the error, including the files from the
previous step, in the TcFtsIndexer\working directory. For
example, if the error is in Transform, the associated
directory contains export files and transform files that
you can use to resolve the error.

Indexing Indexing performance depends on the number of warmed-up


performance tcserver instances and the number of connections to those
servers that are available for indexing. Using more servers and
connections supports greater parallelization.

6-222 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Resolving TcFTSIndexer issues

Issue Possible resolution

Note:
To ensure the optimal number of warmed up servers,
Siemens Digital Industries Software recommends that the
pool manager that maintains the tcservers be setup on a
separate, dedicated machine.

You can edit the Tc.maxConnections property in the


TcFtsindexer\conf\TcFtsIndexer.properties file to specify the
maximum number of Tc connections open simultaneously. You
can also change this value dynamically:

1. Open a new Teamcenter command window and navigate to


the TC_ROOT\TcFTSIndexer\bin directory.

2. Run the following runTcFTSIndexer utility command, where


the value for connections is the number of connections
desired:

runTcFTSIndexer -maxConnections=connections

The connections value should never exceed the number of


warmed up servers.

Note:
If you receive WARN - Connection to Tc failed
messages, check to ensure the number of
Tc.maxConnections has not exceeded the number of
warmed servers.

Login error You may encounter the following error when attempting to run
the runTcFTSIndexer utility and the environment is configured
for SSO:

Login Error: The login attempt failed:


either the user ID or the password is
invalid.

It may occur because the user running the utility is not properly
authenticated in the LDAP server. The default user that runs the
utility is infodba, as defined in the Tc.user setting in the TC_ROOT
\TcFTSIndexer\conf\TcFtsIndexer.properties file.
Ensure that the user running the indexer is authorized in LDAP:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-223


© 2020 Siemens
6. Configuring Active Workspace features

Issue Possible resolution

1. If you are using multiple TCCS SSO App IDs, make sure they
are configured correctly.
You can configure multiple application IDs using the
Environment Settings for Client Communication System
panel in Teamcenter Environment Manager (TEM).

2. Ensure that the user defined by the Tc.user setting in the


TC_ROOT\TcFTSIndexer\conf\TcFtsIndexer.properties file is
a valid user in the LDAP server and the Teamcenter
database. Create a user in both if needed, or select an
existing valid active user to run the runTcFTSIndexer utility.

3. In the console, set an environment variable to the password


value.

set mytcenv=password

4. Create an encrypted password file for this user by running


the encryptPass.bat/sh utility, located in the TC_ROOT
\TcFTSIndexer\bin directory, with the -tc argument and
specifying the environment variable name created in the
previous step, for example:

encryptPass -tc mytcenv

5. After you create the encrypted password file, remove the


environment variable value.

set mytcenv=

TcFTSIndexer The following message is displayed in output after running the


output states the runTcFTSIndexer utility:
search engine is
not accessible ERROR - The search engine is not accessible
or the search engine schema is not correct.

The Solr schema needs to be updated. Use the following


command:

6-224 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Troubleshooting structure

Issue Possible resolution


SOLR_HOME\TcSchemaToSolrSchemaTransform.bat TC_DATA
\ftsi\solr_schema_files

tcservers run out Reduce the Tc.maxConnectionUsedCount value in the


of memory TcFtsindexer\conf\TcFtsIndexer.properties file to reduce the
number of times a tcserver connection can be reused before
logout. This helps to lower the memory consumption per
tcserver.

tcserver Solr Error: An error has occurred during JSON parsing: Unknown
authentication value type. Line 1 character 1.
error
To resolve this error, update Solr credentials to reset the Solr
password.

Troubleshooting structure

Issue Possible resolution

TcFTSIndexer output indicates a The following message is displayed in output after running the
type definition does not exist runTcFTSIndexer utility:

Type definition for type does not exist.


Supported Type [objdata]

The Active Content Structure features are not installed.


Rerun the Teamcenter Environment Manager (TEM) and select
all Active Content Structure features.

Indexes are in failure states. Use the -task=structure:recoverfailures argument.


Examine the log output for details on the failures.

Changes to structured content do Changed data is shown immediately in searches when users
not appear immediately in add, remove, or change elements (occurrences or BOM lines).
searches.
However, when users change the underlying objects to which
occurrences or BOM lines refer, the changed data is not shown
immediately in the content. This includes:

• Revisions to the underlying object.

• Releasing the underlying object.

• Changing effectivity on the release status.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-225


© 2020 Siemens
6. Configuring Active Workspace features

Issue Possible resolution

• Changing properties on the underlying object.

Users see these changes in the content the next time data is
indexed.

Note:
The interval between indexing synchronizations is set by
the search administrator.

Managing structure indexes

Overview of managing structure indexes

To manage a given structure index, it first must be created using the bomindex_admin utility with the -
function=create option.

Once the product configuration is created, the TcFTSIndexer service automatically maintains the indexes
keeping them synchronized with the Teamcenter data that defines the structure. The index is
synchronized periodically based on the interval the synchronization operation runs using the following
runTcFTSIndexer utility command:

runTcFTSIndexer -task=structure:sync -interval=seconds

Once the product configuration is no longer needed, the bomindex_admin utility is used to mark the
product configuration for deletion using the -function=delete option. On the next synchronization
interval, the TcFTSIndexer process deletes the indexes and then finally deletes the associated
BOMIndexAdminData object that defined the product configuration.

Create a structure index

To create an index for a specific product configuration, use the bomindex_admin utility with the -
function=create and -inputfile options. Determine the product configuration that defines the index.
Create an input file with the format specified, configuring the index.

The input file line format is as follows:

item-query-string | item-revision-ID | base-revision-rule | effectivity-units |


effectivity-end-item-query-strings | effectivity-dates (dd-mmm-yyyy hh:mm:ss) | variant-rules |
subscribers | closure-rules

You can specify up to 110 effectivities. The effectivity numbers must be comma separated. Additionally,
you must repeat the effectivity end item query string for each effectivity unit, for example:

6-226 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Delete a structure index

| 5,10,12 | item_id=HDD-0527,item_id=HDD-0527,item_id=HDD-0527 |

You can specify up to 256 variant rules. The variant rules (also known as saved variant rules) are comma
separated and follow this format:

SVR-name:owning-item-query-string:owning-itemrevision-ID

The topline item revision is the default owner.

An example of an input file (bomindex_admin_input.txt) is as follows:

item_id=HDD-0527 | B | Any Status; Working | 5 |item_id=HDD-0527 | 31-May-2013 00:00:00 |


vrule1:item_id=OwnItem1:B,vrule2:,vrule3:item_id=OwnItem3:A

An example of running the bomindex_admin utility is as follows:

bomindex_admin -u=username -p=password -g=dba -function=create


-inputfile=bomindex_admin_input.txt -logfile=bomindex_admin.log

Assuming that there are no errors, this creates the required BOMIndexAdminData entries for the
specified product configuration. At this point, the configuration required to generate and maintain the
indexes exists, but there is no actual index data.

Save the input file for later use when the product configuration must be deleted.

Delete a structure index

When a given product configuration is no longer needed, mark the index for deletion so that the index
artifacts can be cleaned up. Use the bomindex_admin utility to mark the product configuration for
deletion using the same input file contents when the index was created.

Following is an example input file named bomindex_admin_input.txt:

item_id=HDD-0527 | B | Any Status; Working | 5 |item_id=HDD-0527 | 31-May-2013 00:00:00 |


vrule1:item_id=OwnItem1:B,vrule2:,vrule3:item_id=OwnItem3:A

Following is the example bomindex_admin utility execution:

bomindex_admin -u=username -p=password -g=dba -function=delete


-inputfile=bomindex_admin_input.txt -logfile=bomindex_admin.log

Assuming there are no errors, this marks the BOMIndexAdminData entries for deletion. On the next
sync action, the index data and BOMIndexAdminData table entry are deleted. At the end of the sync
action (delete), the show output is printed to the console:

--- BOM Index Summary ---


Status Product Config UID Window UID State Name TC
Count Solr Count
------ ------------------ -------------- ----- ------------------------------

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-227


© 2020 Siemens
6. Configuring Active Workspace features

------------ ------------
AC gcRNr4APIWcIeC 9Axq$7ymM1y6BD 8 SUB-479/A;1-holland-assy
2,254 2,254
AC gcUNanthIWcIeC $JCJg8_$M1Cq9C 8 flipfone_assembly/A;1
14 14
------ ------------------ -------------- ----- ------------------------------
------------ ------------

Maintain structure indexes

View the current states of the structure indexes

Little should be required to maintain the structure indexes. The TcFTSIndexer service handles all
processing as part of the -task=structure:sync -interval=seconds processing.

It is good practice to verify index states occasionally by using the -task=structure:show action. The
show action prints a summary of information to the service console of all product configurations
configured for indexing. Details of the configured indexers is shown in output as well as counts and
status. When synchronization is not actively processing an index, all states should be 8. (See the
following example.) If synchronization is actively processing a given index, the index can also be in
various intermediate states. Within the show output, verify the state, the last update date, and that the
TC counts and Solr counts match.

Run the following runTcFTSIndexer utility command:

runTcFTSIndexer -task=structure:show

The following example output in the service console shows all indexes are in state 8. The counts match
and the last update dates are current.

2014-08-07 13:17:45,442 INFO - Running TcFtsIndexer Type: structure FlowAction: show


--- BOM Index Summary ---
Status Product Config UID Window UID State Name TC
Count Solr Count
------ ------------------ -------------- ----- ------------------------------
------------ ------------
AC wkUN927DoR4_1D StimEfzjM1SdMD 8 HDD-0527/A;1-Hard Drive Assemb
364 364
AC wkXN927DoR4_1D bCCyVUKhM1SoNA 8 HDD-0527/A;1-Hard Drive Assemb
364 364
AC wkaN927DoR4_1D oMOQnKj5M1yEfC 8 HDD-0527/B;1-Hard Drive Assemb
195 195
AC wkdN927DoR4_1D lwfEyXsKM1i0TB 8 HDD-0527/B;1-Hard Drive Assemb
195 195
AC wseN927DoR4_1D SDFtNH5NM1y6wC 8 JCB-Fastrac/B;1-Tractor
9,968 9,968
AC wwRN927DoR4_1D 3GOvLJUYM1yOyB 8 JCB-Fastrac/B;1-Tractor
9,968 9,968
------ ------------------ -------------- ----- ------------------------------
------------ ------------

6-228 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
View the status of synchronization in progress

Note:
The show action does require available Teamcenter connections. If the show command takes a
long time to run it usually is the result of other actions within the indexer using the connections.
Once a connection becomes available, the show action runs.
The show output currently is only displayed in the TcFTSIndexer service console. The show output
is also printed at the end of many of the structure indexer actions.

View the status of synchronization in progress

Another useful TcFTSIndexer option is -status. This prints status information about any currently running
flows. The output in the syncdispatchstep sections provides details about current structure:sync
processing.

Run the following command:

runTcFTSIndexer –status

The following output was gathered while the structure:sync command was in process. For
structure:sync actions, the most useful information is contained in the syncdispatchstep output
sections. Run the runTcFTSIndexer -status command to see output similar to the following example:

------------------------------------------
syncdispatchstep------------------------------------------
TaskId Time Status StepInfo
U14977b73edd1c0a802641379 0.00 Started {ProductConfigUID=goZRkWxoqd$DyB,
WindowUID=nmSCFWD0M1SBXC,
Process=sync (update),
Status=SOA call in progress, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8],
LastStatusUpdate=2014-10-27 17:02:42 -0500}
-----------------------------------------------------------------------------------------
-----------
Status: Created: 0 Started: 1 Done: 0 Error: 0
Total Time 0.00 Total Count 0
Step Summary
syncdispatchstep
Status: Created: 0 Started: 1 Done: 0 Error: 0
Total time for all Steps 0 sec
Overall Time 5.314 sec
------------------------------------------
syncdispatchstep------------------------------------------
TaskId Time Status StepInfo
U1493c8428cd7c0a802641381 0.00 Started {ProductConfigUID=gocRkWxoqd$DyB,
WindowUID=ybqRdpVmM1Sn1A,
Process=sync (update),
Status=Waiting for 1 permits, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8],
LastStatusUpdate=2014-10-27 17:02:39 -0500}
-----------------------------------------------------------------------------------------
-----------
Status: Created: 0 Started: 1 Done: 0 Error: 0
Total Time 0.00 Total Count 0
Step Summary
syncdispatchstep

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-229


© 2020 Siemens
6. Configuring Active Workspace features

Status: Created: 0 Started: 1 Done: 0 Error: 0


Total time for all Steps 0 sec
Overall Time 5.469 sec
...

Because the sections and status output is scattered you may want to filter the output to show only the
status lines. Run the runTcFTSIndexer -status | find "ProductConf" command to see output similar to
the following example:

U14977b73edd1c0a802641379 0.00 Started {ProductConfigUID=goZRkWxoqd$DyB,


WindowUID=nmSCFWD0M1SBXC, Process=sync (update),
Status=SOA call in progress, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8, 5,
8],
LastStatusUpdate=2014-10-27 17:02:54 -0500}

U1493c8428cd7c0a802641381 0.00 Started {ProductConfigUID=gocRkWxoqd$DyB,


WindowUID=ybqRdpVmM1Sn1A, Process=sync (update),
Status=SOA call in progress, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8],
LastStatusUpdate=2014-10-27 17:02:54 -0500}

U14949b7e5e27c0a802641383 0.00 Started {ProductConfigUID=gofRkWxoqd$DyB,


WindowUID=OVSe3Sn0M1CE$B, Process=sync (update),
Status=Waiting for 1 permits, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8],
LastStatusUpdate=2014-10-27 17:02:39 -0500}

U1499a46af6c7c0a802641387 0.00 Started {ProductConfigUID=gsSRkWxoqd$DyB,


WindowUID=4weJYgJ9M1yOVC, Process=sync (update),
Status=Waiting for 1 permits, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8],
LastStatusUpdate=2014-10-27 17:02:39 -0500}
...

This output shows the various product configurations, what initial state they were in, the states they
were propagated through (for this sync action), and other status information about what types of
operation are currently pending such as waiting on connection, SOA call in progress, or done.

Managing failures

When a product configuration ends up in a failed state, it remains in that state until the administrator
runs the structure:recoverfailures action. When that is run, any failed product configurations are
returned to the initial state and the index is regenerated (re-indexed) on the next synchronization.

Run the following command:

runTcFTSIndexer -task=structure:recoverfailures

Following is truncated example output. It shows a failed product is now in state 0.

--- BOM Index Summary ---


Status Product Config UID Window UID State Name TC
Count Solr Count
------ ------------------ -------------- ----- ------------------------------
------------ ------------
AI gcRNanawIWcIeC s3PvF$$yM1ipFC 0 HDD-0527/B;1-Hard Drive Assemb
81 81

6-230 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Restarting the indexer

AC gcRNr4APIWcIeC 9Axq$7ymM1y6BD 8 SUB-479/A;1-holland-assy


2,254 2,254
AC gcUNanthIWcIeC $JCJg8_$M1Cq9C 8 flipfone_assembly/A;1
14 14
------ ------------------ -------------- ----- ------------------------------
------------ ------------

On the next synchronization interval, that product configuration's indexes regenerated, and in this case,
it succeeds. Following is the truncated output:

--- BOM Index Summary ---


Status Product Config UID Window UID State Name TC
Count Solr Count
------ ------------------ -------------- ----- ------------------------------
------------ ------------
AC gcRNanawIWcIeC s3PvF$$yM1ipFC 8 HDD-0527/B;1-Hard Drive Assemb
81 81
AC gcRNr4APIWcIeC 9Axq$7ymM1y6BD 8 SUB-479/A;1-holland-assy
2,254 2,254
AC gcUNanthIWcIeC $JCJg8_$M1Cq9C 8 flipfone_assembly/A;1
14 14
------ ------------------ -------------- ----- ------------------------------
------------ ------------

If a product configuration continues to fail, output generated during the synchronization processing,
TcFTSIndexer logs, and tcserver syslog files should help diagnose the underlying issue.

A common source of errors is stopping the TcFTSIndexer while synchronization operations are in
progress. If you wish to stop the TcFTSIndexer you should never kill the process while actions are being
processed. Use the -stop option to stop the scheduling of any flows, then verify that all flows have
stopped using the -status option, and then finally shut down the TcFTSIndexer process using Ctrl+C in
the service console window.

Restarting the indexer

Sometimes you may observe that the FTS indexer is stuck. The symptoms of this condition are one or
more of the following:

• The indexer is not picking a product for indexing.

• When you run TcFTSIndexer.bat with the -status argument, it reports status as Status=SOA call
in progress. This status does not change over a long period of time.

• One or more Teamcenter server process crashes is observed in the logs.

These symptoms indicate the Teamcenter server crashed while processing and the crash was not
reported back to the FTS indexer by the pool manager or Web tier.

To resolve this condition, you should stop synchronization, then (after an interval) restart the
TcFTSIndexer service and reset the stuck configuration.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-231


© 2020 Siemens
6. Configuring Active Workspace features

Structure indexing details

Structure index states

There are various categories of index states:

• Initial
Indicates either new index creation or that an existing index is marked for deletion. In the state
output, the create state is 0 - ReadForIndexing and the marked for deletion state is 10 -
MarkedForDeletion. These states are usually set by the bomindex_admin utility, but can also be set
by certain TcFTSIndexer actions. When the next sync action occurs, any product configuration in
these states is propagated to other states during processing.

• Transitional
Tracks the intermediate progress while processing a given product configuration. Transitional states
should naturally propagate to final or terminal (failed) states during sync processing. Transitional
states are only expected to be encountered during sync processing. If a transitional state is
encountered at the start of sync processing, that indicates the given product configuration was not
able to complete index processing for an unknown reason and that product configuration is promoted
to the closest failure state.

• Final
Indicates index processing for the given product configuration completed normally (8 -
SolrIndexGenSuccess). Although you might expect to have a final deleted success state as well, the
final step in index delete processing is to delete the product configuration data for the index, along
with the state information.

• Terminal
Track failures at particular steps in index processing. Once these states are reached, no further
processing occurs for the given product configuration. Failure states are set either:

• Directly as a result of a processBOMIndex SOA call when the tcserver process had an issue
processing the index. Examine the tcserver syslogs for details about the failure. Examine the
TcFtsIndexer.log file for the ERROR message and any other information that was sent back with
the error.

• Or the failure was detected in the TcFTSIndexer process due to a failure or an unexpected event.
Examine the TcFtsIndexer.log file or the TcFtsIndexer_structure.log file for ERROR information.

To recover from terminal states (failures) use the structure:recoverfailures action, which resets all
failed product configurations to the appropriate initial state and the next sync action attempts to
process them again.

You must be careful that TcFTSIndexer is never stopped while the structure:sync action is running. If it
is stopped prematurely any indexes that were still being processed are in transitional states and are set
to terminal states on the next sync action.

6-232 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Complete structure index state list

Complete structure index state list

Run the following runTcFTSIndexer utility command to see the list of structure index states:

runTcFTSIndexer -task=structure:show

Following is the complete list of index states:

0 – ReadyToIndex
Indicates an initial index state usually set by the bomindex_admin -function=create command.
This state is also set by the structure:reset, structure:resetall, or structure:recoverfailures
actions for active but failed indexes.

1 – IndexGenStarted
Indicates a transitional state set by the processBOMIndex SOA operation. It is set while the
Teamcenter database index generation is in progress.

2 – IndexGenSuccess
Indicates a transitional state set by the processBOMIndex SOA operation. It is set when the
Teamcenter database index generation is complete.

3 – IndexGenFailure
Indicates a terminal failure state set by the processBOMIndex SOA operation. It is set if the
Teamcenter database index generation failed.

4 – IndexExportStarted
Indicates a transitional state set by the processBOMIndex SOA operation. It is set while the
Teamcenter database index export is in progress.

5 – IndexExportSuccess
Indicates a transitional state set by the processBOMIndex SOA operation. It is set while the
Teamcenter database index export is complete and the TC XML download is starting.

6 – IndexExportFailure
Indicates a terminal failure state set by the processBOMIndex SOA operation. It is set if the
Teamcenter database index export or TC XML download fails.

7 – SolrIndexGenStarted
Indicates a transitional state set by structure indexer. It is set while the TcFTSIndexer is
transforming and uploading the index data to Solr.

8 – SolrIndexGenSuccess
Indicates a final resting state set by structure indexer. It is set when the TcFTSIndexer has
successfully updated Solr with the index data.

9 – SolrIndexGenFailure

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-233


© 2020 Siemens
6. Configuring Active Workspace features

Indicates a terminal failure state set by structure indexer. It is set if the TcFTSIndexer had a failure
while transforming or uploading the index data.

10 – MarkedForDeletion
Indicates an initial delete state usually set by the bomindex_admin -function=delete command. It
is also set by the structure:recoverfailures action for any deleted indexes that failed during delete
processing.

11 – IndexDelStarted
Indicates a transitional state set by the processBOMIndex SOA operation. It is set while the
Teamcenter database index data is being deleted.

12 – IndexDelSuccess
Indicates a transitional state set by the processBOMIndex SOA operation. It is set when the
Teamcenter database index data delete is complete.

13 – IndexDelFailure
Indicates a terminal failure state set by the processBOMIndex SOA operation. It is set if the
Teamcenter database index data delete failed.

14 – SolrIndexDelStarted
Indicates a transitional state set by the structure indexer. It is set while the TcFTSIndexer is deleting
the Solr index data.

15 – SolrIndexDelSuccess
Indicates a transitional state set by the structure indexer prior to object deletion. After this state,
the BOMIndexAdminData entry is deleted.

16 – SolrIndexDelFailure
Indicates a terminal failure state set by the structure indexer. It is set if the TcFTSIndexer had a
failure while deleting the Solr index data.

17 – IndexGenSyncStarted
Indicates a transitional state set by the processBOMIndex SOA operation when an index was
previously synchronized and is currently being synchronized again. (This is a synchronization
update as opposed to an initial synchronization.)

Structure index state propagation

This is the actual state propagation that occurs when processing indexes. Not all of these states are
necessarily seen in the indexer as many are expected to be transitioned during backend server
processing. Following is a complete set of state propagations for various types of sync processing:

• sync (initial)

0 - ReadyToIndex
1 – IndexGenStarted (On failure, processing goes to 3 – IndexGenFailure and then stops.)

6-234 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Showing structure index output

2 – IndexGenSuccess
4 – IndexExportStarted (On failure, processing goes to 6 – IndexExportFailure and then
stops.)
5 – IndexExportSuccess
7 – SolrIndexGenStarted (On failure, processing goes to 9 – SolrIndexGenFailure and then
stops.)
8 – SolrIndexGenSuccess (Processing then stops.)

• sync (update)

8 – SolrIndexGenSuccess
17 - IndexGenSyncStarted (This is a transitional state set by the processBOMIndex SOA
operation.)
4 – IndexExportStarted (On failure, processing goes to 6 – IndexExportFailure and then
stops.)
5 – IndexExportSuccess
7 – SolrIndexGenStarted (On failure, processing goes to 9 – SolrIndexGenFailure and then
stops.)
8 – SolrIndexGenSuccess (Processing then stops.)

• sync (delete)

10 - MarkedForDeletion
11 – IndexDelStarted (On failure, processing goes to 13 – IndexDelFailure and then stops.)
12 – IndexDelSuccess
14 – SolrIndexDelStarted (On failure, processing goes to 16 – SolrIndexDelFailure and then
stops.)
15 – SolrIndexDelSuccess (The entry is deleted.)

Showing structure index output

Run the following runTcFTSIndexer utility command to see the structure index status:

runTcFTSIndexer -task=structure:show

Following is sample output:

--- BOM Index Summary ---


Status Product Config UID Window UID State Name TC
Count Solr Count
------ ------------------ -------------- ----- ------------------------------
------------ ------------
AC wkUN927DoR4_1D StimEfzjM1SdMD 8 HDD-0527/A;1-Hard Drive Assemb
364 364
AC wkXN927DoR4_1D bCCyVUKhM1SoNA 8 HDD-0527/A;1-Hard Drive Assemb
364 364
AC wkaN927DoR4_1D oMOQnKj5M1yEfC 8 HDD-0527/B;1-Hard Drive Assemb
195 195
AC wkdN927DoR4_1D lwfEyXsKM1i0TB 8 HDD-0527/B;1-Hard Drive Assemb
195 195

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-235


© 2020 Siemens
6. Configuring Active Workspace features

AC wseN927DoR4_1D SDFtNH5NM1y6wC 8 JCB-Fastrac/B;1-Tractor


9,968 9,968
AC wwRN927DoR4_1D 3GOvLJUYM1yOyB 8 JCB-Fastrac/B;1-Tractor
9,968 9,968
------ ------------------ -------------- ----- ------------------------------
------------ ------------

Following is an explanation of the columns:

• Status
Indicates the general category of the index state. The output is sorted by the status category.

• Active index status codes:

■ AI
Flagged for initial index generation or re-index.

■ AP
Indicates that sync process in progress.

■ AC
Indicates that the sync process is complete.

■ AF
Indicates that the sync process failed.

• Deleted index status codes:

■ DI
Flagged for deletion.

■ DP
Indicates that deletion is in progress.

■ DF
Indicates that the deletion failed.

• Product Config UID


Indicates the UID of the BomIndexAdminData object that identifies the product configuration details.

• Window UIDs
Indicates the BOM window UID.

• State
Indicates the state of the index. A state legend is included in the show output.

• Name
Indicates the name of the top line of the product structure.

6-236 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Status syncdispatch output

• TC Count
Indicates the number of occurrences found in the database for this product configuration.

• Solr Count
Indicates the number of occurrences found in Solr for this product configuration. (The counts should
match.)

• Last update date


Indicates the time when the index was last updated.

Status syncdispatch output

Run the following command:

runTcFTSIndexer -status | find "ProductConf"

Following is an example of the output in the syncdispatchstep section filtered to show only the
structure status information:

U14977b73edd1c0a802641379 0.00 Started {ProductConfigUID=goZRkWxoqd$DyB,


WindowUID=nmSCFWD0M1SBXC, Process=sync (update),
Status=SOA call in progress, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8, 5,
8],
LastStatusUpdate=2014-10-27 17:02:54 -0500}

U1493c8428cd7c0a802641381 0.00 Started {ProductConfigUID=gocRkWxoqd$DyB,


WindowUID=ybqRdpVmM1Sn1A, Process=sync (update),
Status=SOA call in progress, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8],
LastStatusUpdate=2014-10-27 17:02:54 -0500}

U14949b7e5e27c0a802641383 0.00 Started {ProductConfigUID=gofRkWxoqd$DyB,


WindowUID=OVSe3Sn0M1CE$B, Process=sync (update),
Status=Waiting for 1 permits, CurrentState=8 (SolrIndexGenSuccess), StateHistory=[8],
LastStatusUpdate=2014-10-27 17:02:39 -0500}
...

Following is an explanation of the columns:

• ProductConfigUID
Indicates the UID of the BomIndexAdminData object that identifies the product configuration details.

• WindowUID
Indicates the BOM window UID.

• Process
Indicates the type of processing that is occurring for the given product configuration. Following are
available values:

• Dispatching
Indicates that dispatching is occurring. This is a transient message.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-237


© 2020 Siemens
6. Configuring Active Workspace features

• sync (initial)
Indicates the first time the index is generated (for example, during re-index).

• sync (update)
Indicates an incremental sync update is occurring.

• sync (delete)
Indicates sync delete processing.

• promoting to failure (found in intermediate state)


Indicates that the given product configuration did not complete processing on the last sync action
and is being promoted to a failure state.

• ignored (previously failed)


Indicates that the given product configuration was previously promoted to a failure state and is
being skipped during this processing.

• Status
Indicates fine-grained detail about the current processing. Possible values include:

• Waiting for # permits


Indicates that processing is waiting for the required number of permits to begin processing.

• Waiting for connection


Indicates that processing is waiting for a Teamcenter connection.

• SOA call in progress


Indicates that a Teamcenter SOA call is in process.

• Download
Indicates that export files are being downloaded.

• Transform
Indicates that export data is being transformed into Solr files.

• Solr
Indicates that Solr is being updated.

• Done
Indicates that process completed without error.

• Failed
Indicates that an error occurred.

• CurrentState
Indicates the current state of the given product configuration.

6-238 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Important structure content indexing files

• StateHistory
Indicates the history of the states recorded while processing this product configuration during this
sync process. Some expected values are [8, 5, 8] (sync update) and [0, 2, 5, 8] (initial sync).

Important structure content indexing files

The following files are used in structure content indexing:

• Configuration file

TC_ROOT\TcFTSIndexer\conf\TcFtsIndexer_structure.properties file

This properties file configures the structure indexing including the type, flows, steps, and actions.
Most of the content in this file should not be modified. There is one set of properties that configures
control logic to limit the number of concurrent sync operations, weighting the different types of sync
actions (initial versus update) differently. The reason for the different weighting is that initial sync
processing is a much more resource intensive operation on the tcserver instance and database
processes.
Default values are shown in the file as follows:

#
# control the number of concurrent structure syncs to limit server and oracle load
#
permits.total=7
permits.required.initialsync=3
permits.required.updatesync=1

For a given type of sync actions to run (initial or update), it must be able to obtain the required
number of permits for that type. There is a limited (total) number of permits that can be used at any
given time. Any sync operation that cannot obtain the required permits waits until other sync
processing finishes, releasing more permits. This controls the load on the servers during the sync
processing.
The combinations of sync processes that can run concurrently:

0 initialsync actions and up to 7 updatesync actions

1 initialsync actions and up to 4 updatesync actions

2 initialsync actions and only 1 updatesync action

When making changes to these values also consider the maximum number of connections properties
found in the TcFtsIndexer.properties file.

• Logging configuration file

TC_ROOT\TcFTSIndexer\conf\log4j.properties

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-239


© 2020 Siemens
6. Configuring Active Workspace features

This file is used to change the logging level. (The default logging level for the TcFTSIndexer process is
INFO.)

• Log file

TC_ROOT\TcFTSIndexer\logs\TcFtsIndexer.log

• Cache files

TC_ROOT\TcFTSIndexer\cache\*.cache

These files may need to be deleted if Teamcenter preferences are changed that affect the Solr
installation and FMS.

Integrate a new search indexing type with dispatcher

If there are steps that need to be offloaded to a different machine for CPU or memory optimizations,
mark them as step-name.usedispatcher=true in the property file. Each step must implement the
dispatcher-specific interfaces. These methods are called by the TcFTSIndexer framework from the
TcFTSIndexer orchestrator or the Dispatcher module depending on the context.

1. Make sure that the TcFTSIndexer is installed and working in dispatcher mode.

2. Create a dispatcher flow that calls the step to be run in the Dispatcher module in the
TcFtsIndexer_type-name.properties file.

3. Copy the custom TcFtsIndexer_type-name.properties file to the dispatcher-location\Module


\Translators\TcFTSIndexer\conf directory.

4. Copy the custom JAR file to the dispatcher-location\Module\Translators\TcFTSIndexer\lib


directory.

5. Create a new translator service in the dispatcher-location\Module\conf\translator.xml file that


executes the new dispatcher flow. See the existing example objdatatransformstep service for
details.

6. Start the Dispatcher module.

7. Run the main flow from TcFTSIndexer orchestrator using the -dispatcher argument.

Configuring shape search

If you installed the Shape Search feature, you can configure it using the following preferences:

• GeolusServer
Defines the URL used for communication between shape search and Geolus.

6-240 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring shape search

• AWC_ShapeSearch_Max_Result_Count
Improve performance by setting the maximum number of search results. The default is 3000, and the
maximum is 5000.

• SS1_DASS_enable
Enables and disables shape search.

• SS1_DASS_shape_default
Specifies the default shape similarity for shape search.

• SS1_DASS_size_default_max
Specifies the default upper range limit a user can specify when applying a size filter.

• SS1_DASS_size_default_min
Specifies the default lower range limit a user can specify when applying a size filter.

• SS1_DASS_size_lower_limit
Specifies the smallest lower range limit a user can specify when applying a size filter.

• SS1_DASS_size_upper_limit
Specifies the highest upper range limit a user can specify when applying a size filter.

To best plan implementing search for your users, see the Administering Search Guidemap in the
Teamcenter help.

Set the GeolusServer preference

The Shape Search feature in Active Workspace uses the Geolus shape search engine. To enable
communication between shape search and Geolus, you must create the GeolusServer preference.

Note:
This step is required only if you installed Shape Search.

Using Preference Management in Active Workspace or Organization in the rich client, create the
GeolusServer preference with the following properties:

• Name: GeolusServer.

• Category: DecisionApps.ShapeSearch.Preferences.

• Description: Type a useful description for the preference.

• Value: Type the Geolus server URL, in the following format:


protocol://gServer:gPort/gContext

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-241


© 2020 Siemens
6. Configuring Active Workspace features

protocol can be http or https.

gServer is the machine name or IP address of the machine running the Geolus server. It must be
accessible by all Teamcenter clients that need to connect to it.

gPort is the port number that the server uses to handle HTTP or HTTPS requests.

gContext is the context root of the Geolus server.

Changing the default thumbnails

Use the following Teamcenter preferences to specify which thumbnails are displayed.

• TC__thumbnail_relation_order

• TC__thumbnail_dataset_type_order

Starting from the source object, the system will use the priorities listed in the relation and dataset
preferences to find a target dataset from which to retrieve the thumbnail image. Within the target
dataset, the priority of Named References is based on their file extensions as follows:

qaf, gif, jpg, png, bmp, svg, svgz, tif, tiff

In this example, the images_preview.qaf image would be displayed as the thumbnail image.

Note:
• Changes made to these preferences will affect other clients.

• If the TC__thumbnail_relation_order preference is not specified, the default list and order of
relation types is used.

Thumbnail

IMAN_specification

6-242 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Security configuration tasks

IMAN_manifestation

IMAN_Rendering

IMAN_Motion

IMAN_3D_snap_shot

TC_Attaches

Fnd0DiagramSnapshot

IMAN_Simulation

Security configuration

Security configuration tasks

What is security?

Security is protecting data managed in Teamcenter through methods such as user authentication and
file permissions.

Why configure security?

Although most security is managed in Teamcenter, you may want to change certain settings of security
for Active Workspace.

What can I configure?

You can configure the following aspects of security:

• Configure postlogon stages.

• Configure logoff for Active Workspace.

• Configure multiple application IDs.

• Configure load balancer time-outs.

• Configure location codes.

• Configure owning project.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-243


© 2020 Siemens
6. Configuring Active Workspace features

• Configure project-level security.

• Protect against cross-site request forgery.

• Configure a two-way SSL proxy server.

• Configure HTTP GET redirect method.

• Configure a logoff landing page.

What do I need to do before configuring?

No special setup must be done to install security for Active Workspace.

Where can I find out more about security?

See Security Administration in the Teamcenter help collection.

Configure sequence of the postlogon stages

You can configure the sequence of the postlogon stages displayed on the Active Workspace client after
successful authentication by setting the AWC_PostLoginStages preference.

PickGeograp Displays the Geography entry on the postlogon page.


hy

Configure logoff for Active Workspace

There are three possible scenarios for Active Workspace logoff. The logoff behavior changes based on
whether Teamcenter Security Services is being configured or not, and if so, how it is configured for
authentication.

If Active Workspace is being configured to use Teamcenter Security Services behind an authenticating
gateway such as SiteMinder, WebSeal, IIS or Apache, this is a special case that requires additional
configuration.

This is the default behavior to expect for each scenario.

• Active Workspace is using Teamcenter authentication without Teamcenter Security Services:

1. User clicks the logout button.

2. Teamcenter clears the tcserver session.

3. Active Workspace presents its logon page after successful logout.

6-244 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure logoff for Active Workspace

• Active Workspace is configured using Teamcenter Security Services, and Teamcenter Security Services
is configured to authenticate using an LDAP server:

• Active Workspace is launched in standalone:

1. User clicks the logout button.

2. Teamcenter clears the tcserver session and the Teamcenter Security Services session.

3. Active Workspace presents the logon page after successful logoff.

• Active Workspace is participating in a Single Sign-On session with another Teamcenter client that
has launched a session agent applet:

1. User clicks the logout button.

2. Teamcenter clears the tcserver session.

3. User is presented a page stating You are logged out of Teamcenter application however
your TcSS session is still active.

4. This page will also have a Login Again button. When the user clicks this button, they are
directed to Active Workspace home page without challenge as long as Teamcenter Security
Services session is still valid.

• Active Workspace is configured with Teamcenter Security Services, and Teamcenter Security Services
is behind an authenticating gateway:

1. User clicks the logout button.

2. Teamcenter clears the tcserver session, but it does not close the authenticating gateway session
by default.

Caution:
Because the authenticating gateway session is not closed by default, the single sign-on
session is still active. Unless the user specifically logs off from the authenticating gateway
session or closes all instances of the browser, the session remains active and can pose a
security risk.

3. Active Workspace does not present a page by default.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-245


© 2020 Siemens
6. Configuring Active Workspace features

Note:
The third scenario requires additional configuration during the initial installation of Active
Workspace. You must configure a logout URL on the gateway.

Configuring multiple application IDs

In a single-signon Teamcenter deployment, you can configure a single instance of a Teamcenter server
to support more than one web tier. For example, an Active Workspace client and a traditional rich client
can be deployed for the same server instance. Each client needs a distinct application ID (AppID)
configured in Security Services to associate with their return URL. To accommodate this situation, the
Security Services identity server supports compound AppIDs.

For example, an Active Workspace client uses an AppID named TCAWC and a Teamcenter rich client
uses an AppID named TCrich. In the tc_profilevars file, configure the compound AppID as
TCAWC,TCrich or TCAWC TCrich. The comma or space separates the individual AppIDs. The Teamcenter
server sends that entire string as a token validation call parameter.

In addition to making the change in the tc_profilevars file, in the Security Services Identity Service you
must configure an AppID for each of the clients (for example, TCAWC and TCRich) and include the
appropriate return URLs.

Configuring load balancer time-outs

The Teamcenter web tier and Teamcenter Security Services Login Service maintain client session
information. This leads to two important considerations when deploying Teamcenter behind a third-
party load balancer:

• When deployed behind a load balancer, it is important that all requests from a given client are routed
to the same back-end web tier or Login Service instance. Load balancers typically have a stickiness or
affinity setting, and this must be set in the load balancer configuration for these Teamcenter web
applications.

• Ensure that the load balancer's session time-out interval is equal to or greater than the Teamcenter
session time-out values. The Teamcenter time-outs are set in the Login Service and web tier using the
Web Application Manager by typing the time-out value in the Session time-out box in the Modify
Web Application Information dialog box. Otherwise, the load balancer time-out eclipses the
Teamcenter time-out.

Either of these can lead to apparently random and unexpected behavior as the load balancer switches
between or abandons active web application instances.

6-246 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Introduction to location codes

Configuring location codes

Introduction to location codes

CAGE stands for Commercial And Government Entity. A CAGE Code is a government assigned number
given to a supplier on a location basis. It is used to uniquely identify the design source and location for
parts and engineering documentation. Documents and parts must be identified with a CAGE Code.

Using Teamcenter, administrators can create and assign location and CAGE codes to users to uniquely
identify the design source (location) for parts and engineering documentation. For example, as an
administrator, you have designers using Active Workspace in both Europe and the United States.
Because management wants to track the location where parts are created, you want to use the location
code functionality in Active Workspace.

Each user's location code displays next to their name at the top of the Active Workspace page.

When an Active Workspace user creates a part or a document, their location code appears as a value in
the Current Location Code (fnd0CurrentLocationCode) property on that part or document revision,
and in the Original Location Code (fnd0OriginalLocationCode) property on the part or document.
Users can edit this property to change the value.

Note:
To display the fnd0CurrentLocationCode property, you must modify XML rendering style sheet
datasets.

Create location codes

If you set the Fnd0DisplayLocationCodeLOV global constant to true to display location codes as a list of
values, you must create the list of company locations.

1. Administrators create location codes in the rich client with My Teamcenter by choosing
File→New→Other→Company Location.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-247


© 2020 Siemens
6. Configuring Active Workspace features

2. After you create the location codes, use My Teamcenter to assign the location codes to groups,
roles, and users.

Choose Tools→Assign Company Location to select the organization and company location to
assign to it.

3. Click the arrow between the panes to assign the company location.

The Select a Relation Type dialog box is displayed.

4. Select one of the following that describes the user assignment:

• True Company Affiliation


Users acts as employees of the company.

• Design Authority Affiliation


Users act as vendors of the company.

5. Click OK.

The company location is assigned to the selected groups, roles, and users.

6. When users log on to Active Workspace, they see the location code next to their user name on the
home page. And when they create parts or documents in Active Workspace, this location code
appears in the Current Location Code (fnd0CurrentLocationCode) property on that part or
document.

6-248 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Changing the location code display with global constants

Changing the location code display with global constants

As an administrator, you can set the following global constants in the Business Modeler IDE to determine
how the location code is displayed and selected by Active Workspace users:

• Fnd0DisplayLocationCodeLOV
Determines if the Current Location Code (fnd0CurrentLocationCode) property should be a text box
or display a list of values (LOV) with CAGE codes. By default, the value is set to false, making it a text
box. Set it to true to have the box display a list of values.
If you set this constant to true, users click the location code next to their name to change their
location. (The Set or Clear Location Code button does not appear on the Profile page.)

• Fnd0AllowSuggestiveLocationCode
Determines if an end user is allowed to enter a location code that does not exist on any company
location. By default, the value of the constant is true, and they can enter any location code they want,
even if it does not exist yet in the system. If the value of the constant is false, the end user must
select from the list of existing location codes.

Restricting the changing of location for parts and documents

When an Active Workspace user creates a part or a document, their location code appears as a value in
the Current Location Code (fnd0CurrentLocationCode) property on that part or document revision,
and in the Original Location Code (fnd0OriginalLocationCode) property on the part or document.
Users can edit this property to change the value.

You can restrict changing the location for parts and documents in the following ways:

• Allow only existing location codes.


If you want to restrict what can be entered to Current Location Code box to only those location
codes that are already set up in the system, set the Fnd0AllowSuggestiveLocationCode global
constant to false in the Business Modeler IDE.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-249


© 2020 Siemens
6. Configuring Active Workspace features

• Make the location code property read-only for specific pages.


If you want to make the Current Location Code (fnd0CurrentLocationCode) property read-only on
specific pages, such as summary pages, make the property read-only in the XML rendering style sheet
datasets.
For example, on the Awp0ItemRevSummary.xml style sheet file, add modifiable="false" to the
property tag, for example:

<property name="fnd0CurrentLocationCode" modifiable="false"/>

• Make the location code property read-only globally.


If you want to make the Current Location Code (fnd0CurrentLocationCode) property read-only
throughout the system so that users cannot change the location code for any already-created part or
document, in the Business Modeler IDE set the Modifiable property constant for the property to Read
or Write Only If Null.

Configure owning program

You can set or change an owning program on an object to control access to data. Once you configure
owning program, users can set or change owning programs for instances such as:

• No owning program is set on data.

• A user mistakenly assigned data to the wrong program.

• Government policies force data to be tagged with a different owning program.

• Addressing a partner program change request.

6-250 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure project-level security

To view the Owning program tab, you must set the AWC_Project_showOwningProgramTab
preference to true. Owning program can be set on the object only if the autoAssignToProject extension
is enabled on the object type.

Note:
If you use the Aerospace and Defense template, the autoAssignToProject extension is enabled by
default.

For more information on owning program and the autoAssignToProject extension, refer to Project and
Program in the Teamcenter help collection.

Configure project-level security

You can configure project-level security for selected objects at the item level and have it available to all
revisions under the item. When selecting either This Revision or All Revisions, the following
preferences should be set to the default value to ensure security is applied correctly.

• TC_Security_Apply_To_Visible
Activates the visibility of the Apply To project option. When set to true (default), the Apply To
project option is available.

• TC_Security_Apply_To_Item_Revision
Controls the behavior of the Apply To project option. When set to true, security is applied to item
revisions. If set to false (default), security is applied to items.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-251


© 2020 Siemens
6. Configuring Active Workspace features

Also, you can hide the project section from the Add panel for items. To do this, modify your data model
configuration in Teamcenter using the Business Modeler IDE and set the Fnd0EnableAssignProjects
constant to False.

For more information about modifying business object constants, see Configure your business data
model in BMIDE.

Configuring gateway security

The Active Workspace Gateway is a Node.js Express server which uses several middleware functions
for security. These systems are defined in the gateway configuration file, located in the Active
Workspace installation directory.

AW ROOT/microservices/gateway-nnn/config.json.

Note:
After making any changes to this file, you must restart the gateway to implement the changes.

helmet

Following is a list of some important notes for various features of helmet. Not all features in the file are
listed here, and not all available features are in the file.

"security": {
...
"helmet": {
"frameguard": false,

6-252 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring gateway security

"noSniff": false,
...
}

contentSecurityPolicy
Not enabled by default, and is not supported by Active Workspace at this time. Do not enable this
feature.
frameguard
Disabled for Active Workspace. If you enable this feature, you will lose the capability of hosting
Active Workspace within an iFrame by a host. iFrames are used by some embedded functionality.
noSniff
Disabled for Active Workspace. If you enable this feature, the thumbnail renderer in Internet
Explorer 11 will not function.

cors

Cross-Origin Resource Sharing (cors) is enabled in Active Workspace. However no whitelist sites are
defined by default.

"security": {
...
"cors": {
}

To add a site, configure the origin parameter.

{
security: {
cors: {
origin: [ 'http://example.com', 'http://example2.com' ]
}
}
}

Caution:
Siemens Digital Industries Software recommends adding routes instead of using cors.

csurf

Cross-Site Request Forgery (CSRF) defense is enabled in Active Workspace.

"security": {
...
"csurf": {

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-253


© 2020 Siemens
6. Configuring Active Workspace features

"cookie": true
}

Configuring gateway SSO

The Active Workspace Gateway is a Node.js Express server which responds to several settings
concerning Security Services single sign-on (SSO). These settings are defined in the gateway
configuration file located in the Active Workspace installation directory.

AW ROOT/microservices/gateway-nnn/config.json.

Note:
After making any changes to this file, you must restart the gateway to implement the changes.

sso

"sso": {
"tcSSOAppID": "Teamcenter",
"tcSSOURL": "",
"tcSSORedirectMethod": "",
"tcSSOLogoutURL": "",
"proxyServerUrl": ""
},

tcSSOAppID
Use the Teamcenter Environment Manager (TEM) to change this property. Do not directly modify
this setting in the config.json file.
tcSSOURL
Use the Teamcenter Environment Manager (TEM) to change this property. Do not directly modify
this setting in the config file.
tcSSORedirectMethod
When Active Workspace is configured with Teamcenter Security Services, where Teamcenter
Security Services is behind an authenticating gateway and request parameters are lost during HTTP
Post method requests, use the following parameter to change the HTTP request method type to GET
to prevent request parameters from being dropped.
tcSSOLogoutURL
A logout landing page must be configured when Active Workspace is configured with Security
Services, which in turn is configured behind an authenticating gateway, such as SiteMinder,
WebSeal, IIS, or Apache. In this scenario, the authentication is handled by the gateway. When a user
clicks the logoff button, Active Workspace redirects the user to this landing page. This could be any
page, such as an internal corporate site that provides access to various systems. To change the
default logoff landing page, you must provide the URL for the server.

6-254 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring gateway routing

proxyServerUrl

Configuring gateway routing

The Active Workspace Gateway is a Node.js Express server which uses several middleware functions
for security. These systems are defined in the gateway configuration file, located in the Active
Workspace installation directory.

AW ROOT/microservices/gateway-nnn/config.json.

Note:
After making any changes to this file, you must restart the gateway to implement the changes.

routing

You can add new routes to the gateway, allowing the browser to use these routes instead of
communicating directly with the backend server. The basic types of routes are:

• Direct endpoints for services that are not registered with the microservice framework. You specify this
type of route by providing the target with a fully defined URL including protocol, host, and port. Do
not set the alias property for this route type.

• Microservices registered services. These services are fully participating micro-services and support the
service registry and service dispatcher as supplied by the microservice framework. Specify the
microservice alias which is registered with the microservice framework. Do not set the target
property for this route type

The path property is always required for any route specified.

{
"routes": {
"example-basic": {
"path": "/google",
"target": "https://www.google.com"
},
"example-microservice": {
"path": "/mymicroserver",
"alias": "mymicroserver"
},
"example-graphql-service": {
"path": "/mygraphqlservice",
"target": "http://myhost:myport/mygraphqlservice",
"graphQL": true,
"noPing": true
},
"example-microservice-graphql": {

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-255


© 2020 Siemens
6. Configuring Active Workspace features

"path": "/mymsgraphql",
"alias": "mymsgraphql",
"graphQL": true
}
}
}

Example:
The following route points to a hypothetical SAP GraphQL service.

"sapgql": {
"path": "/sapgql",
"target": "http://1.2.3.4:8073",
"graphQL": true,
"noPing": true
}

path
The URL path on the gateway which this route will use. For example, http://host:port/path.

This is a required field. If not provided, the entire route is ignored.


target
The target endpoint for the redirect from the gateway.

Either the target or alias field must be provided, but not both.
alias
The alias registered in the microservice dispatcher. This value is used for dynamic targeting of the
backend service.

Either the target or alias field must be provided, but not both.
graphQL
Indicates to the gateway if this route should be registered in the federation GraphQL network
managed by the gateway.

This field is optional.


noPing
If set to true, indicates that the service does not implement the ping interface and therefore will not
block gateway initiation while starting up and initializing the GraphQL federation.

6-256 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Simulation Process Management configuration tasks

Simulation Process Management configuration

Simulation Process Management configuration tasks

What is Simulation Process Management?

Simulation Process Management is a solution used for validating or improving a design in the early
stages of the product lifecycle.

Why configure Simulation Process Management?

If your organization has customized the simulation data model, you may need to configure Simulation
Process Management's tables to add new properties and expose the new fields in Active Workspace. You
may also configure the way Active Workspace searches for related simulation data.

What can I configure?

Following are some of the configurations you can perform:

• Configure the Related Simulation Objects table.

• Configure traversal paths for simulation objects.

What do I need to do before configuring?

Before you can configure Simulation Process Management, you must install the Simulation Process
Management feature from the Features panel of Teamcenter Environment Manager (TEM):

Tip:
After installing new features, you must redeploy the generated web application file (awc.war for
Java or awc.zip for .NET) into your web application.

Configure the Simulation-related objects table

You (as a system administrator) can configure the fields in the Related Simulation Objects table of the
Simulation tab in Active Workspace.

You can edit style sheets in the Teamcenter rich client to add new properties and expose the new fields
in the graphical user interface (GUI) for the following types:

• CAE Analysis Revision

• CAE Model Revision

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-257


© 2020 Siemens
6. Configuring Active Workspace features

• CAE Geometry Revision

By default, the Related Simulation Objects section displays the Object, Type, Relation, Release
Status, Date Released, and Owner fields.

The style sheets referred to here are XML documents stored in Teamcenter XMLStylesheetRendering
datasets. The following is an example of how to edit two style sheets for the CAE Analysis Revision type
to add the object_name property and expose the Name field in the Related Simulation Objects
section.

You can also add custom properties for the CAE Analysis Revision type.

1. To search for style sheets related to the CAE Analysis Revision type, in My Teamcenter (rich
client), type Cae1CAEAna*, select Dataset type, and perform a search.

Note:
Only a DBA user can modify style sheets.

The search results show Cae1CAEAnalysisRevSummary and


Cae1CAEAnalysisRevSummaryForShowObjectLocation.

In Active Workspace, users can select a CAE Analysis Revision type from the Results page and
click the Simulation tab to view the details.

6-258 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure the Simulation-related objects table

Alternatively, they can select a CAE Analysis Revision type from the Results page, click Open to
open it separately, and click the Simulation tab to view the details.

The Cae1CAEAnalysisRevSummary and the Cae1CAEAnalysisRevSummaryForShow-


ObjectLocation style sheets determine the fields displayed in the Related Simulation Objects
section for the respective selection.

2. To view the style sheet, select Cae1CAEAnalysisRevSummary from the Search Results view, and
click the Viewer tab.

3. Edit the tc_xrt_Analysis section in the style sheet to add the new object_name property and
expose the Name field in the GUI..

<section titleKey="tc_xrt_RelatedSimulationObjects" >


<htmlPanel id="com.siemens.splm.client.tcsim.xrtSimulationSublocation" />
</section>
<section titleKey="tc_xrt_Analysis">
<objectSet source="TC_CAE_Include.CAEAnalysisRevision,
S2P:TC_CAE_Include.CAEAnalysisRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="listDisplay">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<!-- ******** Your customization goes here ******** -->
<property name="object_name"/>
<!-- ******** End of customization ******** -->
<property name="relation"/>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-259


© 2020 Siemens
6. Configuring Active Workspace features

<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
<section titleKey="tc_xrt_Result">
<objectSet source="TC_CAE_Results.CAEResultRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="listDisplay">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<!-- ******** Your customization goes here ******** -->
<property name="object_name"/>
<!-- ******** End of customization ******** -->
<property name="relation"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

4. To save your changes, click Apply.

In Active Workspace, select a CAE Analysis Revision type from the Results page and click the
Simulation tab to view the details.

The Related Simulation Objects table displays the new Name field.

Similarly, to search for style sheets related to the CAE Analysis Revision type, in My Teamcenter (rich
client), select the Cae1CAEAnalysisRevSummaryForShowObjectLocation sheet from the Search
Results view. Click the Viewer tab and repeat steps 3 and 4.

Edit style sheets to expose custom revision types in the Simulation tab

Expose custom revision types in the context of the product revision

You (as a user with dba privileges) can edit style sheets to expose custom revision types in the context
of the product revision and configure traversal paths to define how to traverse the data structure and
specify which relationships are of interest and what should be done when these relationships are
encountered. For example, you can define a traversal path from a primary item type, such as an analysis
revision, to the solver-specific data deck (CAESolver) and from CAESolver to the file to be exported.

6-260 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the product revision

The following is an example of the generic simulation data model.

In Active Workspace, users can select an item revision type from the Results page and view the details in
the Simulation tab. Alternatively, they can select an item revision type from the Results page, click
Open to open it separately, and view the details in the Simulation tab. The Cae1ItemRevSummary
and the Cae1ItemRevSummaryForShowObjectLocation style sheets determine the objects displayed
in the Related Simulation Objects table for the respective selection.

You can edit style sheets to add a new traversal path and expose the new objects or edit the default
traversal path to hide some objects in the graphical user interface (GUI). In Active Workspace, you can
use the XRT Editor to directly edit the style sheet controlling the current page's layout. The editor
automatically finds the associated XMLRenderingStylesheet dataset, and presents it for viewing and
editing.

To expose custom revision types in the context of the product revision:

• Edit the Cae1ItemRevSummary style sheet and add custom geometry, model, analysis, and result
revisions. In addition, create construct queries for each of these custom revisions to specify traversal
paths.

• Edit the Cae1ItemRevSummaryForShowObjectLocation style sheet and add custom geometry,


model, analysis, and result revisions. In addition, create construct queries for each of these custom
revisions to specify traversal paths.

The following is an example of how to edit the style sheet to customize the GUI to display model, result,
geometry, and analysis revisions in the Related Simulation Objects table.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-261


© 2020 Siemens
6. Configuring Active Workspace features

Edit style sheets using the XRT Editor

1. In Active Workspace, sign in as a dba user.

2. Edit the Cae1ItemRevSummary style sheet.

a. To edit the Cae1ItemRevSummary style sheet, search for the item revision, select it and click
the Simulation tab.

b. To start the XRT Editor, open a second browser window, copy the first portion of the URL (up
to the awc/#/), and then append xrteditor to the end of it.

For example, if the Active Workspace page URL is

http://10.134.152.100:7001/awc/#/com.siemens.splm.
clientfx.tcui.xrt.showObject?uid= ...

then the XRT Editor URL is

http://10.134.152.100:7001/awc/#/xrteditor

The editor window is now linked to the first window. As you navigate through Active
Workspace using the first window, the editor will follow, displaying the XRT used to render
each page.

c. Click Start Edit to edit the style sheet.

3. Add geometry revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Geometry

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision

*/

Cae1SimulationSearchProvider.CAEGeometryRevision.
(S2P$TC_CAE_Source^^S2P$TC_CAE_Target)

6-262 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the product revision

b. Edit the objectSet source properties in the tc_xrt_Geometry section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Geometry">
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Geometry">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision.
(S2P$TC_CAE_Source^^S2P$TC_CAE_Target)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Tip:
You can specify S2P$ as the prefix before a relation to specify that the traversal path is
from the secondary object to the primary object, ^^ as an AND operator between two
paths, and # as the separator between the two segments of the traversal path.

4. Add model revisions to the style sheet.

a. Create a construct query.

Example:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-263


© 2020 Siemens
6. Configuring Active Workspace features

/* Construct Query to get Model

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Model Revision,

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision
<-(TC_CAE_Source) CAE Model Revision

*/

Cae1SimulationSearchProvider.CAEModelRevision.
(S2P$TC_CAE_Target^^S2P$TC_CAE_Source
^^S2P$TC_CAE_Target:CAEGeometryRevision#S2P$TC_CAE_Source
^^S2P$TC_CAE_Source:CAEGeometryRevision#S2P$TC_CAE_Source)

b. Edit the objectSet source properties in the tc_xrt_Model section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Model">
<objectSet source="Cae1SimulationSearchProvider.CAEModelRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Model">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.CAEModelRevision
(S2P$TC_CAE_Target ^^S2P$TC_CAE_Source
^^S2P$TC_CAE_Target:CAEGeometryRevision#S2P$TC_CAE_Source
^^S2P$TC_CAE_Source:CAEGeometryRevision#S2P$TC_CAE_Source)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"

6-264 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the product revision

defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

5. Add analysis revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Analysis

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision
<-(TC_CAE_Source) CAE Model Revision
<-(TC_CAE_Defining) CAE Analysis Revision,

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision
<-(TC_CAE_Source) CAE Analysis Revision,

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Model Revision
<-(TC_CAE_Defining) CAE Analysis Revision,

Item Revision
<-(TC_CAE_Target) CAE Analysis Revision

*/

Cae1SimulationSearchProvider.CAEAnalysisRevision.
(S2P$TC_CAE_Source:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining

^^S2P$TC_CAE_Target:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEModelRevision#S2P$TC_CAE_Defining

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-265


© 2020 Siemens
6. Configuring Active Workspace features

^^S2P$TC_CAE_Source:CAEGeometryRevision#S2P$TC_CAE_Source
^^S2P$TC_CAE_Target:CAEGeometryRevision#S2P$TC_CAE_Source
^^S2P$TC_CAE_Source:CAEModelRevision#S2P$TC_CAE_Defining
^^S2P$TC_CAE_Target:CAEModelRevision#S2P$TC_CAE_Defining
^^S2P$TC_CAE_Target)

b. Edit the objectSet source properties in the tc_xrt_Analysis section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Analysis">
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysisRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Analysis">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysisRevision.
(S2P$TC_CAE_Source:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining

^^S2P$TC_CAE_Target:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEModelRevision#S2P$TC_CAE_Defining

^^S2P$TC_CAE_Source:CAEGeometryRevision#S2P$TC_CAE_Source
^^S2P$TC_CAE_Target:CAEGeometryRevision#S2P$TC_CAE_Source
^^S2P$TC_CAE_Source:CAEModelRevision#S2P$TC_CAE_Defining
^^S2P$TC_CAE_Target:CAEModelRevision#S2P$TC_CAE_Defining
^^S2P$TC_CAE_Target)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>

6-266 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the product revision

<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

6. Add result revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Result

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision
<-(TC_CAE_Source) CAE Model Revision
<-(TC_CAE_Defining) CAE Analysis Revision (TC_CAE_Results)
-> CAE Result Revision,

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Model Revision
<-(TC_CAE_Defining) CAE Analysis Revision (TC_CAE_Results)
-> CAE Result Revision,

Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision
<-(TC_CAE_Source) CAE Analysis Revision (TC_CAE_Results)
-> CAE Result Revision,

Item Revision
<-(TC_CAE_Target) CAE Analysis Revision (TC_CAE_Results)
-> CAE Result Revision

*/

Cae1SimulationSearchProvider.CAEResultRevision.
(S2P$TC_CAE_Source:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Target:CAEGeometryRevision

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-267


© 2020 Siemens
6. Configuring Active Workspace features

#S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Target:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Source:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Target:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Target:CAEAnalysisRevision
#TC_CAE_Results)

b. Edit the objectSet source properties in the tc_xrt_Result section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Result">
<objectSet source="Cae1SimulationSearchProvider.CAEResult"

sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Result">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.CAEResultRevision.
(S2P$TC_CAE_Source:CAEGeometryRevision

6-268 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the product revision

#S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Target:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Target:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Source:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Target:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEAnalysisRevision
#TC_CAE_Results

^^S2P$TC_CAE_Target:CAEAnalysisRevision
#TC_CAE_Results)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

7. To save your changes, click Save Edits .

8. To view the customized revisions, search for an item revision type in Active Workspace, select it
from the Results page, and click the Simulation tab to view the details. The Related Simulation
Objects table displays the customized model, result, geometry, and analysis revisions.

9. Edit the Cae1ItemRevSummaryForShowObjectLocation style sheet.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-269


© 2020 Siemens
6. Configuring Active Workspace features

a. To edit the Cae1ItemRevSummaryForShowObjectLocation style sheet, search for the item


revision, click Open to open it separately, and click the Simulation tab.

b. Repeat steps 2b through 7.

c. To view the customized revisions, search for an item revision type in Active Workspace, select
it from the Results page, click Open to open it separately, and click the Simulation tab to
view the details. The Related Simulation Objects table displays the customized model, result,
geometry, and analysis revisions.

Expose custom revision types in the context of the geometry revision

You (as a user with dba privileges) can edit style sheets to expose custom revision types in the context
of the product revision and configure traversal paths to define how to traverse the data structure and
specify which relationships are of interest and what should be done when these relationships are
encountered. For example, you can define a traversal path from a primary item type, such as an analysis
revision, to the solver-specific data deck (CAESolver) and from CAESolver to the file to be exported.

The following is an example of the generic simulation data model.

In Active Workspace, users can select a geometry revision from the Results page and view the details in
the Simulation tab. Alternatively, they can select a geometry revision from the Results page, click Open
to open it separately, and view the details in the Simulation tab. The Cae1GeometryRevSummary
and the Cae1GeometryRevSummaryForShowObjectLocation style sheets determine the objects
displayed in the Related Simulation Objects table for the respective selection.

You can edit style sheets to add a new traversal path and expose the new objects or edit the default
traversal path to hide some objects in the graphical user interface (GUI). In Active Workspace, you can

6-270 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the geometry revision

use the XRT Editor to directly edit the style sheet controlling the current page's layout. The editor
automatically finds the associated XMLRenderingStylesheet dataset, and presents it for viewing and
editing.

The following is an example of how to edit the style sheet to customize the GUI to display product,
model, analysis, and result revisions in the Related Simulation Objects table.

To expose custom revision types in the context of the geometry revision:

• Edit the Cae1ItemRevSummary style sheet and add customized product, model, analysis, and result
revisions. In addition, create construct queries for each of these custom revisions to specify traversal
paths.

• Edit the Cae1ItemRevSummaryForShowObjectLocation style sheet and add customized product,


model, analysis, and result revisions. In addition, create construct queries for each of these custom
revisions to specify traversal paths.

Edit style sheets using the XRT Editor

1. In Active Workspace, sign in as a dba user.

2. Edit the Cae1GeometryRevSummary style sheet.

a. To edit the Cae1GeometryRevSummary style sheet, search for the geometry revision, select
it and click the Simulation tab.

b. To start the XRT Editor, open a second browser window, copy the first portion of the URL (up
to the awc/#/), and then append xrteditor to the end of it.

For example, if the Active Workspace page URL is

http://10.134.152.100:7001/awc/#/com.siemens.splm.
clientfx.tcui.xrt.showObject?uid= ...

then the XRT Editor URL is

http://10.134.152.100:7001/awc/#/xrteditor

The editor window is now linked to the first window. As you navigate through Active
Workspace using the first window, the editor will follow, displaying the XRT used to render
each page.

c. Click Start Edit to edit the style sheet.

3. Add product revisions to the style sheet.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-271


© 2020 Siemens
6. Configuring Active Workspace features

a. Create a construct query.

Example:

/* Construct Query to get Product

CAE Geometry Revision (TC_CAE_Source/TC_CAE_Target)


-> Item Revision

*/

Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Source^^TC_CAE_Target)

b. Edit the objectSet source properties in the tc_xrt_Product section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Product">
<objectSet source="Cae1SimulationSearchProvider.ItemRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Product">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Source^^TC_CAE_Target)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>

6-272 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the geometry revision

<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Tip:
You can specify S2P$ as the prefix before a relation to specify that the traversal path is
from the secondary object to the primary object, ^^ as an AND operator between two
paths, and # as the separator between the two segments of the traversal path.

4. Add model revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Model

CAEGeometryRevision
<-(TC_CAE_Source) CAEModelRevision

*/

Cae1SimulationSearchProvider.CAEModelRevision.
(S2P$TC_CAE_Source)

b. Edit the objectSet source properties in the tc_xrt_Model section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Model">
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-273


© 2020 Siemens
6. Configuring Active Workspace features

</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Model">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.CAEModelRevision.
(S2P$TC_CAE_Source)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

5. Add analysis revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Analysis

CAE Geometry Revision


<-(TC_CAE_Source) CAE Analysis Revision,

CAE Geometry Revision


<-(TC_CAE_Source) CAE Model Revision
<-(TC_CAE_Defining) CAE Analysis Revision

*/

Cae1SimulationSearchProvider.CAEAnalysisRevision.
(S2P$TC_CAE_Source ^^S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining)

6-274 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the geometry revision

b. Edit the objectSet source properties in the tc_xrt_Analysis section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Analysis">
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysis"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Analysis">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysisRevision.
(S2P$TC_CAE_Source^^S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

6. Add result revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Result

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-275


© 2020 Siemens
6. Configuring Active Workspace features

CAE Geometry Revision


<-(TC_CAE_Source) CAE Analysis Revision
(TC_CAE_Results)
-> CAE Result Revision,

CAE Geometry Revision


<-(TC_CAE_Source) CAE Model Revision
<-(TC_CAE_Defining) CAE Analysis Revision (TC_CAE_Results)
-> CAE Result Revision

*/

Cae1SimulationSearchProvider.CAEResultRevision.
(S2P$TC_CAE_Source:
CAEAnalysisRevision#TC_CAE_Results
^^S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results)

b. Edit the objectSet source properties in the tc_xrt_Result section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Result">
<objectSet source="Cae1SimulationSearchProvider.CAEResult"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Result">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.CAEResultRevision.
(S2P$TC_CAE_Source:
CAEAnalysisRevision#TC_CAE_Results
^^S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision

6-276 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the model revision

#TC_CAE_Results)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

7. To save your changes, click Save Edits .

8. To view the customized revisions, search for a geometry revision type in Active Workspace, select it
from the Results page, and click the Simulation tab to view the details. The Related Simulation
Objects table displays the customized product, model, result, and analysis revisions.

9. Edit the Cae1GeometryRevSummaryForShowObjectLocation style sheet.

a. To edit the Cae1GeometryRevSummaryForShowObjectLocation style sheet, search for the


item revision, click Open to open it separately, and click the Simulation tab.

b. Repeat steps 2b through 7.

c. To view the customized revisions, search for a geometry revision type in Active Workspace,
select it from the Results page, click Open to open it separately, and click the Simulation
tab to view the details. The Related Simulation Objects table displays the customized
product, model, result, and analysis revisions.

Expose custom revision types in the context of the model revision

You (as a user with dba privileges) can edit style sheets to expose custom revision types in the context
of the product revision and configure traversal paths to define how to traverse the data structure and
specify which relationships are of interest and what should be done when these relationships are
encountered. For example, you can define a traversal path from a primary item type, such as an analysis
revision, to the solver-specific data deck (CAESolver) and from CAESolver to the file to be exported.

The following is an example of the generic simulation data model.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-277


© 2020 Siemens
6. Configuring Active Workspace features

In Active Workspace, users can select a model revision from the Results page and view the details in the
Simulation tab. Alternatively, they can select a model revision type from the Results page, click Open
to open it separately, and view the details in the Simulation tab. The Cae1ModelRevSummary and
the Cae1ModelRevSummaryForShowObjectLocation style sheets determine the objects displayed in
the Related Simulation Objects table for the respective selection.

You can edit style sheets to add a new traversal path and expose the new objects or edit the default
traversal path to hide some objects in the graphical user interface (GUI). In Active Workspace, you can
use the XRT Editor to directly edit the style sheet controlling the current page's layout. The editor
automatically finds the associated XMLRenderingStylesheet dataset, and presents it for viewing and
editing.

The following is an example of how to edit the style sheet to customize the GUI to display product,
geometry, analysis, and result revisions in the Related Simulation Objects table.

To expose custom revision types in the context of the model revision:

• Edit the Cae1ItemRevSummary style sheet and add customized product, geometry, analysis, and
result revisions. In addition, create construct queries for each of these custom revisions to specify
traversal paths.

• Edit the Cae1ItemRevSummaryForShowObjectLocation style sheet and add customized product,


geometry, analysis, and result revisions. In addition, create construct queries for each of these custom
revisions to specify traversal paths.

Edit style sheets using the XRT Editor

1. In Active Workspace, sign in as a dba user.

6-278 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the model revision

2. Edit the Cae1ModelRevSummary style sheet.

a. To edit the Cae1ModelRevSummary style sheet, search for the model revision, select it and
click the Simulation tab.

b. To start the XRT Editor, open a second browser window, copy the first portion of the URL (up
to the awc/#/), and then append xrteditor to the end of it.

For example, if the Active Workspace page URL is

http://10.134.152.100:7001/awc/#/com.siemens.splm.
clientfx.tcui.xrt.showObject?uid= ...

then the XRT Editor URL is

http://10.134.152.100:7001/awc/#/xrteditor

The editor window is now linked to the first window. As you navigate through Active
Workspace using the first window, the editor will follow, displaying the XRT used to render
each page.

c. Click Start Edit to edit the style sheet.

3. Add product revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Product

CAE Model Revision (TC_CAE_Source)


-> CAE Geometry Revision(TC_CAE_Source/TC_CAE_Target)
-> Item Revision,

CAE Model Revision (TC_CAE_Source/TC_CAE_Target)


-> Item Revision

*/

Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Source:CAEGeometryRevision#TC_CAE_Source

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-279


© 2020 Siemens
6. Configuring Active Workspace features

^^TC_CAE_Source:CAEGeometryRevision#TC_CAE_Target
^^TC_CAE_Source^^TC_CAE_Target)

b. Edit the objectSet source properties in the tc_xrt_Product section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Product">
<objectSet source="Cae1SimulationSearchProvider.ItemRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Product">
<!–- ************* Start of customization ************* -->
"Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Source:CAEGeometryRevision#TC_CAE_Source
^^TC_CAE_Source:CAEGeometryRevision#TC_CAE_Target
^^TC_CAE_Source^^TC_CAE_Target)"
<!–- ************* End of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Tip:
You can specify S2P$ as the prefix before a relation to specify that the traversal path is
from the secondary object to the primary object, ^^ as an AND operator between two
paths, and # as the separator between the two segments of the traversal path.

6-280 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the model revision

4. Add geometry revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Geometry

CAE Model Revision (TC_CAE_Source)


-> CAE Geometry Revision

*/

Cae1SimulationSearchProvider.CAEGeometryRevision.
(TC_CAE_Source)

b. Edit the objectSet source properties in the tc_xrt_Geometry section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Geometry">
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Geometry">
<!–- ************* Start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.
CAEGeometryRevision.(TC_CAE_Source)"
<!–- ************* End of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-281


© 2020 Siemens
6. Configuring Active Workspace features

<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

5. Add analysis revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Analysis

CAE Model Revision


<-(TC_CAE_Defining) CAE Analysis Revision

*/

Cae1SimulationSearchProvider.CAEAnalysisRevision.
(S2P$TC_CAE_Defining)

b. Edit the objectSet source properties in the tc_xrt_Analysis section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Analysis">
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysisRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

6-282 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the model revision

<section titleKey="tc_xrt_Analysis">
<!–- ************* Start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysisRevision.
(S2P$TC_CAE_Defining)"
<!–- ************* End of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

6. Add result revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Result

CAE Model Revision


<-(TC_CAE_Defining) CAE Analysis Revision
(TC_CAE_Results)
-> CAE Result Revision

*/

Cae1SimulationSearchProvider.CAEResultRevision.
(S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results)

b. Edit the objectSet source properties in the tc_xrt_Result section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Result">
<objectSet source="Cae1SimulationSearchProvider.CAEResultRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-283


© 2020 Siemens
6. Configuring Active Workspace features

<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Result">
<!–- ************* start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.CAEResultRevision.
(S2P$TC_CAE_Defining:CAEAnalysisRevision#TC_CAE_Results)"
<!–- ************* end of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

7. To save your changes, click Save Edits .

8. To view the customized revisions, search for a model revision type in Active Workspace, select it
from the Results page, and click the Simulation tab to view the details. The Related Simulation
Objects table displays the customized product, geometry, result, and analysis revisions.

9. Edit the Cae1ModelRevSummaryForShowObjectLocation style sheet.

a. To edit the Cae1ModelRevSummaryForShowObjectLocation style sheet, search for the item


revision, click Open to open it separately, and click the Simulation tab.

b. Repeat steps 2b through 7.

c. To view the customized revisions, search for a model revision type in Active Workspace, select
it from the Results page, click Open to open it separately, and click the Simulation tab to
view the details. The Related Simulation Objects table displays the customized product,
result, geometry, and analysis revisions.

6-284 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the analysis revision

Expose custom revision types in the context of the analysis revision

You (as a user with dba privileges) can edit style sheets to expose custom revision types in the context
of the product revision and configure traversal paths to define how to traverse the data structure and
specify which relationships are of interest and what should be done when these relationships are
encountered. For example, you can define a traversal path from a primary item type, such as an analysis
revision, to the solver-specific data deck (CAESolver) and from CAESolver to the file to be exported.

The following is an example of the generic simulation data model.

In Active Workspace, users can select an analysis revision from the Results page and view the details in
the Simulation tab. Alternatively, they can select an analysis revision from the Results page, click Open
to open it separately, and view the details in the Simulation tab. The Cae1AnalysisRevSummary
and the Cae1AnalysisRevSummaryForShowObjectLocation style sheets determine the objects
displayed in the Related Simulation Objects table for the respective selection.

You can edit style sheets to add a new traversal path and expose the new objects or edit the default
traversal path to hide some objects in the graphical user interface (GUI). In Active Workspace, you can
use the XRT Editor to directly edit the style sheet controlling the current page's layout. The editor
automatically finds the associated XMLRenderingStylesheet dataset, and presents it for viewing and
editing.

To expose custom revision types in the context of the analysis revision:

• Edit the Cae1ItemRevSummary style sheet and add customized product, geometry, model, and
result revisions. In addition, create construct queries for each of these custom revisions to specify
traversal paths.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-285


© 2020 Siemens
6. Configuring Active Workspace features

• Edit the Cae1ItemRevSummaryForShowObjectLocation style sheet and add customized product,


geometry, model, and result revisions. In addition, create construct queries for each of these custom
revisions to specify traversal paths.

The following is an example of how to edit the style sheet to customize the GUI to display product,
geometry, model, and result revisions in the Related Simulation Objects table.

Edit style sheets using the XRT Editor

1. In Active Workspace, sign in as a dba user.

2. Edit the Cae1AnalysisRevSummary style sheet.

a. To edit the Cae1AnalysisRevSummary style sheet, search for the analysis revision, select it
and click the Simulation tab.

b. To start the XRT Editor, open a second browser window, copy the first portion of the URL (up
to the awc/#/), and then append xrteditor to the end of it.

For example, if the Active Workspace page URL is

http://10.134.152.100:7001/awc/#/com.siemens.splm.
clientfx.tcui.xrt.showObject?uid= ...

then the XRT Editor URL is

http://10.134.152.100:7001/awc/#/xrteditor

The editor window is now linked to the first window. As you navigate through Active
Workspace using the first window, the editor will follow, displaying the XRT used to render
each page.

c. Click Start Edit to edit the style sheet.

3. Add product revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Product

CAE Analysis Revision (TC_CAE_Defining)


-> CAE Model Revision (TC_CAE_Source)

6-286 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the analysis revision

-> CAE Geometry Revision (TC_CAE_Source/TC_CAE_Target)


-> Item Revision,

CAE Analysis Revision (TC_CAE_Defining)


-> CAE Model Revision (TC_CAE_Source/TC_CAE_Target)
-> Item Revision,

CAE Analysis Revision (TC_CAE_Source)


-> CAE Geometry Revision (TC_CAE_Source/TC_CAE_Target)
-> Item Revision,

CAE Analysis Revision (TC_CAE_Target)-> Item Revision

*/

Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Defining:CAEModelRevision#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision#TC_CAE_Target
^^TC_CAE_Defining:CAEModelRevision#TC_CAE_Source
^^TC_CAE_Defining:CAEModelRevision#TC_CAE_Target
^^TC_CAE_Source:CAEGeometryRevision#TC_CAE_Source
^^TC_CAE_Source:CAEGeometryRevision#TC_CAE_Target
^^TC_CAE_Target)

b. Edit the objectSet source properties in the tc_xrt_Product section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Product">
<objectSet source="Cae1SimulationSearchProvider.ItemRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-287


© 2020 Siemens
6. Configuring Active Workspace features

<section titleKey="tc_xrt_Product">
<!–- ************* Start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Defining:CAEModelRevision#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision#TC_CAE_Target
^^TC_CAE_Defining:CAEModelRevision#TC_CAE_Source
^^TC_CAE_Defining:CAEModelRevision#TC_CAE_Target
^^TC_CAE_Source:CAEGeometryRevision#TC_CAE_Source
^^TC_CAE_Source:CAEGeometryRevision#TC_CAE_Target
^^TC_CAE_Target)"
<!–- ************* End of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Tip:
You can specify S2P$ as the prefix before a relation to specify that the traversal path is
from the secondary object to the primary object, ^^ as an AND operator between two
paths, and # as the separator between the two segments of the traversal path.

4. Add geometry revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Geometry

CAE Analysis Revision (TC_CAE_Defining)


-> CAE Model Revision (TC_CAE_Source)
-> CAE Geometry Revision,

CAE Analysis Revision (TC_CAE_Source)


-> CAE Geometry Revision

6-288 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the analysis revision

*/

Cae1SimulationSearchProvider.CAEGeometryRevision.
(TC_CAE_Defining:CAEModelRevision#TC_CAE_Source
^^TC_CAE_Source)

b. Edit the objectSet source properties in the tc_xrt_Geometry section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Geometry">
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Geometry">
<!–- ************* Start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision.
(TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^TC_CAE_Source)"
<!–- ************* End of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

5. Add analysis revisions to the style sheet.

a. Create a construct query.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-289


© 2020 Siemens
6. Configuring Active Workspace features

Example:

/* Construct Query to get Analysis

CAE Analysis Revision (TC_CAE_Include)


-> CAE Analysis Revision,

CAE Analysis Revision (TC_CAE_Include)


<- CAE Analysis Revision

*/

Cae1SimulationSearchProvider.CAEAnalysisRevision.
(TC_CAE_Include^^S2P$TC_CAE_Include)

b. Edit the objectSet source properties in the tc_xrt_Analysis section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Analysis">
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysisRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Analysis">
<!–- ************* Start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysisRevision.
(TC_CAE_Include^^S2P$TC_CAE_Include)"
<!–- ************* End of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>

6-290 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the analysis revision

<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

6. Add result revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Result

CAE Analysis Revision (TC_CAE_Results)


-> CAE Result Revision

*/

Cae1SimulationSearchProvider.CAEResultRevision.
(TC_CAE_Results)

b. Edit the objectSet source properties in the tc_xrt_Result section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Result">
<objectSet source="Cae1SimulationSearchProvider.CAEResultRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-291


© 2020 Siemens
6. Configuring Active Workspace features

<section titleKey="tc_xrt_Result">
<!–- ************* Start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.
CAEResultRevision.(TC_CAE_Results)"
<!–- ************* End of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

7. To save your changes, click Save Edits .

8. To view the customized revisions, search for an analysis revision type in Active Workspace, select it
from the Results page, and click the Simulation tab to view the details. The Related Simulation
Objects table displays the customized product, model, result, and geometry revisions.

9. Edit the Cae1AnalysisRevSummaryForShowObjectLocation style sheet.

a. To edit the Cae1AnalysisRevSummaryForShowObjectLocation style sheet, search for the


analysis revision, click Open to open it separately, and click the Simulation tab.

b. Repeat steps 2b through 7 to make changes to the


Cae1AnalysisRevSummaryForShowObjectLocation style sheet.

c. To view the customized revisions, search for an analysis revision type in Active Workspace,
select it from the Results page, click Open to open it separately, and click the Simulation
tab to view the details. The Related Simulation Objects table displays the customized
product, model, result, and geometry revisions.

Expose custom revision types in the context of the result revision

You (as a user with dba privileges) can edit style sheets to expose custom revision types in the context
of the product revision and configure traversal paths to define how to traverse the data structure and
specify which relationships are of interest and what should be done when these relationships are
encountered. For example, you can define a traversal path from a primary item type, such as an analysis
revision, to the solver-specific data deck (CAESolver) and from CAESolver to the file to be exported.

The following is an example of the generic simulation data model.

6-292 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the result revision

In Active Workspace, users can select a result revision from the Results page and view the details in the
Simulation tab. Alternatively, they can select a result revision from the Results page, click Open to
open it separately, and view the details in the Simulation tab. The Cae1ResultRevSummary and the
Cae1ResultRevSummaryForShowObjectLocation style sheets determine the objects displayed in the
Related Simulation Objects table for the respective selection.

You can edit style sheets to add a new traversal path and expose the new objects or edit the default
traversal path to hide some objects in the graphical user interface (GUI). In Active Workspace, you can
use the XRT Editor to directly edit the style sheet controlling the current page's layout. The editor
automatically finds the associated XMLRenderingStylesheet dataset, and presents it for viewing and
editing.

To expose custom revision types in the context of the result revision:

• Edit the Cae1ItemRevSummary style sheet and add customized product, geometry, model, and
analysis revisions. In addition, create construct queries for each of these custom revisions to specify
traversal paths.

• Edit the Cae1ItemRevSummaryForShowObjectLocation style sheet and add customized product,


geometry, model, and analysis revisions. In addition, create construct queries for each of these
custom revisions to specify traversal paths.

The following is an example of how to edit the style sheet to customize the GUI to display product,
geometry, model, and analysis revisions in the Related Simulation Objects table.

Edit style sheets using the XRT Editor

1. In Active Workspace, sign in as a dba user.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-293


© 2020 Siemens
6. Configuring Active Workspace features

2. Edit the Cae1ResultRevSummary style sheet.

a. To edit the Cae1ResultRevSummary style sheet, search for the result revision, select it and
click the Simulation tab.

b. To start the XRT Editor, open a second browser window, copy the first portion of the URL (up
to the awc/#/), and then append xrteditor to the end of it.

For example, if the Active Workspace page URL is

http://10.134.152.100:7001/awc/#/com.siemens.splm.
clientfx.tcui.xrt.showObject?uid= ...

then the XRT Editor URL is

http://10.134.152.100:7001/awc/#/xrteditor

The editor window is now linked to the first window. As you navigate through Active
Workspace using the first window, the editor will follow, displaying the XRT used to render
each page.

c. Click Start Edit to edit the style sheet.

3. Add product revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Product

CAE Result Revision


<-(TC_CAE_Results) CAE Analysis Revision (TC_CAE_Defining)
-> CAE Model Revision (TC_CAE_Source)
-> CAE Geometry Revision (TC_CAE_Source/TC_CAE_Target)
-> Item Revision,

CAE Result Revision


<-(TC_CAE_Results) CAE Analysis Revision (TC_CAE_Defining)
-> CAE Model Revision (TC_CAE_Source/TC_CAE_Target)
-> Item Revision,

CAE Result Revision


<-(TC_CAE_Results) CAE Analysis Revision (TC_CAE_Source)
-> CAE Geometry Revision (TC_CAE_Source/TC_CAE_Target)

6-294 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the result revision

-> Item Revision,

CAE Result Revision


<-(TC_CAE_Results) CAE Analysis Revision (TC_CAE_Target)
-> Item Revision

*/

Cae1SimulationSearchProvider.ItemRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Target)

b. Edit the objectSet source properties in the tc_xrt_Product section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Product">
<objectSet source="Cae1SimulationSearchProvider.ItemRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-295


© 2020 Siemens
6. Configuring Active Workspace features

Change to:

<section titleKey="tc_xrt_Product">
<!–- ************* start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.ItemRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Target)"
<!–- ************* end of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Tip:
You can specify S2P$ as the prefix before a relation to specify that the traversal path is
from the secondary object to the primary object, ^^ as an AND operator between two
paths, and # as the separator between the two segments of the traversal path.

4. Add geometry revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Geometry

6-296 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the result revision

CAE Result Revision


<-(TC_CAE_Results) CAE Analysis Revision (TC_CAE_Defining)
-> CAE Model Revision (TC_CAE_Source)
-> CAE Geometry Revision,

CAE Result Revision


<-(TC_CAE_Results) CAE Analysis Revision (TC_CAE_Source)
-> CAE Geometry Revision

*/

Cae1SimulationSearchProvider.CAEGeometryRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source)

b. Edit the objectSet source properties in the tc_xrt_Geometry section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Geometry">
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Geometry">
<!–- ************* start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source)"

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-297


© 2020 Siemens
6. Configuring Active Workspace features

<!–- ************* end of customization ************* -->


sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

5. Add model revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Model

CAE Result Revision


<-(TC_CAE_Results) CAE Analysis Revision (TC_CAE_Defining)
-> CAE Model Revision

*/

Cae1SimulationSearchProvider.CAEModelRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision#TC_CAE_Defining)

b. Edit the objectSet source properties in the tc_xrt_Model section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Model">
<objectSet source="Cae1SimulationSearchProvider.CAEModelRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>

6-298 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Expose custom revision types in the context of the result revision

</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Model">
<!–- ************* start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.CAEModelRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision#TC_CAE_Defining)"
<!–- ************* end of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

6. Add analysis revisions to the style sheet.

a. Create a construct query.

Example:

/* Construct Query to get Analysis

CAE Result Revision <-(TC_CAE_Results) CAE Analysis Revision

*/

Cae1SimulationSearchProvider.
CAEAnalysisRevision.(S2P$TC_CAE_Results)

b. Edit the objectSet source properties in the tc_xrt_Analysis section of the style sheet.

Default object source:

<section titleKey="tc_xrt_Analysis">
<objectSet source="Cae1SimulationSearchProvider.CAEAnalysisRevision"

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-299


© 2020 Siemens
6. Configuring Active Workspace features

sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

Change to:

<section titleKey="tc_xrt_Analysis">
<!–- ************* start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.
CAEAnalysisRevision.(S2P$TC_CAE_Results)"
<!–- ************* end of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>

7. To save your changes, click Save Edits .

8. To view the customized revisions, search for a result revision type in Active Workspace, select it
from the Results page, and click the Simulation tab to view the details. The Related Simulation
Objects table displays the customized product, geometry, model, and analysis revisions.

9. Edit the Cae1ResultRevSummaryForShowObjectLocation style sheet.

a. To edit the Cae1ResultRevSummaryForShowObjectLocation style sheet, search for the item


revision, click Open to open it separately, and click the Simulation tab.

b. Repeat steps 2b through 7.

c. To view the customized revisions, search for a result revision type in Active Workspace, select
it from the Results page, click Open to open it separately, and click the Simulation tab to
view the details. The Related Simulation Objects table displays the customized product,
geometry, model, and analysis revisions.

6-300 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Subscription configuration tasks

Subscription configuration

Subscription configuration tasks

What are subscriptions?

Subscriptions are memberships to receive notifications when objects are changed in Active Workspace.
A number indicator appears to the right of the Alert button on the global toolbar when subscription
notifications are received. Users click the Alert button to view their notifications.

What can I configure?

You can configure the following aspects of subscriptions:

• Notifications for a two-tier environment.

• Subscribable properties.

• Email and news feed notifications.

• Number of objects to which a user subscribes.

• Number of events to which a user follows.

• Number of days news feed notifications are retained.

• Purge of old news feed notifications.

What do I need to do before configuring?

Before you can configure subscriptions, you must install the features. Install the following from the
Features panel of Teamcenter Environment Manager (TEM):

• Subscription (client)
Installs the user interface elements for viewing subscription notifications in Active Workspace.
Select Active Workspace→Client→Subscription.

• Subscription (server)
Installs the server-side definitions for subscriptions.
Select Active Workspace→Server Extensions→Subscription.

Tip:
After installing new features, you must rebuild the Active Workspace application.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-301


© 2020 Siemens
6. Configuring Active Workspace features

Where can I find out more about subscriptions?

See Subscription Administration in the Teamcenter help collection.

What do subscription notifications look like?

The following is an example of notifications.

Configuring notifications for a two-tier environment

To use the notification functionality in a two-tier environment, you must manually configure the
TC_MESSAGING_MUX_URL environment variable. Otherwise, alert information about new or changed
messages is not sent from the server program to the user. This environment variable is configured
correctly for four-tier environments. However, in stand-alone two-tier environments and dedicated hosts
used for servers, such as the Subscription Manager daemon or the Dispatcher module, this environment
variable must be configured manually:

TC_MESSAGING MUX_URL=protocol://host:mux_port

host is the address of the host on which a server manager is installed, and mux_port is the value of the
mux port set when the server manager was installed.

The following are examples of the configuration:

6-302 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring subscribable properties

• On Microsoft Windows machines, add the following line to the tc_profilevars.bat file:

set TC_MESSAGING_MUX_URL=http://blserver1:8087

• On UNIX and Linux machines, add the following line to the tc_profilevars file:

TC_MESSAGING_MUX_URL=${TC_MESSAGING_MUX_URL:=http://blserver1:8087}

Configuring subscribable properties

If you want users to only subscribe to certain properties on subscribable objects, such as an Item or
ItemRevision, use the Subscription Properties tab in Subscription Administration in Teamcenter to
configure the properties on which users can subscribe.

For example, using the Subscription Properties tab, you can configure several ItemRevision properties
to make them available to users.

Note:
• If no configuration is defined on a subscribable object, all properties are available to Active
Workspace users for defining subscription criteria.

• A subtype inherits the configuration of the parent type unless it has its own configuration.

• If a property is turned off from subscription, but existing subscriptions utilize that property, then
these subscriptions continue to have the property in the criteria until the subscriber manually
removes it. Though existing criteria continue to apply, the Active Workspace user cannot define
a new subscription using that property.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-303


© 2020 Siemens
6. Configuring Active Workspace features

Example:

Setting subscription notification preferences

Setting email and news feed preferences

Set the following preferences to control notification behavior in Active Workspace:

• SCM_notification_mode

6-304 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Setting subscription notification preferences

Indicates whether you want notifications to be delivered by email or news feed or both. If this
preference is set to 1 (default), your notifications are delivered by email. To receive notifications by
news feed, set the preference to 2. To receive notifications by both email and news feed, set the
preference to 3.

• AWS_Notifications_Polling_Interval
Specifies (in minutes) how frequently the system is polled for notifications, site-wide. The default
setting is 5. If this preference is set to 0, the Alert navigation button is disabled.

You are now able to view the number indicator to the right of Alert when:

• Print notifications are received.

• News feeds to which you have subscribed are received.

• There are existing unread notifications.

Setting periodic digest preferences

In addition to receiving notification by email or news feed, users can also select to receive daily and
weekly digests that contain subscription notifications by selecting Set Daily and Weekly Digests
(Collate all notifications) from the profile page.

The periodic digest collates all the daily notifications into a single email and it collates all notifications
from the week into a weekly digest that is sent as a single email.

Set the following preferences to control periodic digest notification:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-305


© 2020 Siemens
6. Configuring Active Workspace features

• SCM_notification_digest
Indicates whether notifications are delivered as a digest. If this preference is set to 1 (default), digest
notifications are disabled at the Site level.

• Active Workspace
Once the user enables the digest from the profile page, the digest is enabled for that user.

• Rich client
The user can create a User preference to override the value to set it to 2 to enable the periodic
digest.

• SCM_notification_digest_file_size_limit
Specifies the digest notification file size limit in megabytes (MB). The default value is 1 MB.
When the size of the collated digest notification exceeds the specified size limit, the digest is sent in
multiple parts.
This applies to both email and news feed notification methods.

• SCM_execution_day
Specifies the day the weekly digest is triggered. The default is Sunday.

• SCM_execution_time
Specifies the time the digest is triggered. The default is 15:00.

• WEB_default_site_server
When set, the digest contains the link for the subscription.

• Active Workspace
Use the format localhost:7001; for example, http://10.123.54.46:7001/awc.

• Rich client
Use the format WEB_SERVER_HOST:PORT; for example, 10.123.54.46:7001.

Configuring subscription to multiple objects

Since users can subscribe to multiple objects, you can use the AWC_followMultiObject_max preference
to control the number of objects to which a user subscribes at a time. By default, this preference is set to
5.

Configuring My Events

Users can use My Events to follow multiple events on an object. Because it is important to control the
number of events to which a user follows at a time to prevent users from creating many subscriptions,
use the following site preferences:

• AWC_followMultiEventConfig_max
Controls the maximum number of events a user can select on an object to follow. By default, this
preference is set to 5.

6-306 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring news feed retention

• AWC_followMultiEventConfiguredEventTypes
Controls default configured event types for multiple events. Valid values are
__Attained_Release_Status, __Attach, and __Item_Rev_Create.

Configuring news feed retention

Use the SCM_newsfeed_purge_threshold site preference to configure the number of days user news
feed notifications are retained before being purged. The default setting is 0 days, which retains the
news feed messages always. If you remove the preference value, the Retain News Feed (In Days) field
still displays on the Profile page.

Users can view their news feed retention time by going to the SUBSCRIPTIONS area of their Profile
page. From there, they can configure their threshold value. Otherwise, the purge is based on the site
configuration.

Purging news feed notifications

You can purge old news feed notifications using the clear_old_newsfeed_messages command line
utility. To process only read messages, enter the following:

clear_old_newsfeed_messages -u=user -p=password -g=group -process_only_read_messages

Visualization configuration

Visualization configuration tasks

What is visualization?

Visualization is the displaying of part files in a viewer. The View tab in Active Workspace allows you to
see the part files of the selected object.

Why configure visualization?

After installing visualization components, usually you do not need to change visualization settings. But
you can change aspects of visualization to improve security, logging, and performance.

What can I configure?

You can configure the following aspects of visualization:

• Configure TCCS environments for Visualization.

• Specify the address for the Teamcenter SOA service.

• Configure Visualization where Teamcenter is deployed behind a load balancer.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-307


© 2020 Siemens
6. Configuring Active Workspace features

• Configure the viewer for a Security Services-enabled environment (Teamcenter 11.x).

• Optimize Visualization Server system performance.

• Enable Visualization Server Manager logging.

• Configure the Visualization Pool Assigner for JMX metrics.

• Configure user service level.

• Specify viewer defaults using Teamcenter preferences.

• Adjust the display resolution for 3D models.

• Configure display units.

• Configure measurement precision.

• Configure support for monolithic JT files.

• Configure bounding box validation.

What do I need to do before configuring?

Before you can configure visualization, you must install the features. Install the following from the
Features panel of Teamcenter Environment Manager (TEM):

• Visualization Pool Assigner


Installs the middle-tier process that communicates with the visualization server processes of the
Active Workspace client .
Select Active Workspace→Client→Visualization Pool Assigner.

• Visualization Extension
Installs the visualization template for Active Workspace.
Select Active Workspace→Server→Visualization Extension.

• Visualization Data Server


Installs the visualization server.
Select Active Workspace→Visualization Server→Visualization Data Server.

• Visualization Server Manager


Installs the manager for the pool of visualization processes.
Select Active Workspace→Visualization Server→Visualization Server Manager.

6-308 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure TCCS environments for Visualization

Where can I find out more about visualization?

See Getting Started with Product Visualization in the Teamcenter help collection.

Configure TCCS environments for Visualization

If you are using a TCCS environment for Teamcenter, you must set up a separate TCCS environment for
the Active Workspace URL in order to open models in standalone Visualization from Active Workspace.
The Active Workspace URL must be added in addition to the Teamcenter URL.

Follow the instructions in the Teamcenter help to Install TCCS using the stand-alone installation wizard,
to add another URL like this: http://servername/awc/tc.

Specify the address for the Teamcenter SOA service

You can specify the address for the Teamcenter SOA service which is the context root for the
Teamcenter instance. In some reverse proxy deployments, the Visualization Pool Manager cannot access
the outside reverse proxy address due to a firewall. This address is used to provide a direct path from the
Visualization Pool Manager to the main Teamcenter SOA stack.

1. In Teamcenter Environment Manager (TEM), browse to the Feature Maintenance panel.

2. Select Visualization Server Pool Assigner (Java EE) or (.NET)→Update Visualization Server Pool
Assigner configuration and click Next.

3. In the Visualization Server Pool Assigner Settings dialog box, type the server side four-tier URL in
the Server Side 4-Tier URL box.

Configure Visualization where Teamcenter is deployed behind a load


balancer

You have two options when configuring Visualization in an environment where Teamcenter is behind a
load balancer.

Option 1

Set up Teamcenter in a cluster, and then configure it behind a load balancer. For more information on
setting up Teamcenter in a cluster, see Overview of clustered deployment in the Teamcenter Help.

Note:
The Teamcenter load balancer URL cannot be used as the SOA URL unless Teamcenter is deployed
in a cluster.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-309


© 2020 Siemens
6. Configuring Active Workspace features

Option 2

Deploy Teamcenter and Active Workspace behind a load balancer—preferably on the same application
server. Use localhost for configuring the Active Workspace SOA URL. You will still achieve load balancing
since the client requests are coming in through the load balancer.

If you must deploy Teamcenter on a separate application server or the Teamcenter SOA URL needs to be
configured with a valid domain name in your environment, then due to the unique Teamcenter SOA
URL, you must generate separate Active Workspace gateway deployments, each configured with its own
VisAssigner.

Configure viewer for SSO-enabled environment (Teamcenter 11.x)

If you are using Teamcenter version 11.x, before you can use the Active Workspace viewer when
Security Services (SSO) is enabled, the following must be configured.

• You need just one login service deployed in Applet mode to be used by Visualization as well as the
Active Workspace client.

• The Teamcenter thin client must be enabled for Security Services and configured with a Login Service
that is deployed in applet mode. See Security Services Installation/Customization in the Teamcenter
help collection.

Note:
• You must configure the Identity Service with two appID values: one for Active Workspace and
another for Teamcenter thin client.

• The Teamcenter server must be configured for single sign-on with both appID values
separated by a comma or space. For example:

appID value

Active Workspace appIDAW

Teamcenter thin client appIDTC

Teamcenter server appIDAW, appIDTC

Teamcenter rich client (not appIDTC


required for viewer)

• Once configured, verify you can log onto the Teamcenter thin client from the Visualization Server
machine. You may need to enable Java applets for the browser.

• Specify the address for the Teamcenter SOA service.

6-310 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Optimizing Visualization Server system performance

Note:
Ensure you add a trailing slash (/) to the end of the URL.

Note:
• After working in one Active Workspace session for more than 10 hours, the viewer may fail to
launch. Sign out of Active Workspace and sign in again to open the viewer.

• If you remain signed in overnight, Security Services may time out. If it does, sign in again.

Optimizing Visualization Server system performance

The Visualization Pool Assigner and Visualization Server Manager have several configuration parameters
that impact server scalability, that is, how many Active Workspace users can open 3D viewers before the
Visualization Servers are considered too busy to accept any further users.

• Timeouts
When an Active Workspace client opens a model in a 3D viewer, a corresponding server data
container is opened in a VisView process on the Visualization Server. A single server VisView process
may contain several data containers, from different clients' viewers.
Each VisView process and each data container in it consumes server resources. When a client viewer
is terminated, for example, by the user logging out of Active Workspace or closing the browser tab, an
opportunity to release server resources arises. However, for the scenario when a client viewer is not
terminated but merely becomes inactive, a timeout period may be set that releases server resources.
The following settings provide a way to control this timeout behavior.

Variable Default File


Value Definition Location

timeoutS 900 (15 A client viewer is Pool Assigner %TC_ROOT%\visassigner \jetty


min) considered inactive if it \jettyservice.properties
does not cause any
http traffic to the
Visualization Server.
When a client viewer is
inactive for timeoutS
seconds, then the
corresponding server
data container is
closed.

timeoutS 1800 A VisView process is Server %TC_ROOT%\ vispoolmanager


(30 considered inactive if Manager \jetty\ jettyservice.properties
min) all of its connected
clients viewers are
inactive. When a

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-311


© 2020 Siemens
6. Configuring Active Workspace features

Variable Default File


Value Definition Location

process is inactive for


timeoutS seconds,
then it is terminated.

These timeout settings play a role in the tradeoff between server scalability and client user
convenience. Decreasing the timeout values may allow more users access to the Visualization Server
(by sooner releasing unused server resources of inactive users), but may cause more inconvenience to
individual users (by triggering more reconnection events). Reversely, increasing the timeout values
causes less viewer reconnect interruptions to users but increases overall server resource usage, which
allows fewer users access to the server.

Example:
Suppose a Visualization Server is configured with the default timeout values, and it has a single
VisView process with 2 data containers, each connected to a client viewer. The first client
viewer becomes inactive, that is, there is no more http traffic to its data container. After 15
minutes of inactivity, the first data container is closed, leaving only the second data container in
the VisView process. The second client viewer becomes inactive some time later. After 15
minutes of inactivity, the second data container is also closed, leaving the VisView process with
no data containers. The process is not terminated immediately, as it contains cached data that
might be useful for a suitable client viewer that might connect. However, the process is
terminated after another 15 minutes, namely the difference between the Visualization Server
Manager timeoutS and the Visualization Pool Assigner timeoutS. This is why the value of the
Visualization Pool Assigner timeoutS should always be smaller than the value of the
Visualization Server Manager timeoutS.

Note:
• If the user accesses the client viewer after it has timed out (the Visualization Pool Assigner
timeoutS), a message appears warning that the connection is being reestablished, and the
viewer reconnects to the Visualization Server.

• Actions in other, non-viewer interfaces of Active Workspace do not affect the viewer inactivity
state. It is defined solely through the http traffic to the Visualization Server, not to the
Teamcenter server.

• When reconnecting, the viewer selection state and visibility state is restored. However, the
navigation state and any state of the viewer panels, such as Measurement and Section is
not restored.

• VisView process terminations (Visualization Server Manager timeoutS) are indistinguishable


from process crashes. In the unlikely event of a process crash, the client viewer reconnects as
if it had timed out (the Visualization Pool Assigner timeoutS).

6-312 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Optimizing Visualization Server system performance

The Visualization Server Manager constantly monitors all VisView processes. If a process becomes
unresponsive to these monitoring requests, then it is terminated. This avoids hung processes
consuming valuable server resources.

Variable Default File


Value Definition Location

unresponsive- 180 (3 If a VisView process does not Server %TC_ROOT%\


TimeoutS min) respond to monitoring requests Manager vispoolmanag
for unresponsiveTimeoutS er\jetty\
seconds, it is terminated. jettyservice.pr
operties

• maxBytesPerSec
The Visualization Pool Assigner and Visualization Server Manager both possess a maxBytesPerSec
configuration parameter. This parameter represents the maximum number of bytes per second that
this node may transmit or receive before it rejects requests from users to load new models. The
default value is 125000000 bytes per second. If your server system is consuming too much network
bandwidth, you may want to consider adjusting this parameter.
To modify this configuration parameter for the Visualization Server Manager or the Visualization Pool
Assigner, do the following:

1. In a text editor, open the jettyservice.properties file from the in the Visualization Server
Manager’s or Visualization Pool Assigner's installation.

2. Adjust the value of the VisPoolproxy.maxBytesPerSec parameter for your server environment.

• maxUsageThreshold
The Visualization Pool Assigner and Server Manager possess a maxUsageThreshold configuration
parameter. This parameter represents the maximum usage and load ratio that any Visualization
Server Manager or VisView process may possess before the Visualization Pool Assigner refuses to
allocate new open model requests to that Visualization Server Manager or VisView process. The
Visualization Pool Assigner and Server Manager do not assign any more users to a particular VisServer
if its system load (an amalgam of network usage, CPU usage, memory usage, and GPU memory
usage) exceeds the given threshold specified with this parameter. The range of values accepted is 0.0
(no load) to 1.0 (full load).
To modify this configuration parameter for the Visualization Server Manager or Visualization Pool
Assigner, do the following:

1. In a text editor, open the jettyservice.properties file in the Visualization Server Manager’s or
Visualization Pool Assigner's installation.

2. Adjust the value of the VisPoolproxy.maxUsageThreshold parameter for your server


environment.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-313


© 2020 Siemens
6. Configuring Active Workspace features

Disable application pool recycling for visualization

You can use IIS Manager to recycle application pools; however the Visualization Pool Assigner does not
support recycling.

When an application pool is recycled, stored information about client connections, health, and model
sizes is cleared. This causes errors, typically socket exceptions, in the connected Visualization Server
Manager. These exceptions are difficult to resolve and stop the Visualization Server Manager. Because of
this condition, settings for the application pool containing the Visualization Pool Assigner must be
updated to disable recycling.

You must set these two settings in the IIS Manager Advanced Settings for the application pool that
contains the Visualization Pool Assigner:

• Under Recycling, set Regular Time Interval to 0.

• Under Process Model, set Idle Time-out to 0.

6-314 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Enable compression of client-side rendering traffic

Enable compression of client-side rendering traffic

When using client-side rendering in Active Workspace Visualization, you can enable gzip compression for
all VisProxyServlet/emm HTTP responses from the Visualization Pool Assigner to the client. To do this,
you use a parameter in the Visualization Pool Assigner configuration file.

1. In a text editor, open the visassigner/jetty/jettyservice.properties file under the Teamcenter


installation directory.

2. Add the following parameter to the file:

VisPoolProxy.allowHTTPResponseCompression=True

Note:
To disable compression, set the value to False. (This is the default value.)

Enable Visualization Server Manager logging

The Visualization Server Manager logs capture system information that you can use to identify and
resolve problems.

• Create the following environment variables:

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-315


© 2020 Siemens
6. Configuring Active Workspace features

Name Value

TCVIS_DA_DEBUG_LOG True

Note:
For this environment variable, the value of
True is case sensitive.

TCVIS_LOGGING_LEVEL Any of the following:

ERROR
INFO
DEBUG

TCVIS_LOGGING_PATH A valid path to the location where you want the


system to write the log files. If this environment
variable is not set, the generated
VisView#####.log files (one log file per
VisView process) is placed into the jetty’s TEMP
directory. If this environment variable is set, all
log files are placed into one file, which may
make it more difficult to determine which
process each log event came from.
If TCVIS_DA_DEBUG_LOG and
TCVIS_LOGGING_LEVEL are set properly, this is
an optional parameter.

Example:
With TCVIS_LOGGING_LEVEL set to DEBUG, the log files include information about how the
system is using OpenGL. When setting up the Visualization Server hardware, you can use this
information to ensure the graphics hardware is operating as expected.
For example, the information in the sample output below indicates the system is not configured
properly, because it is utilizing software rendering.

Running on GL_VERSION: 1.1.0 (1.1.0 supported by driver)


Running on GL_VENDOR: Microsoft Corporation
Running on GL_RENDERER: GDI Generic

Note:
When a Visualization Server process crashes, a log file with crash information is always written.
If Visualization Server logging is not enabled, the log file is written to the system TEMP
directory.

6-316 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure the Visualization Pool Assigner for JMX metrics

Configure the Visualization Pool Assigner for JMX metrics

The Visualization Pool Assigner exposes a variety of useful information through JMX, but not all of this
information is available automatically. Due to stability risks, the following JMX metrics are unavailable
for the Visualization Pool Assigner without special configuration:

• computerCpuUsageRatio
• computerMaxBandwidthBytesPerSec
• computerMemUsageRatio
• computerNetworkUsageRatio
• computerTotalMemMB
• loadRatioAbsolute
• loadRatioRelative
• visSysCpuUsageRatio
• visSysMemUsageRatio
• visSysNetworkUsageRatio

Although these metrics appear in a JMX client, their values are not populated with useful
information. To enable these JMX metrics for your Visualization Pool Assigner, you must copy a provided
DLL into the path of the Java servlet container hosting your Visualization Pool Assigner.

1. Locate the web application file vispoolmanager.war installed by TEM on your file system under
the visassigner folder.

2. Open the we application file using an unzipping program.

3. Navigate into the WEB-INF\lib\ area and locate the vis-proxy jar file.

4. Open vis-proxy using an unzipping program and extract Metrix.dll.

5. Add the location of Metrix.dll to the path of the server that hosts your Visualization Pool Assigner.
The easiest way to do this is to find the script that starts the server, or to create a new script to start
the server if one does not already exist. In the script, prepend the location of the Metrix.dll to your
path.

Example:
If you place Metrix.dll in C:\foo, add the following command to the script:
set path=C:\foo;%path%

6. Restart your Visualization Pool Assigner.


If the Visualization Pool Assigner fails to find Metrix.dll, the following warning is printed to the
console on startup:
The Metrix library could not be loaded. Some system performance metrics
are unavailable to JMX clients.
If the Visualization Pool Assigner succeeds in finding Metrix.dll, no warning is displayed and the
JMX metrics are populated with meaningful data.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-317


© 2020 Siemens
6. Configuring Active Workspace features

Configure user service level

The pages, panels, and features used for visualizing 3D data are available to users based on their
Visualization service level license: Base, Standard, Professional, or Mockup.

There are three ways to configure user service levels

• Enter the value for the correct service level for the Visualization Licensing Level option when
creating or managing a user in Active Workspace.

• Select the correct service level for the Visualization Licensing Level option in the Teamcenter
Organization application.

• Use the command line make_user utility:

make_user -u=infodba -p=pw_infodba -g=dba -user=aw_test_4


-vislicenselevel=mockup -update

Specifying viewer defaults using Teamcenter preferences

You can change the default settings for many of the Active Workspace visualization features by changing
their preference values in the Teamcenter rich client.

Visualization Default Teamcenter preference


feature

3D navigation Rotate AWC_visNavigationMode


mode

Front view +Y AWC_visStdViewOrientationFront


orientation

Left view +X AWC_visStdViewOrientationLeft


orientation

Top view –Z AWC_visStdViewOrientationTop


orientation

Display mode Shaded with edges off AWC_visShading


(shaded with
edges on or off)

Material Flat AWC_visMaterial

Floor visibility Off AWC_visFloorOn

Floor offset 0.0 AWC_visFloorOffset

Floor orientation XZ AWC_visFloorPlaneOrientation

6-318 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure the Fit command

Visualization Default Teamcenter preference


feature

Floor grid visibility When the floor is on, the AWC_visGridOn


grid is displayed.

Reflection visibility When the floor is on, the AWC_visReflectionOn


reflection is not displayed.

Shadow visibility When the floor is on, the AWC_visShadowOn


shadow is not displayed.

Trihedron visibility On AWC_visTrihedronOn

Preloading On Awb0TcVisPreFetchAllowed
assemblies

Display effectivity Off AWC_visOverlayDisplayEffectivity


(tail number)

Use transparency On AWC_visSelectionDisplay


selection mode

Show caps and cut On AWV0SectionCapsEdgesInitialState


lines on sections

Configure the Fit command

When you use the Fit command to fit components in the view, by default a spherical boundary selects
and fits the components. You can configure the Fit command to fit a 2D box around the model and
annotations and fit that within the 2D viewing area. With this feature enabled, the result can be a closer
view of the parts within the viewing area.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-319


© 2020 Siemens
6. Configuring Active Workspace features

1. Shut down the Visualization Server Manager.

2. Back up the jetty/jettyservice.properties file.

3. Edit the jetty/jettyservice.properties file to add the following line:


VisPoolProxy.envset.TCVIS_FITALL_2DBBOX=True

4. Start the Visualization Server Manager.

Adjusting the display resolution for 3D models

When you display and manipulate a 3D model in Active Workspace, the Visualization Server renders
images of the model and sends them to the client viewer for display. The images are typically the same
size as the client viewer. However, if the client viewer is larger than the desktop resolution of the
Visualization Server, the images are the same size as the server resolution and scaled to fit the client
viewer.

If you expand the client viewer to the point where it exceeds the server resolution, the scaled images
may appear soft, especially the edges of 3D models. To compensate for this, increase the desktop
resolution on the Visualization Server.

It is recommended that the system administrator consider the maximum client resolution that is needed
to show crisp images, and set the server desktop resolution accordingly. Note that there is no fixed

6-320 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configure display units

overhead to setting a high server desktop resolution, as clients typically use a lower resolution and the
corresponding server rendering and network image transfer happen at that lower client resolution.

Configure display units

Use the AWC_3DViewerDisplayUnit preference to configure the default display unit. The default unit is
Meters. Users can override the default unit using the Displayed dropdown.

Value Units

1 Millimeters

2 Centimeters

3 Meters

4 Inches

5 Feet

6 Yards

7 Micrometers

8 Decimeters

9 Kilometers

10 Mils

Configure measurement precision

The default measurement precision is hundredths. To change the measurement precision, follow these
steps on the machine hosting the visualization server.

1. Click the Windows Start button and type regedit in the search box.

2. Select the regedit.exe result to launch the Windows Registry Editor.

3. Locate the following registry key, replacing version with the Active Workspace version.

HKEY_CURRENT_USER\Software\Siemens\AW_Retained\version\Common\C\Measurement\

4. From the Edit menu, choose New→DWORD (32-bit) Value.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-321


© 2020 Siemens
6. Configuring Active Workspace features

5. Name the registry value Measurement_Precision.

6. Right-click the Measurement_Precision value and choose Modify….

7. In the Base section, select the Decimal option.

8. In the Value data box, enter the desired measurement precision:

Values Precision

0 3

1 3.1

2 3.14

3 3.142

4 3.1416

5 3.14159

9. Click OK.

10. Restart the Visualization Server Manager to see the change take effect.

Configure support for JT Override children

Add support for the JT Override Children column on the structure table

Complete the following steps to enable the end user to add the JT Override Children column to the
structure table.

1. Create an XML file containing the following:

6-322 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
What is bounding box validation?

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<Import>
<Client abbreviation="AWClient" name="AWClient">
<ClientScope hostingClientName="" name="Awb0OccurrenceManagement"
uri="Awb0OccurrenceManagement">
<ColumnConfig columnConfigId="mySampleContentColConfig" sortBy="0"
sortDirection="Descending">
<ColumnDef objectType="Awb0PositionedElement"
propertyName="awv0JtOverrideChildren" width="50"/>
</ColumnConfig>
</ClientScope>
</Client>
</Import>

2. At the Teamcenter command prompt, merge the XML file with any existing column definitions
using the import_uiconfig utility, and specify the desired group and role values for this
functionality.

Enable viewing individual node geometry of overridden subassemblies

When viewing a structure that has an element overridden by a monolithic JT file, only the monolithic JT
file geometry is displayed in the 3D Viewer. No geometry associated with any of the individual child
lines under that element will be loaded or displayed in the 3D Viewer.

To enable the end user to view the geometry overridden by a monolithic JT file by opening the
overridden subassembly in a new tab, uncomment the following line in the Visualization Server
Manager’s jetty/jettyservice.properties file:

#VisPoolProxy.envset.TCVIS_IGNORE_ROOT_MONO_OVERRIDE=True

Bounding Box Validation

What is bounding box validation?

Bounding box validation checks for stray parts outside of an assembly. You must define the assembly’s
bounding box by using minimum and maximum X, Y, and Z values.

Parts that are found outside the defined area are not only a potential problem with locator numbers,
drawings, sections, analysis, and so on, but also can cause issues displaying the assembly in the 3D
viewer. For example, if a stray part is located far outside the defined area, then when the assembly is fit
to the viewer it may have to zoom out so far that the parts are merely dots on the screen.

Bounding box validation is only available if the Visualization Data Server is installed.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-323


© 2020 Siemens
6. Configuring Active Workspace features

How does bounding box validation work?

By default, you choose which assemblies need bounding box validation and attach a form to each,
assigning the minimum and maximum values for the bounding box.

Once the form is attached to the assembly and filled out, if a part in that assembly falls outside the
defined area, an entry is logged in the BBoxUpdate.log file located in your system temp directory. You
may assign bounding box validation to as many assemblies as you want, just add a form to each one.

Occasionally checking this file will reveal any parts that violate any assigned bounding boxes.

How can I further configure how bounding box validation works?

• Change what happens when a part is outside the area.

• Change which form that the validator looks for.

• Set a site-wide default bounding box for all assemblies.

• Modify the logging settings.

Attach bounding box forms to assemblies

Use a Teamcenter form to define bounding box validation parameters and assign them to your
assemblies. This ensures that each assembly uses the correct bounding box parameters.

1. Create a form of type UGPartBoundingBoxForm, and attach it to the top level of the assembly
using the IMAN_requirement relation.

2. Fill out the fields on the form to define the minimum and maximum X, Y, and Z values for the
bounding box.

The system will automatically use this form on this assembly to validate that all parts fall within the
defined bounding box.

Repeat this process for each assembly where you want a bounding box validated.

Changing default behavior for bounding box validation

You can make changes to the default behavior of bounding box validation by modifying the BBox
Validator section of the VisDataServer.properties file, which is located in the TC_ROOT\VisDataServer
\etc directory.

6-324 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Changing default behavior for bounding box validation

Note:
After making changes to this file, you must restart the Visualization Data Server for those
changes to take effect.

# BBox Validator
# Default BBox limit on the products. A per product limit can be set using a bbox form
on the Item Revision.
# The BBox units are in meters...
# ProductManager.BBoxValidator.BBoxLimit= -10, -10, -10, 10, 10, 10

# Specifies the suppression to be done on a Node that extends outside of the BBoxLimit.
# The supported modes are the following (FileRef is the default mode):
# Full: The complete Node information is suppressed. Same behavior as no read access on
a Node.
# FileRef: Any file references are removed. Same behavior as no read access on the
attached files.
# None: No suppression will be done.
ProductManager.BBoxValidator.NodeSuppression= FileRef

# The Relation name used to reference the min/max Form values.


ProductManager.BBoxValidator.FormRelationName= IMAN_requirement
# This is the form type to look for min/max values under the ItemRevision.
ProductManager.BBoxValidator.FormObjectType= UGPartBoundingBoxForm
# The property names on the form to get the values (xmin, ymin, zmin, xmax, ymax, zmax).
ProductManager.BBoxValidator.FormPropertyNames= xmin, ymin, zmin, xmax, ymax, zmax

Change what happens

By default, bounding box validation suppresses the display of any parts that violate the validation
bounding box limits in the 3D viewer, but still shows the entry in the structure.

To modify this behavior, change the ProductManager.BBoxValidator.NodeSuppression= field


to specify the type of suppression to use. Regardless of this setting, the violation will still be logged.

• Full — The complete node information is suppressed, both in the 3D viewer and in the structure, as if
the part is not present in the assembly.
• FileRef — The 3D viewer suppresses the display of the file, but the BOM line entry still shows in the
structure.
• None — No suppression.

Change the form information

By default, bounding box validation looks for the following properties on specific form type attached to
the assembly with a specific relation:

Form type: UGPartBoundingBoxForm


Relation name: IMAN_requirement
Property names: xmin, ymin, zmin, xmax, ymax, zmax

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-325


© 2020 Siemens
6. Configuring Active Workspace features

You can change any or all of these values if you want to use a custom form, properties, or relation.

Provide site-wide default bounding box

By default, bounding box validation only examines assemblies with the specific form attached. You can
uncomment the following line to provide a default bounding box for all assemblies in the database. Any
assemblies that have the form attached will override these defaults.

# ProductManager.BBoxValidator.BBoxLimit= -10, -10, -10, 10, 10, 10

Workflow configuration

Workflow configuration tasks

What is workflow?

A workflow is the automation of business procedures in which documents, information, or tasks are
passed from one participant to another in a way that is governed by rules or procedures. Users click the
INBOX tile to view workflow assignments.

Why configure workflow?

You may want to change how workflow assignments are displayed to end users.

What can I configure?

You can configure the following aspects of workflow:

• Configure resource pool assignments.

• Set conditions for workflows.

• Show user assignment options.

• Configure the inbox.

What do I need to do before configuring?

Before you can configure workflow, you must install the features. Install the following from the
Features panel of Teamcenter Environment Manager (TEM):

• Workflow
Installs the user interface elements for using workflow in Active Workspace.
Select Active Workspace→Client→Workflow.

6-326 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring resource pool assignments

• Workflow Server
Installs the server-side definitions for workflow.
Select Active Workspace→Server Extensions→Workflow Server.

Where can I find out more about workflow?

See Getting Started with Workflow in the Teamcenter help collection.

Configuring resource pool assignments

Use the WRKFLW_auto_subscribe_to_resource_pools preference to set Active Workspace to always


display in a user’s inbox those tasks assigned to resource pools that the user is a member of based on
the user’s group or role (referred to as automatic subscription). If you turn off automatic subscription,
only tasks assigned to the resource pools to which the user has been manually subscribed appear. The
default is automatic subscription.

Note:
Currently, users cannot manually subscribe to resource pools through Active Workspace.

Setting conditions for workflows

Use the Fnd0AssignTaskPrivilege Business Modeler IDE condition to restrict the reassignment of
workflow tasks. By default:

• Users belonging to the dba group can reassign any task.

• The current user who is either the assignee of the task or an active surrogate can reassign a task.

• For signoff tasks, if the decision has not been set, the current user who is either the assigned group
member or the active surrogate can reassign the task.

Use the Fnd0AddReviewerPrivilege Business Modeler IDE condition to restrict the addition of reviewers
at the perform signoff stage of workflow tasks. By default all users can add reviewers to perform signoff
tasks.

Refer to Configure your business data model in BMIDE in the Teamcenter collection for more
information about setting conditions.

Showing user assignment options

The WRKFLW_show_user_assignment_options preference shows project teams for user selection. It


sets the display of the organization or project teams in the user search panel when you assign users to
workflow tasks as responsible parties, reviewers, and dynamic participants.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-327


© 2020 Siemens
6. Configuring Active Workspace features

The user list is restricted to the organization or the selected project in the project list. If this preference is
set to org_only, projects should not be shown. If this preference is set to project_only, the users
outside the assigned projects are not shown for selection. If the option is set to project_default, the
owning project is preselected and its team should be shown by default.

Configuring the Inbox

Setting up filtering in the Inbox

You can set the properties to be used to filter the tasks that appear in the Inbox, as shown in the figure
for the tasks found when selecting the Team tab. The tasks are Workflow business objects of the
EPMTask type and its subtypes.

To set the filtering, in the Business Modeler IDE, set the following property constants on the property of
the Workflow business object on which you want to filter.

• Awp0InboxCanFilter
Indicates that Workflow objects can be filtered on the property.

• Awp0InboxFilterPriority
Indicates the priority of the property that determines its order in the list of filters displayed in the
Inbox. The lower the value, the higher its priority and, therefore, the higher its position in the list of
filters.
Siemens Digital Industries Software recommends that you assign values from a range to
accommodate additional properties in the future. For example, assign priorities such as 100, 200, and
300, instead of 1, 2, and 3.

By default, the following properties are shown as filters for Workflow business objects:

• object_type
The type of object.

• due_date
The date the object is due.

6-328 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Configuring email notification

• fnd0Assignee
The user to whom the task is assigned.

• fnd0Priority
The priority of the task.

• fnd0WorkflowInitiator
The user who initiated the workflow on the task.

Workflow filters can only be set on the following types of persistent properties or compound properties
targeting them.

Property types supported for filtering Property types not supported for filtering

• Date • String properties with long string as storage

• String • Numeric properties

• References • Array properties

• Logical

Configuring email notification

Configure Active Workspace to send users email notifications when there are workflow tasks in their
inbox. The email notification contains a link to the task so the user can select it to open the task in their
Active Workspace inbox.

Use the following workflow handlers and preferences to configure the notifications.

• Use the following workflow handlers to Insert a link to the workflow process into the notification
email.

• EPM-notify
Informs users of a task's status through email.
Contains a -url argument. The value for Active Workspace is activeworkspace.
If the -url argument is not specified, the values specified in the EPM_notify_url_format preference
is used.

• EPM-notify-report
Sends a report through email to all task reviewers.
If the-url argument is not specified, the values specified in the EPM_notify_url_format preference
is used.

• EPM-notify-signoffs

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-329


© 2020 Siemens
6. Configuring Active Workspace features

Informs users of a signoff task's status through email. It does not contain a -url argument. Instead,
it uses the format specified in the EPM_notify_url_format preference.

• For an Active Workspace link to be added in the notification email, either of the following two Active
Workspace hosting preferences must be present:

Note:
These preferences are not included in your Teamcenter installation. You must add them to the
database.

• ActiveWorkspaceHosting.URL
Specifies the URL that Teamcenter uses to communicate with Active Workspace for hosted
operations, such as search, open item, and others.
URL=http://<host>:<port>/awc

• ActiveWorkspaceHosting.WorkflowEmail.URL
Specifies the URL used that the workflow uses to communicate with Active Workspace for email
links. For example:
URL=http://<host>:<port>/awc

In addition, the EPM_notify_url_format preference contains the activeworkspace value to use to


specify that an email notification should contain a link to the task in Active Workspace.

For more information about these workflow handlers and preferences, see Workflow Designer and
Environment Variables Reference in the Teamcenter help collection.

Allowing access to the Inbox of other users

Use the Fnd0AccessInboxPrivilege Business Modeler IDE condition to set what users can open another
user’s Inbox. By default, users belonging to the dba group are given privileges to open another user’s
inbox. Other users do not have permission.

Refer to Configure your business data model in BMIDE in the Teamcenter collection for more
information about setting conditions.

Displaying custom properties in the inbox

If you want to display custom properties in the inbox, you need tounderstand the basic functionality of
three important objects in the data model.

• EPMJob

• EPMTask

• Signoff

6-330 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Displaying custom properties in the inbox

Tip:
This is a brief overview of a few essential objects and properties for workflow. The object and
property descriptions in the Business Modeler IDE are the source for complete information about
objects and their properties.

EPMJob

The EPMJob object is a child of WorkspaceObject.

It represents the entire workflow process execution.

The root_task property contains a link to the top-level EPMTask object. This root task is the starting
point for navigation to all the other tasks in the workflow task hierarchy.

EPMTask

The EPMTask object is a child of WorkspaceObject.

It represents an individual step taken during the workflow process execution.

Properties like parent_task and child_task define the workflow's structure by containing links to other
EPMTask objects.

The successors property lists which tasks will be launched after this one finishes (reaches the complete,
failed, or skipped state).

The signoff_attachments property contains a list of Signoff objects related to the task.

Signoff

The Signoff object is a child of POM_application_object.

It represents a decision and related properties.

This object keeps track of not only the decision itself, but also key properties such as, the decision-
maker, the date of the decision, and any comments.

Custom properties in the Inbox

The Inbox will normally display one of the children of the EPMTask object, so the EPMTask is where you
add your custom property. However, when the review or acknowledge task is asking for approval during
the Perform signoff task, the Inbox will display the Signoff object instead.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 6-331


© 2020 Siemens
6. Configuring Active Workspace features

The Signoff object is not a child of the EPMTask object, so you must be certain to add your custom
property to the Signoff object as well, if you want it to always be displayed.

6-332 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
7. Configuring Active Workspace in other
products
Host Active Workspace in Client for Microsoft Office
Hosting integrates Active Workspace with installed or cloud-based applications. To host Active
Workspace in Microsoft Office applications, complete the following steps:

1. Install Client for Microsoft Office. You can install it using Teamcenter Environment Manager (TEM)
or with a standalone installer.
This places the Teamcenter ribbon on the Microsoft Office applications. (Active Workspace
functionality is accessed from the Teamcenter ribbon.) Refer to the Client for Microsoft Office
documentation for instructions.

2. Define the desired hosting preferences to link to your Active Workspace installation:

• Link to Active Workspace


Create the ActiveWorkspaceHosting.URL preference or the
ActiveWorkspaceHosting.Office.URL preference and set their values to the URL of the Active
Workspace installation.

• Display Active Workspace elements


Create preferences to define whether to use Active Workspace elements (for example,
TC_Use_ActiveWorkspace_Create , TC_Use_ActiveWorkspace_Inbox, and
TC_Use_ActiveWorkspace_Summary). Set these preferences to True.

Configuring connection with Lifecycle Visualization

Configure Active Workspace for connection with Lifecycle Visualization

Note:
Active Workspace Application Connect is available only when using Active Workspace 4.3 or later
and Lifecycle Visualization 12.3 or later.

Active Workspace Application Connect enables users to use the Active Workspace Open in Visualization
command to open their data in a new browser tab and send data to the Lifecycle Visualization
application. Like hosting, this connectivity option allows the user to see their work synchronized
between Active Workspace and Lifecycle Visualization. Unlike hosting, Active Workspace Application
Connect allows the user to open multiple documents—either in the same browser tab or in separate
browser tabs—and retain connectivity for all opened documents. Active Workspace Application Connect
also has improved cross-selection performance.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 7-1


© 2020 Siemens
7. Configuring Active Workspace in other products

To enable a user to establish a connection between Active Workspace and Lifecycle Visualization, set the
following preferences:

• AWV0UseAWAppConnect
Causes a new tab to open in the default browser, which enables the Active Workspace session to
interoperate with Lifecycle Visualization. If the value of this preference is True, Active Workspace
Application Connect is enabled. If it is False but the AWV0HostAWInVisUponLaunch preference is
set to True, then connection between Active Workspace and Lifecycle Visualization is completed
through hosting and not Active Workspace Application Connect.
The URL of the Active Workspace Application Connect browser tab will begin with http://
<your_aw_deployment>?ah=true&room=TcVis_.

• AWV0HostAWInVisUponLaunch
Enables an Active Workspace session in Lifecycle Visualization when you open a model in
visualization. If the value of this preference is True the Active Workspace session is enabled. If it is
False, only the visualization session is enabled. This preference must be set for both Active Workspace
Application Connect and for hosting.

To Do

Enable connectivity using Active Workspace Application AWV0UseAWAppConnect=True


Connect.
AWV0HostAWInVisUponLaunch=True

Enable connectivity using hosting. AWV0UseAWAppConnect=False


AWV0HostAWInVisUponLaunch=True
Configure hosting (one-time).

Host Active Workspace in standalone Lifecycle Visualization

You can host Active Workspace in the browser embedded in standalone Lifecycle Visualization. Hosting
is especially useful because if you use the Active Workspace Open in Visualization command to send
data to the Lifecycle Visualization application, then selecting parts in either the hosted Active Workspace
structure or in the viewing window applies the same selection status in both locations. This behavior is
referred to as "cross-selection."

One-time configuration of the local machine is required.

Configure the local computer to host Active Workspace in standalone Lifecycle Visualization

Host Active Workspace in standalone Lifecycle Visualization

Configure the local computer to host Active Workspace in standalone Lifecycle


Visualization

Prerequisites for this procedure:

7-2 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Host Active Workspace in standalone Lifecycle Visualization

• The Teamcenter administrator has installed the Active Workspace server extension for Visualization.
• Standalone Lifecycle Visualization software is installed on the local computer.
• A File Management System client cache (FCC) for the Active Workspace Teamcenter database is
configured on the local computer.

1. In the standalone viewer, from the Application toolbar, choose Menu→Web→Edit Links.

2. In the Edit Links dialog box, click Add.

A new link appears in the Link Names list.

3. Type a name for the link, and press Enter.

4. Select the link and then, in the Link URL box, type the Active Workspace address.

5. Add the following text to the end of the address:

?ah=true

Your full address should now resemble the following:

http://<your_aw_deployment>?ah=true

Adding the ?ah=true suffix selects and disables the Display in Info Browser check box.

6. Click OK.

Your new link is now displayed on the Web menu.

7. In the Windows registry, create the following browser emulation DWORD entries.

HKEY_CURRENT_USER
SOFTWARE
Microsoft
Internet Explorer
Main
FeatureControl
FEATURE_BROWSER_EMULATION
visview.exe = (DWORD) 00011000
visview_ng.exe = (DWORD) 00011000

Make sure the 11000 DWORD values are in decimal. The equivalent value in hexadecimal is 2AF8.

8. Review the compatibility view settings.

a. Open Internet Explorer.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 7-3


© 2020 Siemens
7. Configuring Active Workspace in other products

b. Press Alt to display the Menu bar (or right-click the Address bar and then select Menu bar).

c. Click Tools, and then click Compatibility View settings.

d. Ensure that the following options are turned off.

Display intranet sites in Compatibility View

Use Microsoft compatibility lists

Host Active Workspace in standalone Lifecycle Visualization

1. As needed, configure the local computer to host Active Workspace in standalone Lifecycle
Visualization.

2. In standalone Lifecycle Visualization, from the Application toolbar, choose


Menu→Web→<your_aw_link>.

3. Type your user name and password, and click Sign in.

4. (Optional, but likely desired) In the hosted Active Workspace browser, send visualization data to the
standalone viewer.

Set up Active Workspace within Adobe Creative Cloud applications


Active Workspace can be hosted within Adobe Creative Cloud (Adobe CC) applications, such as
Illustrator, Photoshop, and InDesign. To do so:

• Install Teamcenter Adobe CC Integration for Active Workspace.

• Specify the URL for accessing Active Workspace from the Adobe applications.

• Copy the plugin to launch the Adobe files from Active Workspace to appropriate Adobe CC
applications:
Copy \additional_applications\adode\Win64\Lauch.aip to C:\Program Files\Adobe\Adobe Illustrator CC
2019\Plug-ins\Tools.

If you wish to discontinue hosting Active Workspace within Adobe Creative Cloud applications, remove
Teamcenter Adobe CC Integration.

Install Teamcenter Adobe CC Integration

1. Ensure that Active Workspace is installed. For more information on this, refer to Active Workspace
Deployment in the Active Workspace help.

7-4 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Set up Active Workspace within Adobe Creative Cloud applications

2. Download the Adobe ExMan Command Line Tool ZIP file from https://partners.adobe.com/
exchangeprogram/creativecloud/support/exman-com-line-tool.html. Download the version for
Windows. For more information on Adobe's Extension Manager command line utility and the
available commands, see https://helpx.adobe.com/extension-manager/using/command-
line.html.

3. Extract the contents of the ExManCmd_win.zip file into any folder of your choice, for example,
ExMan_root.

4. In the software distribution image of your Teamcenter version, locate the folder where you
downloaded the Active Workspace distribution package and navigate to: additional_applications
\adobe.
In the adobe folder, verify that the following files exist:

• AWIntegration.zxp (this is the Active Workspace Adobe extension file)

• config.xml (this is the Active Workspace Adobe configuration file that can be configured for
automated deployments)

5. Copy the AWIntegration.zxp file into the ExMan_root folder so that this is in the same location as
the ExManCmd.exe utility.

6. Close all active Adobe applications that are compatible with the extension.

7. Open the command prompt and enter the following command:


ExManCmd /install AWIntegration.zxp

Specify the URL for accessing Active Workspace from Adobe applications

The steps below are optional. If the config.xml file is not present in the correct location, the user can set
the values while executing the Adobe extension for the first time. However, as an administrator, if you
wish to automate the deployment of the Adobe extension, you can perform the following steps to
preconfigure the settings in the config.xml file for the user and to deploy the file in the proper location:

1. In the software distribution image of your Teamcenter version, locate the folder where you
downloaded the Active Workspace distribution package and navigate to: additional_applications
\adobe.

2. Copy the config.xml file into:


%APPDATA%\Siemens\Teamcenter\AdobeExtension

3. Open the config.xml file and modify the <ActiveWorkspaceUrl> tag to specify the Active
Workspace URL. Ensure that ?ah=true is appended at the end of the URL.

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 7-5


© 2020 Siemens
7. Configuring Active Workspace in other products

Example:
<ActiveWorkspaceUrl>http://host:port/awc/
?ah=true</ActiveWorkspaceUrl>

4. (Optional) Modify the <WorkingDirectory> tag to specify the directory to use when downloading
or uploading files.

Example:
For Windows:
<WorkingDirectory>c:\temp</WorkingDirectory>

5. Save and close the config.xml file.

Remove Teamcenter Adobe CC Integration

1. For Windows, open a command prompt.

2. Change the directory to the location where you saved the ExManCmd utility, for example,
ExMan_root.

3. Enter the following command:


ExManCmd /remove "Teamcenter"

Hosting preferences
The following preferences are used to enable the hosting of Active Workspace functionality in the rich
client or other Teamcenter clients and in NX.

Tip:
You must create these preferences. These preferences are not created by the Teamcenter
installation process.

• ActiveWorkspaceHosting.URL
Specifies the URL used by Teamcenter to communicate with Active Workspace for hosted operations
such as search and open item.
This preference takes precedence over the ActiveWorkspaceHosting.NX.URL,
ActiveWorkspaceHosting.RAC.URL, ActiveWorkspaceHosting.Office.URL and
ActiveWorkspaceHosting.WorkflowEmail.URL preferences.

• ActiveWorkspaceHosting.Office.URL
Specifies the URL used by Teamcenter Client for Microsoft Office to communicate with Active
Workspace for hosted operations.

7-6 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Hosting preferences

• ActiveWorkspaceHosting.NX.URL
Specifies the URL used by Teamcenter Integration for NX to communicate with Active Workspace for
hosted operations.

• ActiveWorkspaceHosting.RAC.URL
Specifies the URL used by the rich client to communicate with Active Workspace for hosted
operations.

• ActiveWorkspaceHosting.WorkflowEmail.URL
Specifies the URL used by workflow to communicate with Active Workspace for email links.

• AWC_NX_AddComponentSupportedTypes
Enables addition of the specified object types as components in NX when selected in Active
Workspace. Only Item, ItemRevision, and dataset types and subtypes are supported.

• AWC_NX_OpenSupportedTypes
Enables opening the specified object types in NX when selected in Active Workspace. Only Item,
ItemRevision, and dataset types and subtypes are supported.

• AWC_OC_OpenSupportedTypes
Enables opening the specified object types in Teamcenter Client for Microsoft Office when selected in
Active Workspace. Only MSWord, MSWordX, MSWordTemplateX, MSWordTemplate, MSExcel,
MSExcelX, MSExcelTemplateX, MSExcelTemplate, Outlook, MSPowerPointX, MSPowerPoint,
MSPowerPointTemplate, and MSPowerPointTemplateX types and subtypes are supported.

• AWC_RAC_OpenSupportedTypes
Enables opening the specified object types in the rich client when selected in Active Workspace. Only
Item, ItemRevision, Folder, and dataset types and subtypes are supported.

• AWC_VIS_OpenSupportedTypes
Enables opening the specified object types in Teamcenter lifecycle visualization when selected in
Active Workspace. Only Dataset (DirectModel and UGMaster), Item, ItemRevision, BomLine,
BomView, and BomViewRevision, types and subtypes are supported.

Note:
These types are supported only if they have product structure child objects and/or
IMAN_Rendering relations.

• TC_Use_ActiveWorkspace_Create
Specifies whether to display the Active Workspace creation tab instead of the host environment (rich
client or Office client) creation when you click New in the host environment. Set the preference to
True.

• TC_Use_ActiveWorkspace_Inbox

Configuration and Extensibility, Active Workspace 4.3 AW008 4.3 7-7


© 2020 Siemens
7. Configuring Active Workspace in other products

Specifies whether to display the Active Workspace inbox instead of the host environment (rich client
or Office client) inbox when you click My Worklist in the host environment. Set the preference to
True.

• TC_Use_ActiveWorkspace_Summary
Specifies whether to display the Active Workspace summary when viewing the summary for objects
instead of the host environment (rich client or Office client). Set the preference to True.

These Active Workspace hosting preferences are detailed in Teamcenter documentation such as
Environment Variables Reference, Teamcenter Basics, and Teamcenter Integration for NX.

Note:
By default, Active Workspace hosting preferences have a protection scope of Site. Enabling these
preferences enables Active Workspace functionality for all users of the client.
To provide flexibility for access to Active Workspace functionality in other clients, Siemens Digital
Industries Software recommends changing the preference definition to have Group, Role, or User
protection scope, as described in the Environment Variables Reference.

7-8 AW008 4.3 Configuration and Extensibility, Active Workspace 4.3


© 2020 Siemens
Siemens Digital Industries Software
Headquarters Europe
Granite Park One Stephenson House
5800 Granite Parkway Sir William Siemens Square
Suite 600 Frimley, Camberley
Plano, TX 75024 Surrey, GU16 8QD
USA +44 (0) 1276 413200
+1 972 987 3000

Asia-Pacific
Americas Suites 4301-4302, 43/F
Granite Park One AIA Kowloon Tower, Landmark East
5800 Granite Parkway 100 How Ming Street
Suite 600 Kwun Tong, Kowloon
Plano, TX 75024 Hong Kong
USA +852 2230 3308
+1 314 264 8499

About Siemens Digital Industries Software


Siemens Digital Industries Software is a leading global provider of product life cycle management
(PLM) software and services with 7 million licensed seats and 71,000 customers worldwide.
Headquartered in Plano, Texas, Siemens Digital Industries Software works collaboratively with
companies to deliver open solutions that help them turn more ideas into successful products. For
more information on Siemens Digital Industries Software products and services, visit
www.siemens.com/plm.
This software and related documentation are proprietary and confidential to Siemens.
© 2020 Siemens. A list of relevant Siemens trademarks is available. Other trademarks belong to
their respective owners.

You might also like