0% found this document useful (0 votes)
2K views

Active Workspace 4.2 Configuration and Extensibility

Uploaded by

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

Active Workspace 4.2 Configuration and Extensibility

Uploaded by

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

SIEMENS

Active Workspace 4.2

Configuration and
Extensibility
AW008 • 4.2
Contents

Architecture concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1


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-13
Using a sublocation to display a custom page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14
Declarative user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15
Declarative UI introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15
Declarative kit & module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18
Declarative control of sublocation visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21
Declarative view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23
Declarative view model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26
Declarative messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-29
Learn the declarative command architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-30
Declarative command object - commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-30
Controlling command visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-31
Declarative command object - commandHandlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-34
Declarative command object - commandPlacements . . . . . . . . . . . . . . . . . . . . . . . . . . 1-36
Declarative command object - activeWhen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-39
Declarative command object - visibleWhen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-41
Declarative command object - actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-43
Data providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-44
Learn about data providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-44
Use an existing server data provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-44
Creating a custom server data provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-48
Learn client-side data providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-49
Learn the Active Workspace user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-54
Basic interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-54
Navigation toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-55
Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-56
Active Workspace back button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-57
Session context control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-58
Global search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-59
Sublocations and primary navigation tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-59
Sublocation content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-59
Work area header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-62
Primary work area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-62
Navigation command bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-63
Secondary work area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-63

AW008 4.2 Configuration and Extensibility 3


Contents
Contents

Secondary navigation tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-64


Right wall command bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-64

Configuring the user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1

Active Workspace user interface configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1


Configuring the universal viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Configuring the home page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Organizing your users' common destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Tile reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Tile collection reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Tile relation reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
Tile template reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
Create a new tile using the rich client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Active Architect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
Active Architect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
Installing Active Architect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
Command builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Panel Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Using the Panel Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
Consolidating your changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-18
Dynamic compound properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
Learn about dynamic compound properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
Dynamic compound property column behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20
Dynamic compound property syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23
Using dynamic compound properties with XRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-31
Using dynamic compound properties with column configuration . . . . . . . . . . . . . . . . . . . 2-31
Configuring tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-32
What types of tables are there? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-32
Primary work area tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-33
Secondary work area tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-43
Table properties (are not objectSets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-49
Configuring page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-50
XRT information specific to Active Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-50
Working with HTML panels in XRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-58

Working with platform customizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1

Integrating Teamcenter platform customizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1


Enable a custom business object in Active Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Registering type icons with declarative contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Enabling your custom preferences in Active Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Integrate custom services into the Active Workspace build . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5

Example customizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1

Hands-on: Changing Active Workspace behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1


The Active Workspace development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
The Active Workspace development scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
The Active Workspace module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
Using generateModule to create boilerplate definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6

4 Configuration and Extensibility AW008 4.2


Contents

Add a new theme to your module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8


Example: Create a new command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Example: Create a visual indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
Example: Create a sublocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16

Configuring Active Workspace features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1

Active Collaboration configuration . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-1


Active Collaboration configuration tasks . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-1
Deleting commentary . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-2
Disable ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-2
Active Content configuration . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-3
Active Content configuration tasks . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-3
Configuring the Content tab . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-4
When is configuration needed? . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-5
Add custom objects to the Content tab and search . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-5
Adding an LOV to a property in the Content tab . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-6
Display the Content tab with custom business object types . . .. . . . . . . . . . . . . . . . . . . . 5-6
Add commands to the content tab . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-6
Add shared effectivity information to Overview tab . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-7
Display the view type attribute in the BOMLine title . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-7
Active content technical overview . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-7
Setting security on structured content . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-8
Using the Awb0BOMArchetypeToOccurrence type constant . .. . . . . . . . . . . . . . . . . . . . 5-8
Mapping type to model element . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-9
Marking archetypes to support structure . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . 5-9
Configuring the properties of structured content . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-10
Configuration for the packing of similar structure elements . . .. . . . . . . . . . . . . . . . . . . 5-10
Mapping properties to occurrence properties . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-11
Cleaning up background working contexts . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-12
Enable the sharing of a saved working context . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-12
The default revision rule for a product structure . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-13
Implementing full text search of structures . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-13
Configuring BOM precision . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-13
Confidentiality agreement configuration . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-13
Overview of confidentiality agreement . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-13
Configure the stand-alone confidentiality agreement . . . . . . .. . . . . . . . . . . . . . . . . . . 5-14
Change management configuration . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-14
Change management configuration tasks . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-14
Automating the submission of changes to workflow . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-16
Configuring how changes are derived . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-16
Defining deep copy rules for creating changes . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-17
Configuring the Changes page . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-18
Classification configuration . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-21
Classification configuration tasks . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-21
Visual navigation cards . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-22
Configuring interchangeable attributes . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-23
Viewing DWG and CGM class images in the Classification tab . . . . . . . . . . . . . . . . . . . 5-24
Configuring classification standard taxonomy . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-24
Setting classification preferences . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 5-89

AW008 4.2 Configuration and Extensibility 5


Contents
Contents

Digital signature configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-89


Digital signature configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-89
Enable digital signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-90
Geography access configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-92
Overview of geography access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-92
Configure geography access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-93
Configure confidentiality agreement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-95
License attachment configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-97
Overview of license attachment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-97
Adding the License List panel to custom XRT pages . . . . . . . . . . . . . . . . . . . . . . . . . . 5-97
Attaching licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-98
Localization configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-101
Localization configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-101
Configure the web application file generation for other locales . . . . . . . . . . . . . . . . . . . 5-102
Locale support by Visualization Server Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-103
SLM configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-104
SLM configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-104
Configuring physical structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-105
Program Planning configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-106
Program Planning configuration overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-106
Program Planning preconfiguration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-107
Program Planning post-installation configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . 5-109
Configure out-of-the-box Program Planning LOVs . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-110
Assign colors to the program event LOVs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-112
Define Program Planning security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-113
Add custom program and project objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-114
Share Program Planning data between Teamcenter sites . . . . . . . . . . . . . . . . . . . . . . 5-116
Define STAMs and STVMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-118
Relations configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-122
Relations configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-122
Creating new views or updating existing views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-124
Example of configuring views: configure relations expansion . . . . . . . . . . . . . . . . . . . . 5-126
Example of configuring views: localize names that appear in the custom Relations Legend
views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-127
Configuring what views appear in the Relations Legend . . . . . . . . . . . . . . . . . . . . . . . 5-128
Configuring what user interface style to apply to objects and relations . . . . . . . . . . . . . . 5-128
Specifying user interface styles such as shapes and colors . . . . . . . . . . . . . . . . . . . . . 5-129
Example of configuring user interface styles: configure the style of nodes and edges . . . 5-130
Specifying what properties are visible in the object properties filter . . . . . . . . . . . . . . . . 5-131
Configuring object expansion button in the one-step commands . . . . . . . . . . . . . . . . . 5-131
Configuring how edges attach to objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-131
Schedule Manager configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-131
Schedule Manager configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-131
Integrating Microsoft Project with Teamcenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-133
Search configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-134
Search configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-134
Configuring structure indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-134
Configuring shape search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-159
Changing the default thumbnails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-160

6 Configuration and Extensibility AW008 4.2


Contents

Security configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-160


Security configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-160
Configure sequence of the postlogon stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-161
Configure logoff for Active Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-161
Configuring multiple application IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-162
Configuring load balancer time-outs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-163
Configuring location codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-164
Configure owning program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-167
Configure project-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-167
Configuring a two-way SSL proxy server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-169
Configuring HTTP GET redirect method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-170
Configuring a logoff landing page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-171
Protecting against cross-site request forgery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-171
Simulation Process Management configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-173
Simulation Process Management configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . 5-173
Configure the Simulation-related objects table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-173
Edit style sheets to expose custom revision types in the Simulation tab . . . . . . . . . . . . . 5-176
Subscription configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-212
Subscription configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-212
Configuring notifications for a two-tier environment . . . . . . . . . . . . . . . . . . . . . . . . . . 5-213
Configuring subscribable properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-213
Setting subscription notification preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-215
Configuring subscription to multiple objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-217
Configuring My Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-217
Visualization configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-217
Visualization configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-217
Configure TCCS environments for Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-219
Specify the address for the Teamcenter SOA service . . . . . . . . . . . . . . . . . . . . . . . . . 5-219
Configure viewer for SSO-enabled environment (Teamcenter 11.x) . . . . . . . . . . . . . . . 5-219
Configure viewer for SSO-enabled environment (Teamcenter 12.x) . . . . . . . . . . . . . . . 5-220
Optimizing Visualization Server system performance . . . . . . . . . . . . . . . . . . . . . . . . . 5-223
Disable application pool recycling for visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-226
Enable compression of client-side rendering traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-227
Enable Visualization Server Manager logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-228
Configure the Visualization Pool Assigner for JMX metrics . . . . . . . . . . . . . . . . . . . . . 5-229
Configure user service level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-230
Specifying viewer defaults using Teamcenter preferences . . . . . . . . . . . . . . . . . . . . . . 5-230
Configure the Fit command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-231
Adjusting the display resolution for 3D models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-232
Configure display units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-233
Configure measurement precision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-234
Configure support for JT Override children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-235
Bounding Box Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-236
Workflow configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-238
Workflow configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-238
Configuring resource pool assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-239
Setting conditions for workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-239
Showing user assignment options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-240
Configuring the Inbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-240

AW008 4.2 Configuration and Extensibility 7


Contents
Contents

Configuring Active Workspace in other products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1


Host Active Workspace in Client for Microsoft Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Host Active Workspace in standalone Lifecycle Visualization . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Host Active Workspace in Adobe Creative Cloud applications . . . . . . . . . . . . . . . . . . . . . . . . 6-3
Hosting preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5

Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Command-line utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
csv2tcxml.perl utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16
Active Admin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-48
The active admin workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-48
Business Modeler IDE constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-49
Global constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-49
Business object constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-50
Property constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-52
Configuring the Audit Logs page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-62
Audit Logs page configuration tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-62
Activate the Audit Log page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-63
Customize audit logs field display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-64
Using audit logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-65
Customize the audit log display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-66
Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-68
Why do I need preferences? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-68
How do preferences work? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-69
An example of preference hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-72
What are environment preferences? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-76
Working with preferences in Active Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-76
Working with non-standard object types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-81
Controlling notification timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-81
Defining properties that display in object cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-82
Defining the revision rules list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-82
Where can I get a list of preferences? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-83
Performance and settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-83
Enabling browser caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-83
Compressing images for loading them quickly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-84
Configure image resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-84
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-85
Open source software attributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-85
Retrieving Active Workspace client and server versions . . . . . . . . . . . . . . . . . . . . . . . . 7-85
appCtxService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-86
General troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-87
Use PLStats to see performance data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-88
Troubleshooting the gateway and artifact services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-89
Visualization monitoring and troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-90
Monitoring browser activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-109
Managing groups, roles, and users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-110
Groups, roles, and users in Active Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-110
About the PEOPLE tile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-114

8 Configuration and Extensibility AW008 4.2


Contents

Creating users, roles, and groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-115


Change the user password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-121
View user activity logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-121
Use logical objects to consolidate properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-122
Logical Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-122
Logical object configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-123
Destination criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-125
Compound logical objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-126
Workspaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-128
Learn about workspaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-128
Create the workspace definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-129
Modify the workspace definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-131
Create or update workspace mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-133
Assign style sheets to a workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-135
Assign a tile collection to a workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-135
Create or modify column configuration for a workspace . . . . . . . . . . . . . . . . . . . . . . . 7-138
Verifying your new workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-140
Remove a workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-141
XRT element reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-141
Active Workspace style sheet elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-141
Modifying style sheets using the XRT Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-143

AW008 4.2 Configuration and Extensibility 9


Chapter 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.

AW008 4.2 Configuration and Extensibility 1-1


Chapter
Chapter 1: 1: Architecture
Architecture concepts
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 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

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.

AW008 4.2 Configuration and Extensibility 1-3


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.
• 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.

1-4 Configuration and Extensibility AW008 4.2


Architecture concepts

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.
$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

AW008 4.2 Configuration and Extensibility 1-5


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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

1-6 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

AW008 4.2 Configuration and Extensibility 1-7


Chapter
Chapter 1: 1: Architecture
Architecture concepts
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 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

AW008 4.2 Configuration and Extensibility 1-9


Chapter
Chapter 1: 1: Architecture
Architecture concepts
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 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

AW008 4.2 Configuration and Extensibility 1-11


Chapter
Chapter 1: 1: Architecture
Architecture concepts
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 PLM 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?


Active Workspace uses runtime intermediary objects to stand in place of other objects when
performing certain functions. One main reason is so these intermediary objects can contain methods
and properties needed for their function that don't need to be present on the target object.
The two most common intermediary objects are:

1-12 Configuration and Extensibility AW008 4.2


Architecture concepts

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
in the Business Modeler IDE.
Awb0Element
These objects and all children (Awb0DesignElement, Awb0Connection, and so on) are used
when Active Workspace displays an assembly, which is part of the Active Content experience.
They represent their awb0UnderlyingObject in a bill of materials, product structure, and so on.
They are part of the activeworkspacebom feature in the Business Modeler IDE.

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:

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.

AW008 4.2 Configuration and Extensibility 1-13


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.

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-14 Configuration and Extensibility AW008 4.2


Architecture concepts

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.
Sustainability Since the Active Workspace declarative elements are abstracted, the
underlying web technology can evolve with minimal to no effect on existing
layouts.

AW008 4.2 Configuration and Extensibility 1-15


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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:
o Follows layout and content patterns.

o Consists of several panels.

o Creates a view that is described using UI elements.

o 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-16 Configuration and Extensibility AW008 4.2


Architecture concepts

Panels are also declaratively defined and share the following characteristics.

o Include a view that described using UI elements.


o 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.

AW008 4.2 Configuration and Extensibility 1-17


Chapter
Chapter 1: 1: Architecture
Architecture concepts
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.

Declarative kit & 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

1-18 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

• modules

AW008 4.2 Configuration and Extensibility 1-19


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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
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.

1-20 Configuration and Extensibility AW008 4.2


Architecture concepts

• 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.

• 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.

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]=='aValue'"

AW008 4.2 Configuration and Extensibility 1-21


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.
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 outline of such a file.
define( [ 'app' ],
function( app ) {
'use strict';
var exports={};

exports.isSubPageEnabled=function(object){
// Logic goes here
};
app.factory( 'subPageProvider', [
function( ) {
return exports;
} ] );
/**
* This is required to load the service.
*/
return {
moduleServiceNameToInject: 'subPageProvider'
};
} );

An Example

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

1-22 Configuration and Extensibility AW008 4.2


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.

AW008 4.2 Configuration and Extensibility 1-23


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

...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.

1-24 Configuration and Extensibility AW008 4.2


Architecture concepts

Image

Table
* With or without summary.

AW008 4.2 Configuration and Extensibility 1-25


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.

1-26 Configuration and Extensibility AW008 4.2


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
JSON data for the action output
events
Triggered in response to the action

AW008 4.2 Configuration and Extensibility 1-27


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.

1-28 Configuration and Extensibility AW008 4.2


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.

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.

AW008 4.2 Configuration and Extensibility 1-29


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.

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.

1-30 Configuration and Extensibility AW008 4.2


Architecture concepts

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:

Controlling command visibility


You can control the visibility of commands in the Active Workspace interface using the declarative
command handler.
There are two places to control the visibility of commands in Active Workspace, client-based and
server-based.

AW008 4.2 Configuration and Extensibility 1-31


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

All OOTB commands use one of these methods. Check the command list in the Business Modeler
IDE to see if it is listed. If it is, it can be controlled using the Business Modeler IDE conditions. If
there are no conditions attached OOTB, that command likely has client-based logic, but you can still
attach a condition for additional control.

Client-only control

Siemens PLM Software recommends using only declarative client-side conditions and expressions
whenever possible. You use declarative conditions in the activeWhen and visibileWhen clauses of
your declarative command handler. Condition expressions are powerful and offer a lot of flexibility,
including the capability to add a server-side command condition as well.

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 by registering your command in the Business Modeler IDE.
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-32 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

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. An easy 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.

AW008 4.2 Configuration and Extensibility 1-33


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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

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. When a command is visible.

1-34 Configuration and Extensibility AW008 4.2


Architecture concepts

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:

AW008 4.2 Configuration and Extensibility 1-35


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

Declarative command object - commandPlacements

Declarative command object hierarchy

A few basic objects define a declarative command.

1-36 Configuration and Extensibility AW008 4.2


Architecture concepts

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, inspect it using your
web browser.

AW008 4.2 Configuration and Extensibility 1-37


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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

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

Example commandPlacements

Below are some example commandPlacements:


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

1-38 Configuration and Extensibility AW008 4.2


Architecture concepts

"priority": 210
},
"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.

AW008 4.2 Configuration and Extensibility 1-39


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.

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.

1-40 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

AW008 4.2 Configuration and Extensibility 1-41


Chapter
Chapter 1: 1: Architecture
Architecture concepts
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.
The Business Modeler IDE documentation for your Teamcenter platform contains
information on how to create command visibility conditions.

1-42 Configuration and Extensibility AW008 4.2


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

AW008 4.2 Configuration and Extensibility 1-43


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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 PLM 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.
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.

1-44 Configuration and Extensibility AW008 4.2


Architecture concepts

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

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.

AW008 4.2 Configuration and Extensibility 1-45


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.
typeOfSearch This must provide the type of search being requested.
One of the following two criteria is required to identify which query is run.

1-46 Configuration and Extensibility AW008 4.2


Architecture concepts

queryUID (shown) Using this criteria removes any question as to which query is run.
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

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.

AW008 4.2 Configuration and Extensibility 1-47


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

The following criteria are of note:


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

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.

1-48 Configuration and Extensibility AW008 4.2


Architecture concepts

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.
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"
}
},

AW008 4.2 Configuration and Extensibility 1-49


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

"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.
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


selectionModelMode Indicate the selection mode in the data provider. Valid values are single and
multiple. The default is single.

1-50 Configuration and Extensibility AW008 4.2


Architecture concepts

commands Add commands inside the data provider.


commandsAnchor Specify a command anchor bar.
preSelection Indicate if the newly added object will be shown as selected. Valid values are
true and false. The default is true.

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 inital loading time, and also help reduce the load on the
server. Ppagination support for client data providers work in conjuction with the server. The server
should support and return basic parameters which are required for pagination to work. The client data
provider has two major fields to enable pagination:

AW008 4.2 Configuration and Extensibility 1-51


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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
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.

1-52 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

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}}"
}
}

AW008 4.2 Configuration and Extensibility 1-53


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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",
"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-54 Configuration and Extensibility AW008 4.2


Architecture concepts

1. Navigation toolbar

2. Session context toolbar

3. Location

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.

AW008 4.2 Configuration and Extensibility 1-55


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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-56 Configuration and Extensibility AW008 4.2


Architecture concepts

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 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.

AW008 4.2 Configuration and Extensibility 1-57


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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-58 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

• 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.

AW008 4.2 Configuration and Extensibility 1-59


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

1. Primary work area toolbar (navigation)

2. Primary work area search

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.

1-60 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

AW008 4.2 Configuration and Extensibility 1-61


Chapter
Chapter 1: 1: Architecture
Architecture concepts
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-62 Configuration and Extensibility AW008 4.2


Architecture concepts

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.

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.

AW008 4.2 Configuration and Extensibility 1-63


Chapter
Chapter 1: 1: Architecture
Architecture concepts
concepts

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.

1-64 Configuration and Extensibility AW008 4.2


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.

AW008 4.2 Configuration and Extensibility 1-65


Chapter 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 table columns.

• Change which properties display on object cells.

• Change the layout of the main workarea.

• Add commands to the user interface.

• Enable a custom business object in Active Workspace.

• Define the Revision Rule list.

Configuring the universal viewer


What is the Universal Viewer?
The universal viewer is designed to handle single-file document and image formats in the client:
Word, PDF, and PNG for example.
Although the universal viewer is capable of rendering monolithic JTs, there is another viewer, the
3D viewer, which is normally used for multiple-file JT assemblies.
In the showObject In the normal show object sublocation, the selection used is the selected
sublocation persistent business object, like ItemRevision, or DocumentRevision, for
example.

AW008 4.2 Configuration and Extensibility 2-1


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

In an assembly In the case of structure however, like the Content tab for example, the
context selection used is a runtime business object, typically Awb0DesignElement,
which is representing the underlying persistent business object by using its
awb0UnderlyingObject relation property.
The universal viewer 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.

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 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

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 are used for the viewer is
AWC_defaultViewerConfig.VIEWERCONFIG.

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

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

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

2-2 Configuration and Extensibility AW008 4.2


Configuring the user interface

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 any thing attached with the TC_Attaches relation.

• Modify a stylesheet (XRT)

The provided style sheet for the ItemRevision is already configured to use the universal viewer.
<section titleKey="tc_xrt_Preview">
<inject type="dataset" src="Awp0GalleryViewer" module="js/aw-include.directive"/>
</section>

If you want to modify other style sheets, you must follow this example.

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

Configuring the home page

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.

AW008 4.2 Configuration and Extensibility 2-3


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

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 PLM 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

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.

2-4 Configuration and Extensibility AW008 4.2


Configuring the user interface

• 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.

• 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.

AW008 4.2 Configuration and Extensibility 2-5


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

• 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

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.

2-6 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.
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:

AW008 4.2 Configuration and Extensibility 2-7


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

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.

• 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:

2-8 Configuration and Extensibility AW008 4.2


Configuring the user interface

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

• 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

AW008 4.2 Configuration and Extensibility 2-9


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

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

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

awp0Icon — Icon

awp0IconSource — Icon Source

2-10 Configuration and Extensibility AW008 4.2


Configuring the user interface

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 token Go to the Active Workspace
history 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.

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

AW008 4.2 Configuration and Extensibility 2-11


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

If you choose By entering The tile is


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)

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.

2-12 Configuration and Extensibility AW008 4.2


Configuring the user interface

• awp0Removed: Set this to true to hide the tile.


• awp0Protected: Ste this to true to prevent the tile from being unpinned.

Active Architect

Active Architect

What is Active Architect?

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


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

• Quickly create your own commands.

How do I enable it?

Although Active Architect is part of the Active Workspace install kit, it is not selected by default. The
following must be selected:
• Gateway Client

• 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
PLM 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:

AW008 4.2 Configuration and Extensibility 2-13


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

Gateway Client The Active Workspace Gateway Client consists of two main services that
combine to provide the underlying architecture which enables dynamic
configuration.
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 deploy that new application
and begin the modification process again.
• The gateway service
This service provides a second port through which you can connect
to Active Workspace. Instead of connecting directly to the AWC web
application however, you connect to the gateway application instead and it
connects to the AWC application for you. It also connects to the declarative
artifact service to see if any changes have been made.
The gateway service then takes the existing Active Workspace and
overlays all changes it finds from the artifact service, providing you with
a modified Active Workspace experience. This is a quick way to develop
your interface since it allows changes to be viewed immediately.

• The declarative artifact service (DARSI)


This service stores you changes to the declarative definitions of Active
Workspace. This allows you to not only create new declarative definitions
on-the-fly by automatically creating new files, but also make changes to
existing declarative definitions without changing their original source code
by automatically creating delta files.
Both your new files and your delta files are overlaid onto Active Workspace
by the gateway service.

After you have tested your changes and you are ready to promote them to a
production server, you can consolidate all your changes along with the original
source files into a new web application build.

UI Builder The Active Workspace UI builder consists of two main locations that provide
the user interface for dynamic configuration. Dynamic configuration is
designed for your development and testing sites, and Siemens PLM 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.

2-14 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.
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.

Installing Active Architect


You can install Active Architect using either Deployment Center or Teamcenter Environment Manager
(TEM).
Deployment Center:
In the Components step, select the following components:

• UI Builder

• Client Gateway Webtier

Teamcenter Environment Manager:


In the Features panel, select the following features:

• Base Install→Active Workspace→Client→Active Architect→UI Builder

• Base Install→Active Workspace→Client→Gateway Client

Enter Active Architect installation values as directed in the installation tool. If you deploy Active
Architect on a single host, the default values should be sufficient in most cases. In a distributed
environment, set installation values as needed to deploy services on multiple hosts.
Siemens PLM Software recommends you install Active Architect only on development or test
environments, not on production environments. This enables you to use active architect to develop
your client application without affecting current users before you deploy it to your production
environment.

Configure the services to run as tasks

After installation, you can run the scheduleTask.cmd scripts (as administrator) to schedule the
services as tasks. Whether you install them as tasks or start and stop them manually every time, they
must be running for Active Architect to function.

AW008 4.2 Configuration and Extensibility 2-15


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

You can find the scripts in the TC_ROOT\aws2\stage\out directory for each service.

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.

Commands
Use this page to define a command's:
• Localized title.

• Extended tool tip view name.

• Command type.

• Icon.

• Placements.

• Handlers.

Toolbars
Use this page to:
• Add commands to a toolbar.

• Delete commands from a toolbar.

• Change a command's priority on a toolbar.

• Decide if a command is relative to another command.

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 will be
stored as an add, while changes to content you don't have write access to will be stored as a delta.

2-16 Configuration and Extensibility AW008 4.2


Configuring the user interface

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

Use this page to:


• Modify a command's panel.

• Drag and drop components to design the layout.

• Work with localization.

Editor

Use this page to:


• Work directly with the view and view model definition.

Preview

Use this page to:


• See what the panel will look like, including subpanels

Using the Panel Builder


You can use the Panel Builder in two 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.

Follow the UI

In a duplicate browser tab, open the Panel Builder directly from the global navigation toolbar.
As you open Active Workspace command panels in your original browser tab, the panel builder will
detect them and open the panel definition for that command in the editor.

AW008 4.2 Configuration and Extensibility 2-17


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

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:
?commandID={commandID}

If the command ID you enter does not have a command panel defined for it, Panel Builder will create
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.

Consolidating your changes


When you have finished using Active Architect to make your changes and you want to migrate them
to the production server, you must export them to a custom module and then rebuild the application.

Use a custom module

Exporting the work done using Active Architect requires a module in which to place the new and delta
information. You can create this module using generateModule as usual.

Export your changes to the module

To bundle up all your changes and additions, use the exportToSrc script from an Active Workspace
developer environment. You changes are now part of that module, and are included when you
perform a build. Any new changes you make will not be included until you export them.

Example
exportToSrc --moduleName=sampleModule

Build the application

After exporting your changes to a custom module, you can build the Active Workspace web application
normally, and those changes are included. Deploy the web application to your production server.

2-18 Configuration and Extensibility AW008 4.2


Configuring the user interface

Dynamic compound properties

Learn about dynamic compound properties

What are dynamic compound properties?


Compound properties are properties that are defined not on the selected object, called the primary
object, but instead defined on a related object, called the secondary object, or on the relation between
the two objects.
Traditional compound properties are static, and are defined in the Business Modeler IDE.
Dynamic compound properties are defined using XML files, and are defined and modified quickly
and easily.

What are the benefits?


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

• Override the display name to make column titles unique.

• View, edit, filter, 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 the Business Modeler IDE 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:
• An XRT style sheet. (SUMMARYRENDERING, INFORENDERING, and objectSet tables)

• A column configuration.

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 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
Because dynamic compound properties cannot be indexed by Solr, dynamic compound
properties cannot be used for searching, although they will appear in the results.

AW008 4.2 Configuration and Extensibility 2-19


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

What else do I need to know?


• Sorting in tables by dynamic compound properties is not supported.

• 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.

• 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"/>

2-20 Configuration and Extensibility AW008 4.2


Configuring the user interface

</tableDisplay>
...
</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.

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" />

AW008 4.2 Configuration and Extensibility 2-21


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

<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-22 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.

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.

AW008 4.2 Configuration and Extensibility 2-23


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

• 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.
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

2-24 Configuration and Extensibility AW008 4.2


Configuring the user interface

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-level To perform a multiple-level traversal, concatenate several single-level
traversal traversals together separated by periods.
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_data_1

Example REF
Original object: ItemRevision
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:

AW008 4.2 Configuration and Extensibility 2-25


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

• 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.

Example REFBY

Original object: ItemRevision


Traverse to:

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

2-26 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.

AW008 4.2 Configuration and Extensibility 2-27


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
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.

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.

2-28 Configuration and Extensibility AW008 4.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.

AW008 4.2 Configuration and Extensibility 2-29


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

Example GRMS2PREL
Column configuration

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.

2-30 Configuration and Extensibility AW008 4.2


Configuring the user interface

Using dynamic compound properties with XRT


To use dynamic compound properties in a style sheet,
• 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.

AW008 4.2 Configuration and Extensibility 2-31


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

• 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.

Configuring tables

What types of tables are there?


You will encounter two types of tables in Active Workspace.
1. Declarative tables in the primary work area.

2. Object set tables in the secondary work area.

Tables in the primary work area

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.

2-32 Configuration and Extensibility AW008 4.2


Configuring the user interface

These tables are controlled by the declarative page definition, which are detailed in the view and
view model for the page.
You can control which columns are present, and in which order they appear by using column
configuration.

Tables in the secondary work area


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. These types of tables will display properties or objects related to the object
selected in the primary work area.
You can control which columns are present, and in which order they appear, by using column
configuration or by defining them directly in the objectSet.

Table properties
Table properties are mentioned here because they look like a table full of many properties, but really
the 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, they require schema modifications to your database.

Primary work area tables

Configuring columns in primary work area tables


When you are working with declarative tables, you can arrange their columns using column
configuration. Declarative tables are typically primary workarea tables, whereas object set tables are
typically found in the secondary workarea. The most common examples of declarative tables are:
• Viewing objects in a structure using Active Content.

• Viewing the contents of any sublocation with the Table view type.

Active Workspace provides two utilities, export_uiconfig and import_uiconfig, that you work with to
specify table column configurations. You can use dynamic compound properties in addition to all
properties defined in your schema.
Column configurations have an order of precedence based on their scope.

AW008 4.2 Configuration and Extensibility 2-33


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

GroupMember
This scope is created when a user manually modifies their column configuration. It overrides all
other column configuration scopes. 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 definitions for the


configuration.

Workspace
This scope takes precedence over all others, except GroupMember.
Role
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 others assigned to the user.

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. Get more information from the Active
Workspace 4.2 UI Pattern Library on Doc Center.

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 PLM 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.

2-34 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.
.

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.

AW008 4.2 Configuration and Extensibility 2-35


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

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" ... />
</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 PLM Software recommends not moving or replacing the first column in a tree
display. The object icon does not move from the first column.

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.

2-36 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.
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.

AW008 4.2 Configuration and Extensibility 2-37


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

<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.


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

sortDirection Ascending | Descending

<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 with dynamic compound
properties. Do not override the names of real properties.

2-38 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.

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 column 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.

AW008 4.2 Configuration and Extensibility 2-39


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

<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.
columnConfigId Specify the columnConfigId of the configuration to be shared.

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.

• 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.

2-40 Configuration and Extensibility AW008 4.2


Configuring the user interface

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>

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.

AW008 4.2 Configuration and Extensibility 2-41


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
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.

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.

2-42 Configuration and Extensibility AW008 4.2


Configuring the user interface

• 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.

Secondary work area tables

Configuring columns in secondary work area tables

When you are viewing an object with summary, the tables you find on the right in that summary are
controlled by style sheets, specifically the objectSet element.

A few of the most common examples of object set tables are:


• Files attached to the selected object.

• Related Simulation results.

AW008 4.2 Configuration and Extensibility 2-43


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

Why use an objectSet?

You can display related objects in an easy-to-consume table or list so the user does not have to track
down relations manually. 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.

Column configuration

Optionally, you can configure your objectSet table's columns using column configuration instead.
Just add the objectSetURI attribute to the table display element, and then treat it like a primary
workarea table for everything else. Use your objectSetURI as if it were a clientScopeUri when
you define the column configuration.
<tableDisplay objectSetUri="myObjectSetTableConfig">
</tableDisplay>

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.

2-44 Configuration and Extensibility AW008 4.2


Configuring the user interface

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:

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.

AW008 4.2 Configuration and Extensibility 2-45


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

→ 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 Document MS WordX cfx5, cfx5 (cfx5)

Awp0XRTObjectSetRow
Sample Document PDF cfx5, cfx5 (cfx5)

4. The resultant table is displayed to the user.

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.

2-46 Configuration and Extensibility AW008 4.2


Configuring the user interface

<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">

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.


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.

AW008 4.2 Configuration and Extensibility 2-47


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

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>
<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.

2-48 Configuration and Extensibility AW008 4.2


Configuring the user interface

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"

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 property A table property is a persistent table of property values stored on a single
object. You 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.

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..

AW008 4.2 Configuration and Extensibility 2-49


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

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"/>
</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.

2-50 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.
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:


o Multiple pages using visibleWhen.
o A single level of columns, sections, and separators.
o 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.
o Labels
o Breaks

AW008 4.2 Configuration and Extensibility 2-51


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

• The following are not currently supported in Active Workspace:


o Custom rendering hints

o Multiple levels of columns, sections, and separators.

o conditions, GoverningProperty, and Rule tags.

o Using the visibleWhen attribute with preferences.

o Using the visibleWhen attribute with multiple-level property traversal.

o 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 PLM Software recommends that your XRT be set up to display content in the information
panel as follows:

2-52 Configuration and Extensibility AW008 4.2


Configuring the user interface

• Limit to one or two pages

• Limit to one column per page

• Use list displays for object sets

Keep in mind the following:

• 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

AW008 4.2 Configuration and Extensibility 2-53


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

• Value: Name of the dataset created in step 1.

• Scope: Site preference.

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.
<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"/>

2-54 Configuration and Extensibility AW008 4.2


Configuring the user interface

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
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.

AW008 4.2 Configuration and Extensibility 2-55


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

<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.
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"/>

2-56 Configuration and Extensibility AW008 4.2


Configuring the user interface

</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” />

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"/>

AW008 4.2 Configuration and Extensibility 2-57


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

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>
</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"/>

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.

2-58 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.

Specifying HTML content


Any CDATA section in the <htmlPanel> entity is used to set the inner HTML of the panel in the
rendering. Any HTML tags in the CDATA section are placed in the panel verbatim.
Occurrences of properties within double braces {{...}} are replaced with the values for those
properties in the currently selected object. All properties used in this way must be declared using
the <property> tag.

Example: Simple CDATA section


In this example, the current object_string value is placed in a level two header <H2> and the
specified item_id value is used to complete the sentence that begins with The ID is:

AW008 4.2 Configuration and Extensibility 2-59


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

<htmlPanel>
<property name="object_string"/>
<property name="item_id"/>
<![CDATA[
<div>
<H2>{{selected.properties['object_string'].uiValue}}</H2>
</div>
<div>
The ID is {{selected.properties['item_id'].uiValue}}
</div>
]]>
</htmlPanel>

Calling a Teamcenter service from an htmlPanel

To call a Teamcenter service from an htmlPanel, an AngularJS controller is added to the provided
AwRootAppModule module. You define functions within this controller that can be called by UI
features like ng-click.

The CDATA option

The easiest way to add the AngularJS controller is to embed the controller definition and the
UI definition within a CDATA section of the panel, all within the XML rendering template (XRT).
Siemens PLM Software recommends that this be used only for simple one-step commands with
as little coding as possible.
In this example, checkIn and checkOut buttons are defined. Only one button is displayed at a time
because of ng-show. The custom controller mySoaController is created on the AwRootAppModule
module which is the Active Workspace application.
<page titleKey="HtmlPanel Check In/out">
<htmlPanel>
<![CDATA[
<script>
angular.module("AwRootAppModule").controller("mySoaController", [
'$scope', 'logService', 'soa_kernel_soaService',
function($scope, logService, soaService) {
$scope.checkOut = function() {
var request = {
objects: [$scope.$parent.selected]
};
soaService.post('Core-2006-03-Reservation', 'checkout', request).then(function(response) {
logService.info('Checkout Successful');
}, function(data) {
logService.warning('Checkout NOT Successful: ' + data.message);
});
};
$scope.checkIn = function() {
var request = {
objects: [$scope.$parent.selected]
};
soaService.post('Core-2006-03-Reservation', 'checkin', request).then(function(response) {
logService.info('CheckIn Successful');
}, function(data) {
logService.warning('CheckIn NOT Successful: ' + data.message);
});
};
}
]);
</script>
<div id='helloSoa' ng-controller="mySoaController">
<div>
<button ng-click="checkOut()" ng-show="selected.properties.checked_out.dbValue==''">Check Out</button>
<button ng-click="checkIn()" ng-show="selected.properties.checked_out.dbValue!=''">Check In</button>
</div>
</div>
]]>
</htmlPanel>
</page>

2-60 Configuration and Extensibility AW008 4.2


Configuring the user interface

The <inject> option

The main disadvantage of using the CDATA option is that you do not have access to runtime
debugging for that section of script, but for short sections of code, it works well.

If you want access to debugging, you must use modular style sheets to add your custom code. Also,
you must add your custom javascript code into the Active Workspace web application, typically in
the js directory.

• Use an <inject> tag to insert HTML content as usual, but add in the module attribute.
<inject type="..." src="..." module="..." />

The module attribute contains the path to the custom controller source code within the Active
Workspace web application. For example:

module="js/myModle/myCustomController.js"

• In the injected HTML-formatted dataset, add the AngularJS UI definitions, and a refer to your
custom javascript code using the ng-controller attribute.
<div id="myPanel" ng-controller="myCustomController" >

• Add your javascript source file into the Active Workspace web application.

These three pieces allow your javascript code to exist outside of a CDATA block, which means you
have access to the code for runtime debugging.

Note
We recommend limiting the use of this option. Contact Siemens PLM Software sales
and training for more detailed information.

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.

• This binding mechanism follows the conventions of AngularJS (by Google).

• 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.

For more information, see https://docs.angularjs.org/guide/databinding.

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.

AW008 4.2 Configuration and Extensibility 2-61


Chapter
Chapter 2: 2: Configuring
Configuring the user
the user interface
interface

Note
This new tag is implemented as an AngularJS directive. For more information about
AngularJS directives, see https://docs.angularjs.org/guide/directive.

<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:
• 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:

o label

o 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.
For more information, see http://en.wikipedia.org/wiki/Cross-site_scripting.
This tag supports the following attribute:

2-62 Configuration and Extensibility AW008 4.2


Configuring the user interface

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.

AW008 4.2 Configuration and Extensibility 2-63


Chapter 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.

• Registering a custom icon to your custom business object (type).

• Enabling your custom preferences.

• Integrating your custom services.

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.

• An Active Workspace developer environment command prompt.

• Access to deploy the awc application to the web application server.

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.

AW008 4.2 Configuration and Extensibility 3-1


Chapter
Chapter 3: 3: Working
Working with platform
with platform customizations
customizations

For details about using the Business Modeler IDE, see Configure your business data model
in BMIDE in the Teamcenter help collection.

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.

Registering type icons with declarative contributions


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 or kits, although you have to build and
deploy the web application.

• Assign a type icon declaratively


You must create a module, work with JSON files, and then build and deploy the web application.

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 compile and deploy the AWC web application.
The naming pattern for type icons is:
typetypename48.svg

To use this method, typename must be the database name of the object type. For example, if you
want to add a new icon for the Robot Revision, you would name the icon:
typeMfg0MERobotRevision48.svg

The database names of the objects can be located using the Business Modeler IDE.

3-2 Configuration and Extensibility AW008 4.2


Working with platform customizations

This shows the display name of Robot Revision assigned to the Mfg0MERobotRevision business
object.
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
In order to be properly displayed in the Active Workspace client, all business object types
must either have an icon assigned directly to them as shown, or register one declaratively
using the aliasRegistry.

Assign icons conditionally

You can register type icons based on conditions using typeIconsRegistry.


This section can be contributed either inside your custom module.json or within a
typeIconsRegistry.json file in your custom module. This file must be a sibling of your module.json.
This technique is commonly used when your custom object is being represented by an intermediary
object.
• 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.

• The value for iconFileName is evaluated from aliasRegistry.

AW008 4.2 Configuration and Extensibility 3-3


Chapter
Chapter 3: 3: Working
Working with platform
with platform customizations
customizations

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.
"typeIconsRegistry": [{
"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.
"typeIconsRegistry": [{
"type": {
"names": ["Bhv1BranchNode"],
"prop": {
"names": ["bhv1OwningObject"],
"type": {
"names": ["Fnd0Branch"]
}
}
}
}]

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
"typeIconsRegistry ": [{
"type": {
"names": ["EPMTask"],
"prop": {
"names": ["fnd0PerformForm"],
"iconFileName": "typeFormTask48",
"conditions": {
"fnd0PerformForm": {
"$ne": ""
}
}
}
}
}]

3-4 Configuration and Extensibility AW008 4.2


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
"typeIconsRegistry ": [{
"type": {
"names": ["EPMTask"],
"prop": {
"names": ["fnd0PerformForm"],
"iconFileName": "typeFormTask48",
"conditions": {
"fnd0PerformForm": {
"$ne": ""
}
}
}
}
}]

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.

Integrate custom services into the Active Workspace build


Service operations are defined in the Business Modeler IDE, the definition and implementation of
a given service operation is independent of whether it is used by the Active Workspace client or
any other desktop client (rich client, NX). Perform the following steps to define a new service and
operation(s) and make them available for use in your Active Workspace customization.
1. Define your new SOA API by following the instructions for creating new services in the Business
Modeler IDE.

2. Locate the your_template_template.xml file which contains your new service API definitions.
• When you package your template extensions, the Business Modeler IDE creates a
your_template_soa_client.zip file which contains the your_template_template.xml file.
You need to extract this file.

• If you have already deployed your Business Modeler IDE package, you can also find the
your_template_template.xml file in the TC_DATA\model directory.

3. Use a command prompt configured for the Active Workspace development environment for
the following steps.

4. Run the convertTemplates script, with the location of your template file as the argument.

AW008 4.2 Configuration and Extensibility 3-5


Chapter
Chapter 3: 3: Working
Working with platform
with platform customizations
customizations

For example, if your XML template file is located in D:\tc\tcdata\model, then you would use the
following:
converTemplates D:\tc\tcdata\model

This generates JSON files in the STAGE\out\json directory of your Active Workspace
environment. These files are used for the generation of the schema used for service input
validation and defaulting from the client.

5. Run the genSoaApi script to process the information.


This creates an index.html file located in the STAGE\out\api directory of your Active Workspace
environment. This file will help you write the inputs of your service operation calls.

6. Add a service dependency to the kit, if necessary.


Use the soaDeps entry in the kit.json file to specify any dependencies upon specific services,
or service operations.

7. From the command line, run the gwtcompile.cmd script to build your Active Workspace
environment.

3-6 Configuration and Extensibility AW008 4.2


Chapter 4: Example customizations

Hands-on: Changing Active Workspace behavior


What are these examples for?

These examples demonstrate how to use the generateModule script to create various declarative
Active Workspace customizations. For example, adding a new command or creating a new theme.

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.

• An Active Workspace developer environment command prompt.

• Access to deploy the awc application to the web application server.

What examples are available?

You can configure the following aspects of Active Workspace's behavior using an .
• Add a command.

• Create a new theme.

• Add a visual indicator.

• Create a new page.

The Active Workspace development environment


The Active Workspace development environment consists of three important directories. Not all
directories present in the environment are shown.

AW008 4.2 Configuration and Extensibility 4-1


Chapter
Chapter 4: 4: Example
Example customizations
customizations

stage

This is the base directory for Active Workspace customization. It is located in TC_ROOT\aws2. This
is where the environment initialization script (initEnv) is located.

components

This directory contains the OOTB source for Active Workspace, and is required when building the
web application. Optional components, like darsi and gateway for example, may also be found here.
You can use the declarative source definitions in the activeworkspace\repo\kit directory for
reference; all of the installed OOTB kits are located here in their respective directories.

Caution
Siemens PLM Software recommends not modifying any of the files in these directories.
Instead, create your own modules and add your customizations there.

out

This is where the build file can be found for deployment: awc.war for J2EE, and awc.zip for IIS.
If the Gateway Client and the UI Builder are installed, you may find their working directories here
as well.

4-2 Configuration and Extensibility AW008 4.2


Example customizations

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 components directory.
Following are what each directory is for:
image The icons used by the Active Workspace UI are located here. If you want to
add custom icons for your modules, this is where you place them. Follow the
file and naming conventions for icons as specified in the UI Pattern Library,
located on Doc Center.

mysamplemodule This is an example custom module that you might create. If you use the
generateModule script, this is the module that is automatically created if you
don't specify another. You may have as many modules as you want, but
each module must be registered in the main kit.json, 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 included in this file for the build
script to find them.

The Active Workspace development scripts


To create custom Active Workspace components, you must work within an environment configured
for Active Workspace development. Various scripts have been provided to assist in the development
of component modules. Unless otherwise stated, all scripts must be run from the stage directory.

initEnv

Open a command prompt, and then run this script to configure the environment variables necessary
for Active Workspace development. This only needs to be run once - when first opening a command
prompt, before doing any other development work.
By default, this configures the environment based on a Java EE web application server. If you are
using a .NET/IIS web application server, use the iis argument.
initenv iis

audit

This script will check 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.
This must be run from the stage directory.
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.

AW008 4.2 Configuration and Extensibility 4-3


Chapter
Chapter 4: 4: Example
Example customizations
customizations

gwtCompile

This script compiles and builds the awc web application. By default, this compiles and builds the
Active Workspace web application file: awc.war for J2EE or awc.zip for IIS.
This must be run from the stage directory.
Use the iis argument to produce the .NET-based file.
gwtcompile iis

generateModule

This script assists you in creating all the boilerplate files and directories for individual components.
This script can be run from anywhere, it will place its artifacts in their proper locations.
The generateModule script does not require any arguments. If you do not provide any, it will prompt
you to enter the information it requires.
generateModule

refresh

This script pushes the changes you've made to your custom module into the Gateway Service
directory, which is located in the STAGE\out\activeworkspace\site\assets directory. Your changes
are available to Active Architect and are visible when logging in through the Gateway Client.
This must be run from the stage directory.

exportToSrc

The API of the exportToSrc tool is as follows:


exportToSrc <Gateway Client URL> --moduleName=<name of module>

• The Gateway Client URL defaults to http://localhost:3000, if not provided.

• Module name is the name of the module that the changes should be stored in. This module must
already exist. You can create this using generateModule.

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.

The Active Workspace module


Your custom module must follow the declarative file and directory structure. Following is an example
of a module with several customizations:

4-4 Configuration and Extensibility AW008 4.2


Example customizations

mysamplemodule
This is the base directory for you custom module. It is located in STAGE\src. Your module.json file
(required) is located here. Depending on your customizations you may also have the following files:
• aliasRegistry.json
Icon registration is defined in this file.

• commandsViewModel.json
New command definitions go here, including handlers and placements.

• states.json
If you create any custom locations or sublocations, they are defined here.

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. They have the following naming convention:
sublocationNameView.html

AW008 4.2 Configuration and Extensibility 4-5


Chapter
Chapter 4: 4: Example
Example customizations
customizations

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 postfix distinguishing
them.

Example
moduleNameMessages_de.json for German
moduleNameMessages_ja_JP.json for Japanese
For more examples, reference the OOTB 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

viewmodel
This directory contains your view model files. Each view (html) file has an associated view model
(json) file.

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 PLM 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 will prompt you for the
input it requires, and it validates many of the choices you must make against existing options.

4-6 Configuration and Extensibility AW008 4.2


Example customizations

What can it create?

The utility currently assists you with the creation of the following declarative components.

• module

Create you 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.
If you do not explicitly create your own module, mysamplemodule will be created for you.

• type

Use the declarative framework to assign an icon to an object type. The utility will create
aliasRegistry.json in the 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 PLM 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 in the module directory.

• subLocation

Create a new sublocation. The utility creates a sublocation definition in states.json 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. In the module directory, it
creates an entry in the messages file.

AW008 4.2 Configuration and Extensibility 4-7


Chapter
Chapter 4: 4: Example
Example customizations
customizations

Add a new theme to your module


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.

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

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
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 following 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-8 Configuration and Extensibility AW008 4.2


Example customizations

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.

Overriding a default color

You feel the red theme doesn't go far enough, search results are 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.
The provided theme files can be found under the stage\repo directory. Custom themes are
based on the _ui-theme.scss and _ui-theme-settings.scss.

AW008 4.2 Configuration and Extensibility 4-9


Chapter
Chapter 4: 4: Example
Example customizations
customizations

2. Copy the line defining the highlighted background color from the ui theme settings scss.
$aw_highlighted_background_color: $AW_SiemensAccentYellow5;

3. Paste 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 could specify any standard color or hexadecimal color
code. In this example, use one of the defined red highlight colors.
@import 'ui-theme-settings';

$aw_highlighted_background_color: $AW_SiemensAccentRed5;

@import 'ui-theme';

5. Build and deploy the awc application.

6. Test your new highlight color.

4-10 Configuration and Extensibility AW008 4.2


Example customizations

Example: Create a new command


Declarative commands require a native module. Its location is determined by which uiAnchor you
use. In this case, the right wall command bar.

Tip
Use the Active Architect to do command configuration using the UI.

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:\>generatemodule

S:\>node S:\build\generator.js
Enter type to generate: command
Command name: myCommand
Icon name: cmdWalk
Placement name: aw_rightWall

The following shows the stage/src/mysamplemodule folder after creating the command.

2. Build the application, deploy, and test.

AW008 4.2 Configuration and Extensibility 4-11


Chapter
Chapter 4: 4: Example
Example customizations
customizations

Notice how the command appears on the right wall command bar.

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
}

4-12 Configuration and Extensibility AW008 4.2


Example customizations

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": {
"objectIsSelected": {
},
"i18n": {
"myCommandTitle": [
}
}

mysamplemoduleMessages.json

This file contains all of the 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"
}

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.

AW008 4.2 Configuration and Extensibility 4-13


Chapter
Chapter 4: 4: Example
Example customizations
customizations

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:\>generatemodule
Enter type to generate: module
Module name: mysamplemodule

The following shows the stage/src/mysamplemodule folder 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.
{
"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-14 Configuration and Extensibility AW008 4.2


Example customizations

}
]
}
}
}

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"
],
"skipTest": true
}

AW008 4.2 Configuration and Extensibility 4-15


Chapter
Chapter 4: 4: Example
Example customizations
customizations

indicator.json

You 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, the system 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.
In this example, the condition happens to test a property that is not one of these pre-loaded
properties. Because of this, you will add to the typeProperties section to tell the system 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.

4-16 Configuration and Extensibility AW008 4.2


Example customizations

• 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.
This is case sensitive.
S:\>generatemodule
Enter type to generate: location
Location name: myLocation

The following shows the stage/src/mysamplemodule folder after creating the location.

2. Use the generateModule script to create a sublocation. In this example, you create
mySubLocation.
S:\>generatemodule
Enter type to generate: subLocation
Location name: myLocation
Sublocation name: mySubLocation

The following shows the stage/src/mysamplemodule folder after creating the sublocation.

AW008 4.2 Configuration and Extensibility 4-17


Chapter
Chapter 4: 4: Example
Example customizations
customizations

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-18 Configuration and Extensibility AW008 4.2


Example customizations

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
}

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: list, table,
and image.

AW008 4.2 Configuration and Extensibility 4-19


Chapter
Chapter 4: 4: Example
Example customizations
customizations

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.
{
"schemaVersion" : "1.0.0",
"imports":
[
"actions":
{
"reveal":
{
"search":
{
],
"dataProviders":
{
"listDataProvider":
{
},

"onEvent": [{
"eventId": "dataProvider.reset",
"action": "reveal"
}, {
"eventId": "mySubLocationList.contentLoaded",
"action": "reveal"
}]
}

4-20 Configuration and Extensibility AW008 4.2


Chapter 5: 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.

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.

What does the Collaboration tab look like?


Following is an example of the Collaboration tab in Active Workspace.

AW008 4.2 Configuration and Extensibility 5-1


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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:
• 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.

5-2 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.

What does the Content tab look like?

Following is an example of the Content tab in Active Workspace.

AW008 4.2 Configuration and Extensibility 5-3


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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:
sublocation tabs AWC_item-revision-type.showObjectLocation.
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.

5-4 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Number Element How to configure


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.

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.

AW008 4.2 Configuration and Extensibility 5-5


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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

5-6 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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:

AW008 4.2 Configuration and Extensibility 5-7


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.
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.

5-8 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.

AW008 4.2 Configuration and Extensibility 5-9


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 Configuring the properties of structured content.

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

o If this preference is set to seqno, BOMLines with the same sequence numbers are packed.

o 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

o If only the property name is specified, then lines having the same value for the property
are packed.

o If the property name is followed by a colon, the string after the colon is the value when the
pack is not allowed.

o No string after a colon indicates an empty value.

• Configure the structures to load with packed elements by default.


Syntax: PSEAutoPackPref:0/1

o Set the PSEAutoPackPref to 1 to load the structures in the packed view.

o 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.

5-10 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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
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:

Awb0BOMToOccurrence
Business object Property 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.

AW008 4.2 Configuration and Extensibility 5-11


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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:

• 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.

5-12 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

AW008 4.2 Configuration and Extensibility 5-13


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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.

5-14 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.

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.

AW008 4.2 Configuration and Extensibility 5-15


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 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

5-16 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

When deriving a change object from a Set the relations propagated using
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.

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.

AW008 4.2 Configuration and Extensibility 5-17


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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

5-18 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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 PLM 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 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.

AW008 4.2 Configuration and Extensibility 5-19


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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
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

5-20 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

• 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 PLM 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 indexing for classification classes and attributes.

• Enable visual navigation cards.

• Set classification preferences.

• Configure classification standard taxonomy (used for eCl@ss compliant data)

What do I need to do before configuring?


Before you can configure classification, you must install the features 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.

Before you begin using classification, your classification administrator must create the classification
hierarchy.

AW008 4.2 Configuration and Extensibility 5-21


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Where can I find out more about classification?

• To find out more about traditional Classification, see Classification and Classification Admin
in the Teamcenter help collection.

• To find out more about classification standard taxonomy, see **Unsatisfied xref title** and What is
classification standard taxonomy?

Visual navigation cards


Visual navigation cards allow the display of larger images while viewing the selected level in the
classification node hierarchy.

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:


o Lbr0Library configures the top level of a library structure.

o Lbr0Hierarchy configures the second level of a library structure.

o Lbr0HierarchyNode configures the remaining levels of a library structure.

5-22 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.

AW008 4.2 Configuration and Extensibility 5-23


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Viewing 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.

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).

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:

5-24 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

eCl@ss CST Traditional classification


(ICS)
Value list Key-LOV definition Key-LOV
Property Property definition Dictionary attribute
Classification class Node definition –
Application class Class definition Group/class
IRDI IRDI ID
Property block Property block –
Application data Classification object ICO
Aspect Aspect –

Install and set 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

AW008 4.2 Configuration and Extensibility 5-25


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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 PLM 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

5-26 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Example:
XMPL#01-CLS001#001
Where:

IRDI components Description


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:
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.

AW008 4.2 Configuration and Extensibility 5-27


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 information, for example, supplier contact information, that have nothing to do
with product definition. Aspect classes can only be referenced directly by application classes.

5-28 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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).

AW008 4.2 Configuration and Extensibility 5-29


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

5-30 Configuration and Extensibility AW008 4.2


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

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

AW008 4.2 Configuration and Extensibility 5-31


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

5-32 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

The Number of slots property is referred to as the cardinality controller.

AW008 4.2 Configuration and Extensibility 5-33


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

5-34 Configuration and Extensibility AW008 4.2


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:

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"
]
}

AW008 4.2 Configuration and Extensibility 5-35


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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.

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:

5-36 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

AW008 4.2 Configuration and Extensibility 5-37


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

The aspect class is represented in the JSON file as follows:

The application class that references the aspect class is described as follows:

5-38 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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
The order in which you import these files is as follows:

AW008 4.2 Configuration and Extensibility 5-39


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 definition Import clsutility -u=user -p=password -g=group -create -property_definitions
-request="path-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
(ICOs) -request="path-to-JSON-file"

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.

5-40 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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 clsutitity 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.
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.

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

AW008 4.2 Configuration and Extensibility 5-41


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• Manufacturer
A simple string property

• Adjustable headrests
A boolean property

In the user interface, this class is displayed as follows:

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.

5-42 Configuration and Extensibility AW008 4.2


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",
"DataType": "String",
"LOVItems": {
"LOVReferenceItems": [
{
"StringValue": "R",
"DisplayValue": "Rear Seat"
},
{
"StringValue": "F",
"DisplayValue": "Front Seat"
}
]
}
}
]
}

2. Import the property definitions.

AW008 4.2 Configuration and Extensibility 5-43


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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",

5-44 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

"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.


The Car class contains only three properties: Type of seat, Manufacturer, and Adjustable
headrests:

AW008 4.2 Configuration and Extensibility 5-45


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP002#001"
},
{
"Type": "Property",
"Reference": "TDOC#02-PRP003#001"
}
]

5-46 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

}
]
}

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"
},
{
"Namespace": "TDOC",
"ID": "CSTAA1",
"Revision": "001",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAA0",
"Revision": "001"
},
"Name": "Cars"
},
{
"Namespace": "TDOC",
"ID": "CSTAA2",
"Revision": "001",

AW008 4.2 Configuration and Extensibility 5-47


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

"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:

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.

5-48 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Property blocks are referenced by block properties which, in turn, are referenced in the application
class containing the block properties:

AW008 4.2 Configuration and Extensibility 5-49


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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",
"Revision": "001",
"Status": "Develop",
"Name": "Material",
"DataType": {
"Type": "String"
}
},
{

5-50 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

"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"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP008",
"Revision": "001",
"Name": "Heated seats",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",

AW008 4.2 Configuration and Extensibility 5-51


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

"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"
}
}
]
}

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": [

5-52 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

{
"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"
}
]
},
{
"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"
}
]
},
{

AW008 4.2 Configuration and Extensibility 5-53


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

"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"
}
]
}
]
}

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.

5-54 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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:

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:

AW008 4.2 Configuration and Extensibility 5-55


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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:

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.

5-56 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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": {
"DataType": "String",
"LOVStringItems": [
{
"StringValue": "F",
"DisplayValue": "Front"
},
{
"StringValue": "R",

AW008 4.2 Configuration and Extensibility 5-57


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

"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",
"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",

5-58 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

"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",
"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"
}
]

AW008 4.2 Configuration and Extensibility 5-59


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

},
{
"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"
}
]
}
]
}

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-60 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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:

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.

AW008 4.2 Configuration and Extensibility 5-61


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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:

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.

5-62 Configuration and Extensibility AW008 4.2


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.

AW008 4.2 Configuration and Extensibility 5-63


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

The following application class contains the polymorphic Seat property that references the key-LOV.

5-64 Configuration and Extensibility AW008 4.2


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",
"KeyLOVDefinitions": [
{
"ObjectType": "09",
"Namespace": "TDOC",

AW008 4.2 Configuration and Extensibility 5-65


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

"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",
"BlockReference": "TDOC#09-KEY003#001"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP016",
"Revision": "001",
"Name": "Seat",
"Status": "Develop",
"DataType": {
"Type": "String",

5-66 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

"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",
"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",

AW008 4.2 Configuration and Extensibility 5-67


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

"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",
"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"
}

5-68 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

]
}
]
}

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",
"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.

AW008 4.2 Configuration and Extensibility 5-69


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

This example uses the same two property block classes as the previous example, describing the
front and rear seats:

5-70 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Again, these classes are referenced by the same key-LOV as in the previous example, which
determines which of these classes is displayed:

AW008 4.2 Configuration and Extensibility 5-71


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

The application class references the properties that determine the polymorphism and cardinality:

5-72 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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",
"Revision": "001",
"Name": "Seat",
"Status": "Develop",
"DataType": {

AW008 4.2 Configuration and Extensibility 5-73


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

"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"
}
]
}
]
}

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",

5-74 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

"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:
• 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"
]

AW008 4.2 Configuration and Extensibility 5-75


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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:
• 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.

5-76 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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 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

AW008 4.2 Configuration and Extensibility 5-77


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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:

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.
Specifies the path to the directory holding the XML files to
xmlFileDirectory be converted. This path must be specified relative to the
baseDirectory path.
Specifies the name of the XML segment file to be converted, for
xmlFileNameBase
example, eClass9_1_ADVANCED_EN_.
Specifies the name of the units file, for example,
xmlFileName
eClass9_1_UnitsML_EN_DE.xml.

5-78 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Property Description
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
xmlFileNameLocale
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
For data (BMECAT) files only, specifies the file type, for example,
xmlFileNameExtension
xml.
Specifies the separator between item ID and item revision that is
WSO.revision_separator used at import when creating a classified item revision in Active
Workspace.
Specifies the revision ID which is later used to create a revision
WSO.revision_id of this ID (or to classify a revision of this ID) when importing the
JSONs into Active Workspace.
Specifies the name of the directory in which the utility places
jsonOutputDirectory the JSON files it creates. The utility creates this directory in the
base directory.
Specifies the name of the directory in which the utility places the
hashMapDirectory 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.

AW008 4.2 Configuration and Extensibility 5-79


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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:
CALL %TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced -objectType:hashmaps
CALL %TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced -objectType:keylovs
CALL %TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced -objectType:properties
CALL %TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced -objectType:blocks
CALL %TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced -objectType:aspects
CALL %TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced -objectType:applicationClasses
CALL %TC_PERL% %TC_BIN%\eclass2json\eclass2json.pl -configuration:eclass_9_1_advanced -objectType:classificationClasses
CALL %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:

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

5-80 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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:

AW008 4.2 Configuration and Extensibility 5-81


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 .

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.

5-82 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

AW008 4.2 Configuration and Extensibility 5-83


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Whether both types of classes or only traditional classes are displayed in the user interface depends
on the value of the CLS_is_presentation_hierarchy_active preference. If this preference is set to
true, both types of classes are visible. If it is set to false, only traditional classes are visible.
Traditional classification ICS classes must be extended to the presentation hierarchy as follows:
1. Create the presentation layer using clsutility

2. Synchronize the presentation layer with the classification hierarchy

Create the presentation layer using clsutility

• 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.
o For classification groups, running this utility creates presentation layer group nodes with the
same ID as the associated groups.

5-84 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

o For classification classes, running this utility creates presentation layer master nodes with
storage class-type properties that are the same as their associated classes.

Additional optional arguments:

o -include_instances
Includes ICOs in the subhierarchy.

o -exclude_children
Excludes the subhierarchy. It extends the specified group or class only.

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 hierarchy Operation required on node 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 group Copy/paste or cut/paste of a group node
Copy/paste or cut/paste of a class Copy/paste or cut/paste of a master node

The synchronization mechanism functions as follows:

o 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.

o 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

AW008 4.2 Configuration and Extensibility 5-85


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

The objects in the hierarchies are mapped as follows.

Object types from Classification Corresponding object types from the presentation
(class hierarchy) layer (node hierarchy)
Group Group node
Abstract class Master node
Storage class Master node
Classification object (ICO) Classification element

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
Currently, the -classification2cst argument is offered as beta software. You can test it on
specific classes but it is not production ready.

This utility argument migrates one traditional classification class and all the objects (properties,
dictionary attributes, and key-LOVs) referenced by that class to the CST format. Optionally, the
utility can also convert any ICOs already existing in the class. When complete, there is a released
class in the database with the following IRDI:
SML0#01-class-ID#001
You can reference this application class in a node structure.

Current limitations
• Only leaf classes can be converted.

• Attribute inheritance is not supported.

clsutility reference tables


All clsutility commands begin with the following validation:
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.

5-86 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Use this command To


-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.

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-node Update a hierarchy node with the values provided.

[-descr=new-description-for-given-node] Update a hierarchy node with a new description.


-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.
List the classification objects belonging to the given
-get -classification_objects -id=hierarchy-node-ID
hierarchy node.
List all properties belonging to a hierarchy node
-ask -node_class_props -id=hierarchy-node-ID
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

AW008 4.2 Configuration and Extensibility 5-87


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Use this command To


-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={0: group | 1: master | 3: all}] type.
-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 Check whether a hierarchy node is a descendent of
-ancestor_id=ancestor-hierarchy-node-ID another node.
-ask -node_type -id=hierarchy-node-ID Display the type of the given hierarchy node.
List the classification objects belonging to the given
-ask -node_instances -id=hierarchy-node-ID 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
List all properties belonging to a hierarchy node.
-name=name-of-property-being-sought-including-prefix
List all the attachments belonging to the given
-ask -node_attachments -id=hierarchy-node-ID
hierarchy node.
-ask -node_characteristic -id=hierarchy-node-ID -characteristic={0: List whether a given node is an assembly, has
is-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

[-new_file_name=new-file-name-used-by-Active-Workspace] Import an image for the given hierarchy node. Images


are displayed in the right pane of the user interface.
[-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
[-new_file_name=new-file-name-used-by-Active-Workspace] are displayed in the classification hierarchy and help
to visualize the class names.
[-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
Identify the primary image used by the given
-get -image -id=hierarchy-node-ID
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]
Display the classification properties of a given
-find -classification_objects -request=JSON-file-name
classification object.

5-88 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.
AWC_classification_facets_threshold
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 only traditional classes are visible in the classification hierarchy (false) or both
traditional and CST classes are visible (true).

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.

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.

AW008 4.2 Configuration and Extensibility 5-89


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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.

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).

5-90 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

3. Install Active Workspace and include the digital signature features shown in the Teamcenter
Environment Manager (TEM) Features panel:
• Active Workspace Client (Java EE) or Active Workspace Client (.NET)

• 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. Deploy the Active Workspace WAR file.

5. 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">
<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>

6. Install Microsoft .NET Framework 4 on each client.

Note
This is available from Microsoft.

7. Install ActiveX on each client.

AW008 4.2 Configuration and Extensibility 5-91


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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.

5-92 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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

AW008 4.2 Configuration and Extensibility 5-93


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

PickGeography Displays the Geography entry on the postlogon page.

• LoginCountry_save_previous_selection
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

5-94 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

• 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.

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.

AW008 4.2 Configuration and Extensibility 5-95


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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

• The conf_messages_test.xml file has different contents in each directory. For example:
o 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>

o 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>

o 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

5-96 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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:
• 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"/>

AW008 4.2 Configuration and Extensibility 5-97


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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

5-98 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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).

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.

AW008 4.2 Configuration and Extensibility 5-99


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

5. Select This Revision or All Revisions. Then, click Attach to attach the selected license(s).

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 .

5-100 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

The Licenses panel displays.

2. Select any license to detach and click the Detach button. This detaches the license(s) from the
selected items.

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 the .war file generation for other 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 set up to
display text in your local language.

Where can I find out more about localization?

See Teamcenter Localization in the Teamcenter help collection.

AW008 4.2 Configuration and Extensibility 5-101


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Configure the web application file generation for other locales


The web application file is generated as a awc.war file for Java or awc.zip file for .NET. You can
generate the web application file to support the following language locales: de, en, es, fr, it, ja_JP,
ko_KR, pl_PL, pt_BR, ru_RU, zh_CN, and zh_TW.
1. Run Teamcenter Environment Manager (TEM).

2. Select Perform maintenance on an existing configuration and click Next.

3. In the Feature Maintenance panel, choose Update Active Workspace client settings.

4. Click Next.
The Active Workspace Client Settings panel is displayed.

5. In the Active Workspace Client Settings panel, click Advanced.

5-102 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

The Additional Client Settings panel is displayed.

6. Select the languages you want to include in the generated web application file and click OK.

7. Click Next in the Active Workspace Client Settings panel to generate the web application
file (awc.war for Java or awc.zip for .NET).

8. Deploy the generated file into your web application server (for example, in WebLogic, JBoss,
or WebSphere).

Note
This default web application file requires no compile step and should be leveraged
by customers who do not require the customization of Active Workspace and use
the provided languages. If you require additional or other combination of languages,
general Active Workspace customization, or a smaller web application file, you can
generate a new file.

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:

AW008 4.2 Configuration and Extensibility 5-103


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Brazilian Portuguese English Korean

Chinese (Simplified) French Polish

Chinese (Traditional) German Spanish

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
PLM 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 Client is not in a pre-configured VSM
languages language
The data request is routed to an English
VSM for English exists
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.

5-104 Configuration and Extensibility AW008 4.2


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.

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.

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.

AW008 4.2 Configuration and Extensibility 5-105


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

5-106 Configuration and Extensibility AW008 4.2


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:
o Program Planning (client)
Enables the program management capability in Active Workspace.

o (Optional) Schedule Manager (client)


Allows Active Workspace users to relate schedules and change objects.

o (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.

o (Optional) Change Management Schedule Manager


Allows Active Workspace users to relate schedules and change objects.

o (Optional) Program Change Client


Allows Active Workspace users to relate programs, projects, and subprojects to change
objects.

AW008 4.2 Configuration and Extensibility 5-107


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

o (Optional) Program Planning Event Change Client


Allows Active Workspace users to relate events to change objects.

o (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:


o (Optional) Change Management

o Dispatcher Server

o Dispatcher Client

• Program Planning (server)


Enables the program management capability in Active Workspace.
Select Active Workspace→Server Extensions→Program Planning.

o Program Planning

o (Optional) Schedule Manager

• Program Planning Execution


Program Planning execution features for Active Workspace.

o (Optional) Change Management Schedule Manager


Allows Active Workspace users to relate schedules and change objects.

o (Optional) Program Change


Allows Active Workspace users to relate programs, projects, and subprojects to change
objects.

o (Optional) Program Planning Event Change


Allows Active Workspace users to relate events to change objects.

o (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
o Dispatcher Scheduler

o Dispatcher Client

o Dispatcher Module

• Select Translators

5-108 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

o AsyncService

Load the templates


These templates can be found in tcdata\model\ in Business Modeler IDE.

Installation Template Name Description


Order
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.

• Navigate to Access Manager in Teamcenter and do the following:

AW008 4.2 Configuration and Extensibility 5-109


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

o Under Has Class (POM_application_object) → Working, create an ACL named


DispatcherRequest.

o Assign read, write, and delete privileges to the dcproxy user.

• 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.

Tip
After installing new features, you must redeploy the generated web application file
(awc.war for Java or awc.zip for .NET) to your web application.

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

5-110 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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
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

AW008 4.2 Configuration and Extensibility 5-111


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

Note
Maximum allowable length for the Event Code value is 12 characters.

5-112 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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,

AW008 4.2 Configuration and Extensibility 5-113


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

5-114 Configuration and Extensibility AW008 4.2


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.

AW008 4.2 Configuration and Extensibility 5-115


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

Prerequisite Steps
Before exporting and importing data, complete the following steps at both the source and destination
sites.

5-116 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

• 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).

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

AW008 4.2 Configuration and Extensibility 5-117


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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).

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

Source
Source obj. Source obj.
Name Description obj. type attribute 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.

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-118 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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
(impacted item) or from an event's program Program Deliverable
deliverables (deliverable instance).

Source Object Identifies the Teamcenter object class Varies, depending on your
Type for 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.

AW008 4.2 Configuration and Extensibility 5-119


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Field name Definition Valid values

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
(project-level that correlate groups of users with the
security) data 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 organization.
is 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 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-120 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

Field name Definition Valid values

Name Identifies this STVM.

Description Describes this STVM.

Schedule Identifies the STAM for which this STVM Click the to select a STAM,
Template is being created. and then click Set.
Attribute Map

AW008 4.2 Configuration and Extensibility 5-121


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Field name Definition Valid values

Source Object Identifies the value of the source object


Attribute attribute that maps to the selected STAM.
Value

Project Associates this template to a security-level


project. The project consists of entities
(project-level that correlate groups of users with the
security) data 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:
• 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.

5-122 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

• 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.

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.

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.

AW008 4.2 Configuration and Extensibility 5-123


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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)" />
<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

5-124 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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:
<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:

o GRM
An example is:
source=GRM,key=Attach,relationType=TC_Attaches,targetDirection=forward,
inputTypes=ItemRevision

o WhereUsed
An example is:
source=WhereUsed,key=Structure,inputTypes=ItemRevision

o WhereReferenced
An example is:

AW008 4.2 Configuration and Extensibility 5-125


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

source=WhereReferenced,key=Folder,level=1,inputTypes=Item|Folder,
outputTypes=Folder

o Property
An example is:
source=Property,key=Folder,propertyName=contents,targetDirection=forward,
inputTypes=Folder

• key
Specifies one of the existing relation types.

• 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:

5-126 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

<view name="General">
<ruleName>GenericRule</ruleName>
<defaultLayout>Bottom-to-Top</defaultLayout>
<defaultExpandDirection>backward</defaultExpandDirection>

</view>

The supported values are:

• forward
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)"/>
<filter name="File" parameterSet="Dataset" color="(202,216,234)"/>

AW008 4.2 Configuration and Extensibility 5-127


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

<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">
<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:

o type

5-128 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Specifies the type of object: node for object and edge for relation.

o 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).

o 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">
<!—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>

AW008 4.2 Configuration and Extensibility 5-129


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

<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.

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.

5-130 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.

AW008 4.2 Configuration and Extensibility 5-131


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• Schedule Manager (server)


Installs the server-side definitions for Schedule Manager.
Select Active Workspace→Server Extensions→Schedule Manager.

• (Optional) Change Management Schedule Manager Client


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:
o Dispatcher Server

o Dispatcher Client

o Dispatcher Components
■ Dispatcher Scheduler

■ Dispatcher Client

■ Dispatcher Module

o 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.

5-132 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Tip
After installing new features, you must redeploy the generated web application file
(awc.war for Java or awc.zip for .NET) to your web application.

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)

• Removing members from a schedule

• 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.

AW008 4.2 Configuration and Extensibility 5-133


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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

You can also install other search-related features such as Active Content, classification search,
and dispatcher.

What do I need to do before configuring?


Before you can configure search, you must install the indexing features.
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.

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:
• 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.)

5-134 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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
o Large structures using Massive Model Visualization

• Should likely index


o Product platforms under development

o Requirement structure for a strategic initiative

o Mature product in manufacturing production

• Should be considered for indexing


o Moderately sized structures sharing considerable reused content

o Out-of-production products with ongoing service

AW008 4.2 Configuration and Extensibility 5-135


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• Unlikely to need an index


o R&D concepts

o Legacy products out of production

o 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.

The following diagram shows the process that occurs when you create an index for structured content.

5-136 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

• Released, Effectivity Milestone 1(1/1/2013) creates one set of occurrences.

For best performance, Siemens PLM 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.

AW008 4.2 Configuration and Extensibility 5-137


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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

5-138 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.
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.

AW008 4.2 Configuration and Extensibility 5-139


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Structure indexing utilities

Overview of the bomindex_admin utility


The bomindex_admin utility is used to create the BOMIndexAdminData data to define a specific
product configuration to be indexed. This utility is also used to mark a given product configuration
(/BOMIndexAdminData/BIAD) for deletion.
The bomindex_admin utility supports the following options:
bomindex_admin -u=user-id -p=password -g=group -function=action-to-perform -inputfile=input
file -logfile=log-file

The actions supported by the function parameter are:


• create
Creates the BIAD for a given product configuration.

• delete
Deletes the BIAD for a given product configuration.

• list
Lists the BIADs defined in the system.

A product configuration has many parameters, and they are passed to the utility using a text file
specified using the -inputfile parameter.
The input file is required to have lines created in the following form:
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. 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 any errors that may occur during the creation process.

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

5-140 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.
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.

AW008 4.2 Configuration and Extensibility 5-141


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• -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
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

5-142 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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
TcFTSIndexer TC_ROOT\TcFTSIndexer\logs\. 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:
o TcFtsIndexer.bat/sh -status to generate the summary
report in the console. The summary shows the steps in
the flow where errors occurred.

o 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

AW008 4.2 Configuration and Extensibility 5-143


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Issue Possible resolution


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.

Note
To ensure the optimal number of warmed up servers,
Siemens PLM 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.

5-144 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Issue Possible resolution


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:
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=

AW008 4.2 Configuration and Extensibility 5-145


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Issue Possible resolution


TcFTSIndexer The following message is displayed in output after running the
output states the runTcFTSIndexer utility:
search engine is
ERROR - The search engine is not accessible
not accessible or the search engine schema is not correct.

The Solr schema needs to be updated. Use the following


command:
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:
authentication Unknown 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
type definition does not exist the 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 Changed data is shown immediately in searches when users
do not appear immediately in add, remove, or change elements (occurrences or BOM
searches. lines).
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.

5-146 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Issue Possible resolution

• Changing effectivity on the release status.

• 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:
| 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:

AW008 4.2 Configuration and Extensibility 5-147


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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
------ ------------------ -------------- ----- ------------------------------ ------------ ------------
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

5-148 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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
------ ------------------ -------------- ----- ------------------------------ ------------ ------------

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
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:

AW008 4.2 Configuration and Extensibility 5-149


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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
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:

5-150 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

• 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.

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:
o 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.

AW008 4.2 Configuration and Extensibility 5-151


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

o 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.

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

5-152 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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
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.)

AW008 4.2 Configuration and Extensibility 5-153


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.)
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
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:

5-154 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

• Status
Indicates the general category of the index state. The output is sorted by the status category.

o 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.

o 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.

• TC Count
Indicates the number of occurrences found in the database for this product configuration.

• Solr Count

AW008 4.2 Configuration and Extensibility 5-155


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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:

o Dispatching
Indicates that dispatching is occurring. This is a transient message.

o sync (initial)
Indicates the first time the index is generated (for example, during re-index).

o sync (update)
Indicates an incremental sync update is occurring.

o sync (delete)
Indicates sync delete processing.

o promoting to failure (found in intermediate state)

5-156 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Indicates that the given product configuration did not complete processing on the last sync
action and is being promoted to a failure state.

o 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:

o Waiting for # permits


Indicates that processing is waiting for the required number of permits to begin processing.

o Waiting for connection


Indicates that processing is waiting for a Teamcenter connection.

o SOA call in progress


Indicates that a Teamcenter SOA call is in process.

o Download
Indicates that export files are being downloaded.

o Transform
Indicates that export data is being transformed into Solr files.

o Solr
Indicates that Solr is being updated.

o Done
Indicates that process completed without error.

o Failed
Indicates that an error occurred.

• CurrentState
Indicates the current state of the given product configuration.

• 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

AW008 4.2 Configuration and Extensibility 5-157


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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

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.

5-158 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

• 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.

AW008 4.2 Configuration and Extensibility 5-159


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 no thumbnail image is desired, remove all values from the


TC__thumbnail_relation_order preference.

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.

5-160 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

• Configure logoff for Active Workspace.

• Configure multiple application IDs.

• Configure load balancer time-outs.

• Configure location codes.

• Configure owning project.

• Configure project-level security.

• Configure a two-way SSL proxy server.

• Configure HTTP GET redirect method.

• Configure a logoff landing page.

• Protect against cross-site request forgery.

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.
PickGeography Displays the Geography entry on the postlogon page.

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.

AW008 4.2 Configuration and Extensibility 5-161


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• Active Workspace is configured using Teamcenter Security Services, and Teamcenter Security
Services is configured to authenticate using an LDAP server:
o 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.

o 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.

Note
The third scenario requires additional configuration during the initial installation of
Active Workspace. You must configure a logoff landing page.

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
thin client can be deployed for the same server instance. Each client needs a distinct application ID

5-162 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

(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 legacy thin client
uses an AppID named TCthin. In the tc_profilevars file, configure the compound AppID as
TCAWC,TCthin or TCAWC TCthin. 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 TCThin) and include
the appropriate return URLs.

Note
The Teamcenter thin client must be enabled for Security Services and configured with
a Login Service that is deployed in applet mode, as described in Security Services
Installation/Customization in the Teamcenter help collection.
Active Workspace needs to be configured with the same Login Service running in Applet
mode. You must configure the Identity Service with two AppID values: one for Active
Workspace and another for the 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:

Element AppID value


Active Workspace appIDAW
Teamcenter thin client appIDTC
Teamcenter server appIDAW, appIDTC
Teamcenter rich client (not required for appIDTC
viewer)

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.

AW008 4.2 Configuration and Extensibility 5-163


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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.

5-164 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.)

AW008 4.2 Configuration and Extensibility 5-165


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• 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.

• 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.

5-166 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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

AW008 4.2 Configuration and Extensibility 5-167


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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.

5-168 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

For more information about modifying business object constants, see Configure your business
data model in BMIDE.

Configuring a two-way SSL proxy server

Configure a two-way SSL proxy server for Java

If Active Workspace is configured and running behind a gateway/proxy server, you must provide
the URL for the local server where Active Workspace is deployed by providing a value for the
localServerURL parameter in the web.xml file that is contained within the awc.war file.

Note
The proper configuration is to set the localServerURL parameter to the http endpoint of
the Active Workspace web application making sure that tcSOAURL and redirectURL are
correctly configured to point to the Teamcenter web tier http endpoints. Active Workspace
will proxy the requests to the Teamcenter web tier.

<init-param>
<!-- Points to the host/port of the local Active Workspace server. If undefined,
the value will be attempted to be generated based on incoming requests.
***In the case of reverse proxy, please set this value.***
Example: http://localhost:7001
Please only include the host and port, the application context will
be determined automatically.
-->
<param-name>localServerURL</param-name>
<param-value></param-value>
</init-param>

The value for this parameter is not defined by default; it must be added within the AuthenticationFilter
filter definition.

AW008 4.2 Configuration and Extensibility 5-169


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Configure a two-way SSL proxy server for .NET

If Active Workspace is configured behind a gateway/proxy server, you must provide the URL for the
local server where Active Workspace is deployed by providing a value for the localServerURL
parameter in the Web.config file that is contained within the awc.zip file.
<!-- Points to the host/port of the local
Active Workspace server. If undefined,
the value will be attempted to be
generated based on incoming requests.
***In the case of reverse proxy, please
set this value.***
Example: http://localhost:7001
Only include the host and port as
the application context is
determined automatically.
Default is empty string.
-->
<add key="localServerURL" value=""/>

The value for this parameter is not defined by default; it must be added within the appSettings
section of the Web.config file.

Configuring HTTP GET redirect method

Overview for configuring GET method

If Active Workspace is configured with Teamcenter Security Services and the request parameters are
lost during authentication resulting in a missing application ID error, perform the GET configuration for
either Java or .NET. This adds the parameter to change the HTTP request method type to GET.

Configuring HTTP GET redirect method for Java

• 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.
<init-param>
<!-- TcSS URL method -->
<param-name>tcSSORedirectMethod</param-name>
<param-value>get</param-value>
</init-param>

Configuring HTTP GET redirect method for .NET

• 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.
<!—TcSS Redirect method -->
<add key=”tcSSORedirectMethod” value=”get”/>

5-170 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Configuring a logoff landing page

Configure a logoff landing page for Java

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 and when a user clicks
the logoff button, Teamcenter 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 by providing a value for the tcSSOLogoutURL
parameter in the web.xml file that is contained within the awc.war file.
<init-param>
<!-- This parameter is only used if Teamcenter Security Services is configured.
This parameter defines the URL to redirect the user after logout is invoked.
If undefined, the user will be returned to Active Workspace.
-->
<param-name>tcSSOLogoutURL</param-name>
<param-value></param-value>
</init-param>

The value for this parameter is not defined by default; it must be added within the AuthenticationFilter
filter definition.

Configure a logoff landing page for .NET

A logoff 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 and when a user clicks
the logoff button, Teamcenter 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 by providing a value for the tcSSOLogoutURL
parameter in the Web.config file that is contained within the awc.zip file.
<!-- This parameter is only used if Teamcenter Security Services is configured
behind an SSO gateway.
This parameter defines the URL to redirect the user after logout is invoked.
This parameter must be defined if Active Workspace is configured
behind an SSO gateway when using Teamcenter Security Services.
For example:
http://www.siemens.com/ //In this case, the user is redirected to the Siemens webpage.
https://GatewayServer/awc //In this case, the user is relogged in to Active Workspace,
as he is already authenticated with the Gateway.
-->
<add key="tcSSOLogoutURL" value=""/>

The value for this parameter is not defined by default; it must be added within the appSettings
section of the Web.config file.

Protecting against cross-site request forgery

Protect against cross-site request forgery for Java

Protection against cross-site request forgery (CSRF) is enabled in Firefox and Chrome by default.
However, for Internet Explorer to prevent the Active Workspace client from CSRF attacks, select
Internet Options→Security→Custom level→Security Settings→Miscellaneous→Access data

AW008 4.2 Configuration and Extensibility 5-171


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

sources across domains. If Access data sources across domains is set to Enable, set this to
Disable. This applies to all security zones in Internet Explorer.

Note
If for any reason you need to bypass this Same Origin policy restriction (for certain
integrations with Active Workspace), you will need enablement of Cross-Origin Resource
Sharing (CORS) in the Teamcenter Active Workspace deployment.

To provide CORS support:


1. Open archive awc.war using 7-Zip or a similar program.

2. Navigate under WEB-INF folder.

3. Edit the web.xml file.

4. Scroll down to the following <init-param> section under ProxyServlet and add the
AcceptedOriginURL:
<servlet>
<servlet-name>ProxyServlet</servlet-name>
<servlet-class>com.siemens.splm.clientfx.proxies.server.ProxyServlet</servlet-class>
.
.
.
<init-param>
<!-- URL for accepted origins -->
<param-name>AcceptedOriginURL</param-name>
<param-value>http://host1:port1,http://host2:port2</param-value>
</init-param>
.
.
.
</servlet>

5. Save the web.xml file, update the web archive, and redeploy.

Protect against cross-site request forgery for .NET

Protection against cross-site request forgery (CSRF) is enabled in Firefox and Chrome by default.
However, for Internet Explorer to prevent the Active Workspace client from CSRF attacks, select
Internet Options→Security→Custom level→Security Settings→Miscellaneous→Access data
sources across domains. If Access data sources across domains is set to Enable, set this to
Disable. This applies to all security zones in Internet Explorer.

Note
If for any reason you need to bypass this same origin policy restriction (for certain
integrations with Active Workspace), you must enable of Cross-Origin Resource Sharing
(CORS) in the Teamcenter Active Workspace deployment.

To provide CORS support:


1. Open the awc.zip archive using 7-Zip or a similar program.

2. Edit the Web.config file that is contained in the awc.zip file.

5-172 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

3. Add the following to the <appSettings> section:


<!--CSRF Accepted Origins List -->
<!-- URL for accepted origins, the value is a comma-separated list
of protocol://hostname:port_number -->
<add key="AcceptedOriginURL" value="http://host1:port1,http://host2:port2"/>
.
.
.

4. Save the Web.config file, update the web archive, and redeploy.

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

AW008 4.2 Configuration and Extensibility 5-173


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• CAE Model Revision

• 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.

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.

5-174 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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"/>
<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"/>

AW008 4.2 Configuration and Extensibility 5-175


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

<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.
The following is an example of the generic simulation data model.

5-176 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.

AW008 4.2 Configuration and Extensibility 5-177


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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)

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:

5-178 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

<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:
/* 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">

AW008 4.2 Configuration and Extensibility 5-179


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

<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"
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,

5-180 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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

^^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)"

AW008 4.2 Configuration and Extensibility 5-181


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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>

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
#S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining:CAEAnalysisRevision
#TC_CAE_Results

5-182 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

^^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
#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

AW008 4.2 Configuration and Extensibility 5-183


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

#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.


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,

5-184 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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 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.

AW008 4.2 Configuration and Extensibility 5-185


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.


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>

5-186 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

</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"/>
<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">

AW008 4.2 Configuration and Extensibility 5-187


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

<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_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)

5-188 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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

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

AW008 4.2 Configuration and Extensibility 5-189


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

*/

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
#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 .

5-190 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.

AW008 4.2 Configuration and Extensibility 5-191


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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)

5-192 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

-> 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
^^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>

AW008 4.2 Configuration and Extensibility 5-193


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 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>
<property name="object_string"/>

5-194 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

<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:
<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"/>

AW008 4.2 Configuration and Extensibility 5-195


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

<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">
<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">

5-196 Configuration and Extensibility AW008 4.2


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>

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.

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.

AW008 4.2 Configuration and Extensibility 5-197


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

• 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.

5-198 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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)
-> 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

AW008 4.2 Configuration and Extensibility 5-199


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

^^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:

<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.

5-200 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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

*/

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"/>

AW008 4.2 Configuration and Extensibility 5-201


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

</tableDisplay>
</objectSet>
</section>

5. Add analysis revisions to the style sheet.


a. Create a construct query.
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"/>
<property name="object_type"/>
<property name="release_status_list"/>

5-202 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

<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:
<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"/>

AW008 4.2 Configuration and Extensibility 5-203


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

<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.

5-204 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.

AW008 4.2 Configuration and Extensibility 5-205


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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)
-> 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

5-206 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

#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>

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>

AW008 4.2 Configuration and Extensibility 5-207


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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>

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 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"/>

5-208 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

<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)"
<!–- ************* 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"

AW008 4.2 Configuration and Extensibility 5-209


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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_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"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>

5-210 Configuration and Extensibility AW008 4.2


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>

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.

AW008 4.2 Configuration and Extensibility 5-211


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 the 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.

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 redeploy the generated web application file
(awc.war for Java or awc.zip for .NET) into your web application.

Where can I find out more about subscriptions?


See Subscription Administration in the Teamcenter help collection.

What do subscription notifications look like?


Following is an example of notifications.

5-212 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.
Following are examples of the configuration:
• 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.

AW008 4.2 Configuration and Extensibility 5-213


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

For example, using the Subscription Properties tab, you can configure several ItemRevision
properties to make 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 were to be turned off from subscription, but existing subscriptions utilize
that property, then these subscriptions will 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.

Example:

5-214 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Setting subscription notification preferences

Setting email and news feed preferences

Set the following preferences to control notification behavior in Active Workspace:

• SCM_notification_mode

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.

AW008 4.2 Configuration and Extensibility 5-215


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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:
• 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.

o Active Workspace
Once the user enables the digest from the profile page, the digest is enabled for that user.

o 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.

o Active Workspace
Use the format localhost:7001; for example, http://10.123.54.46:7001/awc.

5-216 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

o Rich client
Use the format WEB_SERVER_HOST:PORT; for example, 10.123.54.46:7001.

Configuring subscription to multiple objects


Users can subscribe to multiple objects. Because it is important to control the number of objects to
which a user subscribes at a time to prevent users from creating many subscriptions and potentially
flood the system, you can control the number of objects the user can select at a time for subscription
by setting the AWC_followMultiObject_max preference. 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.

• AWC_followMultiEventConfiguredEventTypes
Controls default configured event types for multiple events. Valid values are
__Attained_Release_Status, __Attach, and __Item_Rev_Create.

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 the viewer for a Security Services-enabled environment (Teamcenter 11.x).

• Configure the viewer for a Security Services-enabled environment (Teamcenter 11.x or 12.x).

AW008 4.2 Configuration and Extensibility 5-217


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• 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 (.NET)
Installs the middle-tier process that communicates with the visualization server processes of the
Active Workspace client (.NET). (Only install if you are working in a .NET environment.)
Select Active Workspace→Client→Visualization Pool Assigner (.NET).

• Visualization Pool Assigner (Java)


Installs the middle-tier process that communicates with the visualization server processes of the
Active Workspace client (Java EE). (Only install if you are working in a Java environment.)
Select Active Workspace→Client→Visualization Pool Assigner (Java).

• 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.

5-218 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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 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. Alternatively, if you are
using version 11.x, you can configure the viewer for an SSO-enabled environment by following the
instructions for Teamcenter version 12.x instead.

• 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.

AW008 4.2 Configuration and Extensibility 5-219


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

Note
o You must configure the Identity Service with two appID values: one for Active
Workspace and another for Teamcenter thin client.

o 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 required appIDTC
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.

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.

Configure viewer for SSO-enabled environment (Teamcenter 12.x)


If you are using Teamcenter version 12.x, before you can use the Active Workspace viewer when
Security Services (SSO) is enabled, the following must be configured. You can also use this method if
you are using Teamcenter version 11.x.
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\version\Vis View Base\C\

4. Create the SSOService registry key:

5-220 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

a. Right-click the C key, and choose New→Key.

b. Name the registry value SSOService.

5. Create a DWORD (32-bit) value for the SSOService key:

a. Right-click the SSOService key, and choose New→DWORD (32-bit) Value.

b. Name the value UseSSO.

c. Right-click the UseSSO value in the right pane, and choose Modify….

d. Set the value to 1.

AW008 4.2 Configuration and Extensibility 5-221


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

6. Create a new string value for the SSOService key:


a. Right-click the SSOService key, and choose New→String Value.

b. Name the value SsoURL.

c. Right-click the SsoURL value and choose Modify….

d. Set the value to the URL for the SSO login page.

7. Create another new string value for the SSOService key, naming it SsoAppID and setting the
value to MySSOAppId.
The SSOService should appear similar to this example.

5-222 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

8. Close the Registry Editor.

9. Restart the Visualization Server Manager to see the change take effect.

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.

Default
Variable Value Definition Location File
clientTimeoutS 900 (15 A client viewer is considered Pool web.xml in
min) inactive if it does not cause Assigner awc.war or
any http traffic to the awc.zip
Visualization Server. When
a client viewer is inactive for
clientTimeoutS seconds, then
the corresponding server data
container is closed.
timeoutS 1800 (30 A VisView process is considered Server %TC_ROOT%\
min) inactive if all of its connected Manager vispoolmanager\jetty\
clients viewers are inactive. jettyservice.properties
When a process is inactive for
timeoutS seconds, then it is
terminated.

AW008 4.2 Configuration and Extensibility 5-223


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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 timeoutS and clientTimeoutS. This is why
the value of clientTimeoutS should always be smaller than the value of timeoutS.

Note
o If the user accesses the client viewer after it has timed out (clientTimeoutS), a
message appears warning that the connection is being reestablished, and the
viewer reconnects to the Visualization Server.

o 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.

o 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.

o VisView process terminations (timeoutS) are indistinguishable from process


crashes. In the unlikely event of a process crash, the client viewer reconnects as
if it had timed out (clientTimeoutS).

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.

5-224 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Default
Variable Value Definition Location File
unresponsive 180 (3 If a VisView process does not Server %TC_ROOT%\
TimeoutS min) respond to monitoring requests Manager vispoolmanager\jetty\
for unresponsiveTimeoutS jettyservice.properties
seconds, it is terminated.

• 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 Pool Assigner, do the following:
1. In a text editor, open the web.xml file that is contained within the web application file
(awc.war for Java or awc.zip for .NET).

2. Add the maxBytesPerSec parameter to the VisPoolProxy servlet section of the file as
shown:
<servlet>
<servlet-name>VisPoolProxy</servlet-name>
<servlet-class>com.teamcenter.vis.proxy.Proxy</servlet-class>
<init-param>
<param-name>launchMode</param-name>
<param-value>Assigner</param-value>
</init-param>
<init-param>
<param-name>cacheConfigFile</param-name>
<param-value>/com/teamcenter/thinclient/resources/TreeCache.xml
</param-value>
</init-param>
<init-param>
<param-name>maxBytesPerSec</param-name>
<param-value>125000000</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

3. Adjust the value of the maxBytesPerSec parameter for your server environment.

To modify this configuration parameter for the Visualization Server Manager, do the following:

1. In a text editor, open the jettyservice.properties file from the in the Visualization Server
Manager’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,

AW008 4.2 Configuration and Extensibility 5-225


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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, do the following:

1. In a text editor, open the web.xml file that is contained within the web application file
(awc.war for Java or awc.zip for .NET).
a. Add the maxUsageThreshold parameter to the VisPoolProxy servlet section of the
file as shown:
<servlet>
<servlet-name>VisPoolProxy</servlet-name>
<servlet-class>com.teamcenter.vis.proxy.Proxy</servlet-class>
<init-param>
<param-name>launchMode</param-name>
<param-value>Assigner</param-value>
</init-param>
<init-param>
<param-name>cacheConfigFile</param-name>
<param-value>/com/teamcenter/thinclient/resources/TreeCache.xml
</param-value>
</init-param>
<init-param>
<param-name>maxUsageThreshold</param-name>
<param-value>.7</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

b. Adjust the value of the maxUsageThreshold parameter for your server environment.

2. In a text editor, open the jettyservice.properties file in the Visualization Server Manager’s
installation.

3. Adjust the value of the VisPoolproxy.maxUsageThreshold parameter for your server


environment.

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.

5-226 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

• Under Process Model, set Idle Time-out to 0.

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 web.xml file.

AW008 4.2 Configuration and Extensibility 5-227


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

1. In a text editor, open the web.xml file that is contained within the web application file (awc.war
for Java or awc.zip for .NET).

2. Add the following parameter to the VisPoolProxy servlet section of the file:

<init-param>
<param-name>allowHTTPResponseCompression</param-name>
<param-value>True</param-value>
</init-param>

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:

Name Value
TCVIS_LOGGING_ENABLE 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 TCVIS_LOGGING_ENABLE and
TCVIS_LOGGING_LEVEL are set properly,
this is an optional parameter.

5-228 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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 installed by TEM on your file system (awc.war for Java or awc.zip
for .NET).

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

AW008 4.2 Configuration and Extensibility 5-229


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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

5-230 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Visualization Default Teamcenter preference


feature
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
Floor grid visibility When the floor is on, the AWC_visGridOn
grid is displayed.
Reflection When the floor is on, the AWC_visReflectionOn
visibility 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 On AWV0SectionCapsEdgesInitialState
cut 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.

AW008 4.2 Configuration and Extensibility 5-231


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
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 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.

5-232 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

Configure display units


The default units for certain content displayed by the visualization server are meters. You can change
the default to another unit type, for example, millimeters. This configuration affects the units displayed
when you create persistent measurements in 3D models.
1. On the machine hosting the visualization server, 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. Navigate to the following registry key. If necessary, create the key.


Where

version = the Active Workspace version number.

locale = the abbreviation for the locale of the machine hosting the visualization server.
HKEY_CURRENT_USER\Software\Siemens\AW_Retained\version\Common\locale\Measurement\

Locale Abbreviation
English C
French fr
German de
Italian it
Spanish es
Chinese (Simplified) ZhGBK
Chinese (Traditional) ZhBIG5
Japanese JaPCK
Korean ko
Russian ru

Note
The visualization server is supported for the above locales. The viewer is supported for
some additional locales.

4. If a Measurement_Display_Units value does not already exist in the key, create it.
a. Choose Edit→New→DWORD (32-bit) Value.

b. Name the new value Measurement_Display_Units.

AW008 4.2 Configuration and Extensibility 5-233


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

5. Right-click Measurement_Display_Units DWORD value and choose Modify.

6. In the Base section, select Decimal.

7. In the Value data box, enter the value corresponding to the desired units:

Value Units
0 Unknown
1 Millimeters
2 Centimeters
3 Meters
4 Inches
5 Feet
6 Yards
7 Micrometers
8 Decimeters
9 Kilometers
10 Mils
11 Miles

8. Click OK.

9. Restart the Visualization Server Manager.

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.

5-234 Configuration and Extensibility AW008 4.2


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:
<?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"

AW008 4.2 Configuration and Extensibility 5-235


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.

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.

5-236 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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 for
# 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 BBoxLimi
# The supported modes are the following (FileRef is the default mode):
# Full: The complete Node information is suppressed. Same behavior as no read access
# FileRef: Any file references are removed. Same behavior as no read access on the at
# 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, zma
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.

AW008 4.2 Configuration and Extensibility 5-237


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

• 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

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.

5-238 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

• Workflow Server
Installs the server-side definitions for workflow.
Select Active Workspace→Server Extensions→Workflow Server.

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.

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.

AW008 4.2 Configuration and Extensibility 5-239


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

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.
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 PLM 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

5-240 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.

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.
o 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.

o 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.

AW008 4.2 Configuration and Extensibility 5-241


Chapter
Chapter 5: 5: Configuring
Configuring Active
Active Workspace
Workspace features
features

o EPM-notify-signoffs
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.

o 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

o 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

5-242 Configuration and Extensibility AW008 4.2


Configuring Active Workspace features

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.
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.

AW008 4.2 Configuration and Extensibility 5-243


Chapter 6: 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.

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-probing."
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:
1) The Teamcenter administrator has installed the Active Workspace server extension for
Visualization.
2) Standalone Lifecycle Visualization software is installed on the local computer.

AW008 4.2 Configuration and Extensibility 6-1


Chapter
Chapter 6: 6: Configuring
Configuring Active
Active Workspace
Workspace in other
in other products
products

3) 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.

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

6-2 Configuration and Extensibility AW008 4.2


Configuring Active Workspace in other products

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.

Host Active Workspace in 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.

• Remove Teamcenter Adobe CC Integration.

• Specify the URL for accessing Active Workspace from the Adobe applications.

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.

2. Download the Adobe ExMan Command Line Tool ZIP file from
https://partners.adobe.com/exchangeprogram/creativecloud/support/exman-com-line-tool.html.
You can download the version for Windows or for Macintosh as appropriate. 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 or ExManCmd_mac.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.

AW008 4.2 Configuration and Extensibility 6-3


Chapter
Chapter 6: 6: Configuring
Configuring Active
Active Workspace
Workspace in other
in other products
products

6. Close all active Adobe applications that are compatible with the extension.

7. For Windows, open the command prompt and enter the following command:
ExManCmd /install AWIntegration.zxp

For Mac, open Terminal and enter the following command:


./ExManCmd --install AWIntegration.zxp

Remove Teamcenter Adobe CC Integration

1. For Windows, open the command prompt and for Mac, open Terminal.

2. Change the directory to the location where you saved the ExManCmd utility, for example,
ExMan_root.

3. For Windows, enter the following command:


ExManCmd /remove "Teamcenter"

For Mac, open Terminal and enter the following command:


./ExManCmd --remove "Teamcenter"

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:

• For Windows:
C:\Users\user_name\AppData\Roaming\Siemens\Teamcenter\AdobeExtension

• For Mac: ~/Library/Application Support/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.

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.

6-4 Configuration and Extensibility AW008 4.2


Configuring Active Workspace in other products

Example
For Windows:
<WorkingDirectory>c:\temp</WorkingDirectory>

For Mac:
<WorkingDirectory>/tmp/com.mb.teamcenter.awc/</WorkingDirectory>

5. Save and close the config.xml file.

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.

• 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.

AW008 4.2 Configuration and Extensibility 6-5


Chapter
Chapter 6: 6: Configuring
Configuring Active
Active Workspace
Workspace in other
in other products
products

• 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
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.

6-6 Configuration and Extensibility AW008 4.2


Configuring Active Workspace in other products

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
PLM recommends changing the preference definition to have Group, Role, or User
protection scope, as described in the Environment Variables Reference.

AW008 4.2 Configuration and Extensibility 6-7


Chapter 7: 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.

AW008 4.2 Configuration and Extensibility 7-1


Chapter
Chapter 7: 7: Administration
Administration

ac_data_exporter

Exports all of the Access Controls functions and rules for loading into a different
database. This creates the file that can be imported with the ac_data_loader
-importFile option. The utility locates the Access Controls functions, rules, operations,
and operation groups and writes them to the import file.
SYNTAX
ac_data_exporter -u=user-ID {-p=password | -pf=password-file} -g=group
-exportFile=path-to-output-file -h
ARGUMENTS
-u
Specifies the Teamcenter administrator's 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 Teamcenter administrator'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.
-pf
Specifies the password file.
This argument is mutually exclusive with the -p argument.
-g
Specifies the group associated with the user.
If used without a value, the user's default group is assumed.
-exportFile
Specifies the path to the file containing the exported data. If no output file path is
specified, no file is exported.
-h
Displays help for the utility.

7-2 Configuration and Extensibility AW008 4.2


Administration

am_rule_test_harness

The am_rule_test_harness utility uses an input file that contains test information and
outputs the test results embedded inside of the Administration Data Documentation
report. While this utility is running, it searches for specified objects and evaluates
whether the operations are granted or denied for a given user, group, role, and
optionally project combination.
The Administration Data Documentation report also contains the Access Manager (or
Access Controls) rules, Organization, and other categories of administration data,
as each of these categories can have an impact on these rules or these rules can
impact access to the administration data in these categories. To view the outcome
of this utility:
1. Open the output-directory/AdminDataReport/index.html in a browser.

2. Click either Access Manager or Access Controls.

3. Click Test Results.

The utility evaluates Access Manager rules or Access Controls rules depending on the
setting of the TC_enable_access_control preference:

Note
When the Access Manager rule tree contains the Current Group Is
condition, the am_rule_test_harness utility uses the group from the current
logged-on user and not the group specified in the input XML file.

For this preference These rules are


value evaluated
true Access Controls rules
false Access Manager rules

SYNTAX
am_rule_test_harness -u=user-id {-p=password | -pf=password-file} [-g=group]
-inputFile=path-name-to-input-file -outputDir=path-name-to-output-file
-adminDataTypes -listTypes [-h]
ARGUMENTS
-u
Specifies the user ID.
This is generally infodba or another user with administration privileges.

AW008 4.2 Configuration and Extensibility 7-3


Chapter
Chapter 7: 7: Administration
Administration

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.

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.

This argument is mutually exclusive with the -p argument.

-g
Specifies the group associated with the user.

If used without a value, the user's default group is assumed.

-inputFile
Specifies the full path to the Access Manager/Access Controls test harness input
XML file.

Locate sample input files for Access Manager


(am_rule_test_harness_sample_input.xml) and Access Controls
(ac_rule_test_harness_sample_input.xml) in TC_ROOT\bin.

Note
To include children of Form, you must use the Form class for the search
criteria.

-outputDir
Specifies the full path to where the Access Manager/Access Controls test harness
output file is generated.

When running this utility for Access Controls, the output file is an HTML report. To
display the test results, click the Access Controls tile.

The utility also copies all data used for the report into this directory to ensure you have a
copy of all related data: report input file, report output file, exported administrative data
from the environment, Administration Data Documentation report, and utility log file.

7-4 Configuration and Extensibility AW008 4.2


Administration

-adminDataTypes
Specifies a comma-separated list of administration data types to be exported.
Following are the administration data types available for export:
• AccessManager

• Organization

• Preferences

• Projects

• RevisionRules

• SavedQueries

• Stylesheets

• Subscriptions

• WorkflowTemplates

Use all as the value to export all administration data types.


-listTypes
Lists all supported administration data types that can be specified in the
-adminDataTypes option. If specified, this option does not export any administration
data or run any test harness test.
-h
Displays help for this utility.
EXAMPLES
The am_rule_test_harness utility requires an XML input file, which specifies the user,
group, role combination, object, and privileges to be tested.
am_rule_test_harness -u=johnadmin -p=passjohn -g=dba
-inputFile=C:\inputDir\am_rule_test_harness_input.xml
-outputDir=C:\output

• Access Manager

AW008 4.2 Configuration and Extensibility 7-5


Chapter
Chapter 7: 7: Administration
Administration

Example
Following is a sample input XML file to test Access Manager rules.

Following is a list of access privileges:


ADMINISTER ADA
ADD CONTENT ASSIGN TO PROJECT
LICENSES
BATCH PRINT CHANGE CHANGE OWNER
CICO (also known as
COPY CREATE
check-in/check-out)
DELETE DEMOTE DIGITALLY SIGN
EFFECTIVITY EXPORT IMPORT
IP ADMIN IP CLASSIFIER ITAR ADMIN
ITAR CLASSIFIER MANAGE VARIABILITY PDF CONTROL
PROMOTE PUBLISH READ
REMOVE FROM
REMOTE CHECKOUT REMOVE CONTENT
PROJECT
SUBSCRIBE TRANSFER IN TRANSFER OUT
VOID DIGITAL
TRANSLATION UNMANAGE
SIGNATURE
WRITE CLASSIFICATION
VIEW MARKUP WRITE
ICO

• Access Controls

7-6 Configuration and Extensibility AW008 4.2


Administration

Example
Following is a sample input XML file to test Access Controls operations.

Following is a list of Foundation access operations:


Administer_ADA_
ADD_CONTENT ASSIGN_TO_PROJECT
Licenses
BATCH_PRINT CHANGE CHANGE_OWNER
CICO (also known as
COPY CREATE
check-in/check-out)
DELETE DEMOTE DIGITAL_SIGN
EFFECTIVITY EXPORT IMPORT
IP_ADMIN IP_Classifier ITAR_ADMIN
ITAR_Classifier MANAGE_VARIABILITY MARKUP
PDF_CONTROL PROMOTE PUBLISH
READ REMOTE_CICO REMOVE_CONTENT
REMOVE_FROM_
SUBSCRIBE TRANSFER_IN
PROJECT
TRANSFER_OUT TRANSLATION UNMANAGE
VOID_DIGITAL_
WRITE WRITE_ICOS
SIGNATURE
fnd0ApplySignature fnd0GetDiagramMembers fnd0ModifyTargetList
fnd0RemoveOccurrence fnd0ReplaceOccurrence fnd0Revise
fnd0SaveAs fnd0SaveDiagram fnd0VoidSignature
revise saveAs

AW008 4.2 Configuration and Extensibility 7-7


Chapter
Chapter 7: 7: Administration
Administration

am2ac_rule_converter

Converts the hierarchical Access Manager rules to flat Access Controls rules by
exporting and translating the Access Manager rules in the database into Access
Controls rules and exporting the Access Controls rules into text files.

Example
The following command migrates Access Manager rules, including workflow
and object ACL references, into Access Controls rules. The new Access
Controls rules are in the ac_rules.txt under the output directory. The new
Access Controls functions are in the ac_functions.txt file under the output
directory.
am2ac_rule_converter -u=infodba -p=pw_infodba -g=dba
-outputDir=output-directory -format=CSV
-rule_category=all -honor_am_default_grant=true
-add_mm_operation_rule=true -generate_report=true

SYNTAX
am2ac_rule_converter -u=user-id -p=password -g=dba
-outputDir=output-directory -format=CSV -rule_category=all
-honor_am_default_grant=true
-add_mm_operation_rule=true|false
-generate_report=true|false -h
ARGUMENTS
-u
Specifies the Teamcenter administrator's 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 Teamcenter administrator'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.

7-8 Configuration and Extensibility AW008 4.2


Administration

If used without a value, the user's default group is assumed.


-outputDir
Specifies the output directory.
-format
Specifies the file format, either CSV or XML:
• CSV
The CSV file generated can be used further to import as Access Controls rules by
using the ac_data_loader utility.

• XML
The XML file is for the viewing purpose only and cannot be imported directly to
Teamcenter.

-rule_category=all
Specifies the categories of access rules exported from the environment if existing rule
file(s) are not supplied. The default value is AM_Rule.
• AM_Rule (default)
Specifies Access Manager rules only are exported and converted into Access
Controls rules.

• all
Specifies all categories (Access Manager rules, object ACL rules, and Workflow
ACL rules) of rules are exported and converted into Access Controls rules.

• AM_And_Object
Specifies Access Manager rules and object ACL rules only and convert them into
Access Controls rules.

• AM_And_Workflow
Specifies Access Manager rules and Workflow ACL rules only and convert them
into Access Controls rules.

-honor_am_default_grant=true|false
Specifies whether to add Access Controls rules to honor AM default grant. The default
value is false.
-add_mm_operation_rule=true|false
Specifies whether to add Access Controls rules for metamodel operations, such as
Revise and Save As. The default value is false.
-generate_report=true|false
Specifies whether to generate a migration report. A migration report is generated
under report $outputDir/report directory. The default value is false.

AW008 4.2 Configuration and Extensibility 7-9


Chapter
Chapter 7: 7: Administration
Administration

-h
Displays help for the utility.
WARNINGS
• The message "Warning: Invalid Rule Branch" indicates you have rules in
Access Manager that can never be reached. These rules are not migrated to
Access Controls because the rules would always be false.

• If any custom AM conditions or accessor types are used in AM rules, but not
mapped into Access Controls functions in base Access Controls functions
(TC_DATA/base_ac_functions.txt), a warning is raised that the translation is not
complete when running the am2ac_rule_converter migration utility. If you receive
this warning, return to the 'Handling Custom Conditions and Accessor Types'
step, add the missing custom conditions and accessor types, and then re-attempt
this step.

EXAMPLES
To migrate Access Manager rules, including workflow and object ACL references, into
Access Controls rules:
am2ac_rule_converter -u=infodba -p=pw_infodba -g=dba
-outputDir=output-directory -format=CSV -rule_category=all
-honor_am_default_grant=true
-add_mm_operation_rule=true -generate_report=true

The new Access Controls rules are in the ac_rules.txt under the output directory. The
resulting Access Controls functions are in the ac_functions.txt file under the output
directory.

7-10 Configuration and Extensibility AW008 4.2


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.
If the version of Solr is updated, but your indexed data has not changed, you can move
the indexed data from the previous version without reindexing.
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.
Use this approach to remerge Solr and Teamcenter schemas and to update the index.

AW008 4.2 Configuration and Extensibility 7-11


Chapter
Chapter 7: 7: Administration
Administration

-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.
-h
Displays help for this utility.
• To start the synchronization flow to refresh data objects:
awindexerutil -u=admin -p=pwd -g=group -refresh

• To 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

• To start reindexing the delta of changes, updates all new, modified, and deleted
types and properties.
awindexerutil -u=admin -p=pwd -g=group –delta

• Starts reindexing of the delta of changes. All new, modified, and deleted types
and properties are updated. For types that are newly added, only those objects
last modified in the specified date range are indexed.
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”

EXAMPLES
• To start the synchronization flow to refresh data objects:
awindexerutil -u=admin -p=pwd -g=group -refresh

• To 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

7-12 Configuration and Extensibility AW008 4.2


Administration

• To start reindexing the delta of changes, updates all new, modified, and deleted
types and properties.
awindexerutil -u=admin -p=pwd -g=group –delta

• Starts reindexing of the delta of changes. All new, modified, and deleted types
and properties are updated. For types that are newly added, only those objects
last modified in the specified date range are indexed.
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”

AW008 4.2 Configuration and Extensibility 7-13


Chapter
Chapter 7: 7: Administration
Administration

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.

delete Finds the BOMIndexAdminData objects in the input file and


marks them as deleted.

7-14 Configuration and Extensibility AW008 4.2


Administration

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
Following is 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

Keep in mind the following:


• 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.

• 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 are optional functions you can apply. Following are the available
subscribers:
o MMV
Designates 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.

o VDS
Designates that this product configuration is indexed for viewing using the
Visualization Data Server. This makes the structure available for faster
visualization. Use of the VDS flag requires deployment of the Visualization
Data Server.

AW008 4.2 Configuration and Extensibility 7-15


Chapter
Chapter 7: 7: Administration
Administration

You cannot use the MMV flag and the VDS flag at the same time.

• If a closure rule is applied for a configuration, content in the structure (but excluded
by the closure rule) does not appear in where used query results for top-level
contexts.

EXAMPLE
Run the following command to create 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:
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.

7-16 Configuration and Extensibility AW008 4.2


Administration

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
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

AW008 4.2 Configuration and Extensibility 7-17


Chapter
Chapter 7: 7: Administration
Administration

• 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

• 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.

The converter generates the following warning messages:


• Unsupported command line parameters.

7-18 Configuration and Extensibility AW008 4.2


Administration

• Certain column in csv file is not mapped in mapping file.


• Required attribute is empty.

AW008 4.2 Configuration and Extensibility 7-19


Chapter
Chapter 7: 7: Administration
Administration

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.
-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

7-20 Configuration and Extensibility AW008 4.2


Administration

-h
Displays the help for this utility.

AW008 4.2 Configuration and Extensibility 7-21


Chapter
Chapter 7: 7: Administration
Administration

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.
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.

7-22 Configuration and Extensibility AW008 4.2


Administration

-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

AW008 4.2 Configuration and Extensibility 7-23


Chapter
Chapter 7: 7: Administration
Administration

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
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

7-24 Configuration and Extensibility AW008 4.2


Administration

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.

This argument is mutually exclusive with the -p argument.

-g
Specifies the group associated with the user.

AW008 4.2 Configuration and Extensibility 7-25


Chapter
Chapter 7: 7: Administration
Administration

-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

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:

7-26 Configuration and Extensibility AW008 4.2


Administration

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

AW008 4.2 Configuration and Extensibility 7-27


Chapter
Chapter 7: 7: Administration
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.
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.

7-28 Configuration and Extensibility AW008 4.2


Administration

-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"

Note
A parameter containing spaces, such as Validation Administration in the
preceding example, must be enclosed in double quotation marks (").

AW008 4.2 Configuration and Extensibility 7-29


Chapter
Chapter 7: 7: Administration
Administration

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
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

7-30 Configuration and Extensibility AW008 4.2


Administration

ac_data_loader

Use the ac_data_loader utility to:


• Load the Access Controls data (default functions and custom functions and rules)
and regenerate expressions.

• Regenerate expressions only.

• Clear Access Controls data from a Teamcenter database.


SYNTAX
ac_data_loader -u=user-ID {-p=password | -pf=password-file} -g=group
-clear -clearAll=true|false -msUrl=microservicesURL -load
-functionFile=path-to-ac-functions-file
-ruleFile=path-to-ac-rules-file -loadBaseFunctions=true|false
-importFile=path-to-import-file -h
ARGUMENTS
-u
Specifies the Teamcenter administrator's 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 Teamcenter administrator'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.
-pf
Specifies the password file.
This argument is mutually exclusive with the -p argument.
-g
Specifies the group associated with the user.
If used without a value, the user's default group is assumed.
-clear
Clears Access Controls functions and rules. Teamcenter must be in Access Manager
(AM) mode for this to be allowed; otherwise, an error is generated.

AW008 4.2 Configuration and Extensibility 7-31


Chapter
Chapter 7: 7: Administration
Administration

-clearAll=true|false
Clears all pre-existing Access Controls data, including operations and operation
groups. Teamcenter must be in Access Manager (AM) mode for this to be allowed;
otherwise, an error is generated. Default is false.
-msUrl
Specifies the Teamcenter Access Controls microservices URL. This is required when
-load is specified.
Obtain the microservicesURL value from the Microservice component in Deployment
Center.
You can obtain the microservicesURL value from the Microservice component, for
example:
msUrl=http://Microservices-Host:Dispatcher-Port/acadmin/v1/general/regenerate

-load
Specifies the Access Controls function file and/or rule file contents to be loaded.
-functionFile
Specifies the path to the Access Controls functions file, for example,
ac_functions.txt. If no argument is specified, no functions are loaded.
-ruleFile
Specifies the path to the Access Controls rules file, for example, ac_rules.txt. If
no argument is specified, no rules are loaded.
-loadBaseFunctions=true|false
Indicates if the base Access Controls functions should also be loaded. Default is
true.
-importFile
Specifies the path to a file exported using ac_data_exporter.

Note
When this option is specified, -functionFile, -ruleFile, and
-loadBaseFunctions are ignored.

-h
Displays help for the utility.
EXAMPLES
• To load your custom rules and functions:

ac_data_loader -u=user-ID -p=password -g=group


-clear -clearAll=true -msUrl=microservicesURL
-load -functionFile=custom_ac_functions_file_path
-ruleFile=custom_ac_rules_file_path
-loadBaseFunctions=true

7-32 Configuration and Extensibility AW008 4.2


Administration

• To remove all existing Access Controls configuration from your database:

ac_data_loader -u=user-ID -p=password -g=group


-clear -clearAll=true

• To regenerate expressions for existing Access Controls data:

ac_data_loader -u=user-ID -p=password -g=group


-msUrl=microservicesURL

• To load migrated Access Controls function and rule files plus base functions and
regenerate expressions:

ac_data_loader -u=user-ID -p=password -g=group


-msUrl=microservicesURL -load
-functionFile=custom_ac_functions_file_path
-ruleFile=custom_ac_rules_file_path -loadBaseFunctions=true

• To load a file exported using ac_data_exporter:

ac_data_loader -u=user-ID -p=password -g=group


-load
-importFile=import_file_path -msUrl=microservicesURL

AW008 4.2 Configuration and Extensibility 7-33


Chapter
Chapter 7: 7: Administration
Administration

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.

-g
Specifies the group associated with the user.

7-34 Configuration and Extensibility AW008 4.2


Administration

-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
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).

AW008 4.2 Configuration and Extensibility 7-35


Chapter
Chapter 7: 7: Administration
Administration

• Staring in the fourth row, define the entries as follows:


o 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

o 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

o 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=:
KEY_VALUE_SEPARATOR=,
RULE_SEPARATOR=|
keys: item_id=REQ-000001 | rev_rule:Any Status; Working | topline_rev:A

7-36 Configuration and Extensibility AW008 4.2


Administration

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

AW008 4.2 Configuration and Extensibility 7-37


Chapter
Chapter 7: 7: Administration
Administration

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
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

7-38 Configuration and Extensibility AW008 4.2


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]: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 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

AW008 4.2 Configuration and Extensibility 7-39


Chapter
Chapter 7: 7: Administration
Administration

-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

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:
o Properties such as object name and type provide information on the failed
objects.

o The TC XML and Solr XML files are generated and saved for debugging.

o Syslog information.

o 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

7-40 Configuration and Extensibility AW008 4.2


Administration

• 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
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:

o 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

o uid_prop.txt

AW008 4.2 Configuration and Extensibility 7-41


Chapter
Chapter 7: 7: Administration
Administration

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.

o 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.

o 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
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:

7-42 Configuration and Extensibility AW008 4.2


Administration

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.
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

AW008 4.2 Configuration and Extensibility 7-43


Chapter
Chapter 7: 7: Administration
Administration

• 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

7-44 Configuration and Extensibility AW008 4.2


Administration

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
(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*

AW008 4.2 Configuration and Extensibility 7-45


Chapter
Chapter 7: 7: Administration
Administration

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"

7-46 Configuration and Extensibility AW008 4.2


Administration

smlutility

Use this command to create or delete search indexing views for classification.
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
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.

AW008 4.2 Configuration and Extensibility 7-47


Chapter
Chapter 7: 7: Administration
Administration

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.
-delimiter
Specifies a user-defined delimiter.
-recursive
Specifies that the index view be created (or deleted) for all subclasses.

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 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.

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.

7-48 Configuration and Extensibility AW008 4.2


Administration

After installation, the workspace file workspace_TcActiveAdminWorkspace.json will be added to


the STAGE\src\solution directory of your Active Workspace development environment.

What applications does it contain?


Following are the applications included in the active admin workspace by default:
• XRT Editor
Use the XRT editor to view and modify style sheets from within Active Workspace.

• Logical Objects
Use logical objects to create a single runtime obect that gathers properties from various related
objects.

• People
Use the people tile to manage your organization. Create, modify, and remove groups, roles,
and users.

• Client configuration
Use client configuration to view the defined workspaces and pages.

• Preferences
Use the preferences tile to manage your Teamcenter preferences from within Active Workspace.

• Viewer administration
Use viewer administration to help troubleshoot your active visualization installation.

• Access Controls
This tile will only appear if you are using the optional Access Controls instead of the default
Access Manager rule tree.
Use Access Controls to configure the rules-based security for your site. This is a
negatively-biased system, meaning that unless a user is specifically granted permissions for
an object, they have none.

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

AW008 4.2 Configuration and Extensibility 7-49


Chapter
Chapter 7: 7: Administration
Administration

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.

• 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

7-50 Configuration and Extensibility AW008 4.2


Administration

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.
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.

• Awp0DatasetTypeToBeIndexedInline

AW008 4.2 Configuration and Extensibility 7-51


Chapter
Chapter 7: 7: Administration
Administration

Identifies the dataset to be indexed along with the business object. The value has the following
format:
<INHERIT | NO_INHERIT>:RelationName:DatasetType

By default, the value INHERIT:*:FullText is set for the SpecElementRevision object type.

Note
The scope for this constant is SpecElementRevision and its subtypes. It does not
apply to any other object type and is not usable for any other object type.
This business object constant is strictly for 1:1 relations.
To avoid behavior inheritance to subtypes, specify NO_INHERIT, for example,
NO_INHERIT:*:FullText.

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

7-52 Configuration and Extensibility AW008 4.2


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:

o object_type – The type of object.

o due_date – The date the object is due.

o fnd0Assignee – The user to whom the task is assigned.

o fnd0Priority – The priority of the task.

o 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 PLM 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 PLM Software recommends that you assign
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.

AW008 4.2 Configuration and Extensibility 7-53


Chapter
Chapter 7: 7: Administration
Administration

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:
o Only attribute, compound, table, reference, and publication record properties can be indexed.
Indexing of runtime and relation properties is not supported.

o 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.

o 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.

o To index reference properties, the Awp0SearchRefTypeNames and


Awp0SearchPropFromRefType property constants must contain valid values.

o 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:

7-54 Configuration and Extensibility AW008 4.2


Administration

o 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.

o 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.

o 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:
o 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.

o 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.

AW008 4.2 Configuration and Extensibility 7-55


Chapter
Chapter 7: 7: Administration
Administration

The default properties of a change object that can be filtered are:

o creation_date – The date the change was created.

o CMMaturity – The degree of completion of the overall change process (its Maturity).

o object_type – The type of change.

o cm0Analyst – The user assigned as the analyst.

o cm0ChangeSpecialist1 – The user assigned as the change specialist.

o 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 PLM 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 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.

7-56 Configuration and Extensibility AW008 4.2


Administration

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.
1. An ItemRevision has a subtype Awp0TestItemRevision with a Master form
Awp0TestItemRevisionMaster:

AW008 4.2 Configuration and Extensibility 7-57


Chapter
Chapter 7: 7: Administration
Administration

2. The Master form has two properties:

3. Awp0TestItemRevMasterS is the storage class name for the form.

7-58 Configuration and Extensibility AW008 4.2


Administration

4. Awp0TestItemRevMasterS is a compound property that references the data file of the Master
form.

AW008 4.2 Configuration and Extensibility 7-59


Chapter
Chapter 7: 7: Administration
Administration

5. Configure the Master form storage class property awp0MasterFormStorageClasswith the


property constants that enable indexing, searching, and filtering.

7-60 Configuration and Extensibility AW008 4.2


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.

Be sure to set the index, search and filter property constants on the new compound property.

AW008 4.2 Configuration and Extensibility 7-61


Chapter
Chapter 7: 7: Administration
Administration

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.

What do audit logs look like?

As a DBA user, you can view audit logs using the Audit Logs tab in Active Workspace.

7-62 Configuration and Extensibility AW008 4.2


Administration

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.

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:

AW008 4.2 Configuration and Extensibility 7-63


Chapter
Chapter 7: 7: Administration
Administration

o 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.

o 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

• Reason

• Group Name

• Role Name

• Secondary Object Display Name

• Secondary Object Type

To remove a field from the display:

7-64 Configuration and Extensibility AW008 4.2


Administration

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.

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

AW008 4.2 Configuration and Extensibility 7-65


Chapter
Chapter 7: 7: Administration
Administration

• 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

• 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

7-66 Configuration and Extensibility AW008 4.2


Administration

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
EPMJob/EPMTask/ AuditLogForWorkflow
PerformSignoffTask
Scp0Regulation/ AuditLogForSubscmpl
Scp0SubstanceCmplResult/
Scp0Exemption/
Mat1Substance

AW008 4.2 Configuration and Extensibility 7-67


Chapter
Chapter 7: 7: Administration
Administration

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.

Note
Siemens PLM 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:

7-68 Configuration and Extensibility AW008 4.2


Administration

• 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 PLM 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.

A preference definition along with all of its preference instances are together considered to be a
preference.

Definition 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 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.

AW008 4.2 Configuration and Extensibility 7-69


Chapter
Chapter 7: 7: Administration
Administration

Site A preference instance created at the site location applies to everyone logged
in to Teamcenter unless overridden.
There can be only one site instance.

Group Any preference instances created at the group location apply only to users who
are currently logged in as that group, and they supercede site preferences.
There can be one group instance created for each group.

Role Any preference instances created at the role location apply only to users who
are 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.

User Any preference instances created at the user location apply only to that user,
and they supercede site, group, and role preferences.
There can be one user instance created for each user.

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 Scope Determines where and by whom it can be instantiated.
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.

7-70 Configuration and Extensibility AW008 4.2


Administration

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.

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.

AW008 4.2 Configuration and Extensibility 7-71


Chapter
Chapter 7: 7: Administration
Administration

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.

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.

7-72 Configuration and Extensibility AW008 4.2


Administration

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.
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 preferences Conner: ConnersIRSum
Role preferences Manager: IRSumMgr
Designer: IRSumDes
Group preferences Engineering: IRSumTech
Manufacturing: IRSumTech
Site preference value: ItemRevSum
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.

AW008 4.2 Configuration and Extensibility 7-73


Chapter
Chapter 7: 7: Administration
Administration

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.

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.

7-74 Configuration and Extensibility AW008 4.2


Administration

User - Group / Role Preference instance build-up Resulting style sheet


Alice: none
Manager: IRSumMgr
Alice — Engineering / Manager IRSumMgr
Engineering: IRSumTech
Site: ItemRevSum
Ted: none
Manager: IRSumMgr
Ted — Manufacturing / Manager IRSumMgr
Manufacturing: IRSumTech
Site: ItemRevSum
Sue: none
Manager: IRSumMgr
Sue — Testing / Manager IRSumMgr
Testing: none
Site: ItemRevSum
Bob: none
Designer: IRSumDes
Bob — Engineering / Designer IRSumDes
Engineering: IRSumTech
Site: ItemRevSum
Carol: none
Viewer: none
Carol — Engineering / Viewer IRSumTech
Engineering: IRSumTech
Site: ItemRevSum
Pat: none
Viewer: none
Pat — Testing / Viewer ItemRevSum
Testing: none
Site: ItemRevSum
Conner: ConnersIRSum
Conner — Engineering / Manager: IRSumMgr
ConnersIRSum
Manager Engineering: IRSumTech
Site: ItemRevSum
Conner: ConnersIRSum
Viewer: none
Conner — Testing / Viewer ConnersIRSum
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.

• 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.

AW008 4.2 Configuration and Extensibility 7-75


Chapter
Chapter 7: 7: Administration
Administration

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.

• Navigate directly to the page with the host:port/awc/#/showPreferences URL.


This option is only available if your current workspace allows it.

7-76 Configuration and Extensibility AW008 4.2


Administration

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.
Search and modify preferences
Create and override site, system, group, role, and user preference
Administrator
instances
Delete preference instances and definitions
Search and modify preferences
Group Administrator Create and override group, role, and user preference instances
within your group
Search existing preferences
User
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.
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.

AW008 4.2 Configuration and Extensibility 7-77


Chapter
Chapter 7: 7: Administration
Administration

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.

7-78 Configuration and Extensibility AW008 4.2


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

Select your working context in the Organization panel, if available.

AW008 4.2 Configuration and Extensibility 7-79


Chapter
Chapter 7: 7: Administration
Administration

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
Overrides all other location
User Can override at any location.
values.
Can override at group and role Will override Site and Group
Role
locations. location values.
Can only override at group
Group Will override Site location values.
locations.
Is overridden by any other
Site Can not override.
location

1. (optional) Filter the preference list.

2. Select the preference you want to override.

3. Open the New command stack , and then choose Override.

7-80 Configuration and Extensibility AW008 4.2


Administration

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 to work with the ItemRevision class of objects by default. You can add
additional object types by changing these preferences.

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.
When creating items instead of revisions, you are responsible for suppressing the revisions
from the UI and indexing the Items instead.

Caution
Siemens PLM Software does not recommend that you present both items and
revisions to your users.

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.

AW008 4.2 Configuration and Extensibility 7-81


Chapter
Chapter 7: 7: Administration
Administration

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

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.

7-82 Configuration and Extensibility AW008 4.2


Administration

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.

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 Developer References for Customization
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.

AW008 4.2 Configuration and Extensibility 7-83


Chapter
Chapter 7: 7: Administration
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.

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">

7-84 Configuration and Extensibility AW008 4.2


Administration

<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.

Your results will vary, but following is an example of the results.


[email protected] (Active Workspace)
[email protected] (Apollo Web Application Framework)
Client Build: Tue May 28 2019 00:07:46 GMT-0400 (Eastern Daylight Time)
Server Build: aw4.2.0.12x.2019052800;Tuesday May 28, 2019;00:26:45.095 Eastern Daylig
Server Version: P.12.2.0.20190520.00
Site Id: -1871684287
Database: tc
User Session Logfile: tcserver.exe2018a157.syslog

AW008 4.2 Configuration and Extensibility 7-85


Chapter
Chapter 7: 7: Administration
Administration

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.

7-86 Configuration and Extensibility AW008 4.2


Administration

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 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.

• 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 Use the Data Share Manager to manage large file uploads with
exceeded max limit Teamcenter.
error during file uploads

AW008 4.2 Configuration and Extensibility 7-87


Chapter
Chapter 7: 7: Administration
Administration

Issue Possible resolution


Users working with Active The Active Workspace administrator should verify that the tcSOAURL
Workspace experience parameter is set correctly in the web.xml file.
403 errors when
accessing thumbnails, 1. Open the web.xml file in a text editor. The web.xml file located in
files, or the viewer. (The the web application file (awc.war for Java or awc.zip for .NET).
403 error may only be
visible in the network page 2. Search for the following:
of the browser’s developer <filter-name>TCLoginVerifier</filter-name>
tools.)
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 Ensure the following:
not display the same
language (locale) as the 1. Set the operating system of the computer running Active
Teamcenter server. Workspace 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.
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.

7-88 Configuration and Extensibility AW008 4.2


Administration

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 PLM Software, if analytics is enabled.

Example
*ScriptingTime: "xxx.xxms"

Troubleshooting the gateway and artifact services


These services typically run as Windows tasks using Task Scheduler. They are both required to
use Active Architect.
If you need to stop or start either services, each of their directories contain scripts for this: stop.cmd
and start.cmd.
• The declarative artifact service
TC_ROOT\aws2\stage\out\artifactservice
Go to host:3001 to verify that the artifact service is running.
If the service is running, you will see the text Generator server active!

• The gateway service


TC_ROOT\aws2\stage\out\activeworkspace

AW008 4.2 Configuration and Extensibility 7-89


Chapter
Chapter 7: 7: Administration
Administration

Go to host:3000 to verify that the gateway service is running.


If the services is running, you will see an Active Workspace Sign in page.

Each of these directories also contain a scheduleTask.cmd file that creates an ONSTART task.

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.
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. 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.

4. Turn off all firewalls. If this is not possible, verify that all ports and port-ranges declared through
TEM have been opened through firewalls.

5. 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 using the appropriate startup script (and not as a
Windows Service).

7-90 Configuration and Extensibility AW008 4.2


Administration

d. Start the Visualization Server Manager.

6. Attempt to view 3D content in Active Workspace. A failure is expected.

7. Does the message “Vis Server Manager is ready!” appear in the Visualization Server Manager
console within two minutes of startup?
• Yes – Continue.

• No –
o 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.

o 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.

o 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.

o Verify that the appropriate Microsoft Visual Studio Redistributables are installed. (They
are typically installed automatically).

AW008 4.2 Configuration and Extensibility 7-91


Chapter
Chapter 7: 7: Administration
Administration

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.

o Verify that the Visualization Pool Assigner is running in the web tier.
a. Open the web tier’s console or output logs.

b. Does the Web Tier server console/logs contain a message with the text
“VisPoolProxy.init() launchmode is: ASSIGNER”?
■ Yes – Continue

■ No – The Visualization Pool Assigner is not running. Launch TEM and install the
Visualization Pool Assigner.

o 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.

o Purge VisView's registry areas.


a. Terminate the Visualization Server Manager.

b. Run Windows' Registry Editor (regedit.exe).

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.

7-92 Configuration and Extensibility AW008 4.2


Administration

o Contact vendor.

8. Does a “The visualization servers are busy” error message appear in Active Workspace when
trying to view 3D content?
• Yes –
o 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.

9. Is a new VisView process started when you attempt to load a model into Active Workspace?
• Yes –
o Did the new process terminate a few seconds after starting?
■ Yes – Contact vendor.

■ No – Continue.

• No –
o Ensure that theVisPoolProxy.peerNodes in the jetty/jettyservice.properties file is
pointing at the correct Visualization Pool Assigner.

o If the problem persists, contact vendor.

10. Is this a Single Sign On (SSO) environment?

AW008 4.2 Configuration and Extensibility 7-93


Chapter
Chapter 7: 7: Administration
Administration

• Yes – Double-check the Deployment Guide for any missed steps in the configuration section,
such as adding the ‘/’ at the end of the soaPath in the awc.war file’s web.xml file.

• No – Continue.

11. 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_ENABLE=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.

12. 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.

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

7-94 Configuration and Extensibility AW008 4.2


Administration

• 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.

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.

13. 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 –
o Is the value of “System Supports OpenGL Version” 1.2 or greater?
■ Yes – Continue

■ No –

AW008 4.2 Configuration and Extensibility 7-95


Chapter
Chapter 7: 7: Administration
Administration

◊ 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.

14. 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.
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 ...” .

Issue Possible resolution


1) Graphics in the viewer This is an indication that the graphics driver on the Visualization
tab display extraneous Server 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.

7-96 Configuration and Extensibility AW008 4.2


Administration

Issue Possible resolution

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
a touch screen. You can use Internet Explorer to drag measurement labels by
pressing and holding the label. In other browsers on the Microsoft
Surface, you 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.)

AW008 4.2 Configuration and Extensibility 7-97


Chapter
Chapter 7: 7: Administration
Administration

Issue Possible resolution

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
logging.channels.BBoxValidatorChannel.path=${system.tempDir}/BBoxValidator.log
logging.channels.BBoxValidatorChannel.rotateOnOpen=true
logging.channels.BBoxValidatorChannel.purgeAge=0 seconds
logging.channels.BBoxValidatorChannel.formatter=FileFormatter
# 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 Solution


may display a structure
differently than it is shown in The PSEShowUnconfigdVarPref preference must be set to false
Active Workspace. for Lifecycle Visualization to show the same structure as Active
Workspace when variants are applied. This can be done using the
This may occur when Active Edit→Options menu command in the rich client.
Workspace configures its
structures using a saved The issue can occur depending on the value of the
variant rule (SVR) and PSEShowUnconfigdVarPref preference. The Structure Manager
then interoperates the application within the rich client allows for setting a Show
configured structure to Unconfigured Variants flag. When this flag is true, BOM lines that
Lifecycle Visualization. would normally be removed given the current variant configuration are
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.

7-98 Configuration and Extensibility AW008 4.2


Administration

Issue Possible resolution

Setting the PSEShowUnconfigdVarPref preference to false


causes BOM lines for configurations (other than the current one)
to be 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
11 to run Active Workspace You see the following error:
hosted in stand-alone You are using an unsupported browser.
In order to use Teamcenter Active Workspace, you must use a browser that
visualization. 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.

7) The Visualization Pool The Visualization Pool Assigner was likely mistakenly configured to
Assigner repeatedly have a peer Visualization Pool Assigner. Peer Visualization Pool
adds the error message Assigners are intended for load balanced configurations where
"Could not connect there is more than one Visualization Pool Assigner in the system for
to <HOST>:<PORT>. improved load handling and/or failover. Open the Visualization Pool
Retrying..." to the Assigner configuration page in TEM and remove the Visualization
console/log. Pool Assigner’s peer assigner entry.

AW008 4.2 Configuration and Extensibility 7-99


Chapter
Chapter 7: 7: Administration
Administration

Issue Possible resolution


8) The Visualization The Visualization Server Manager process uses Windows
Server Manager displays performance counters to read the current CPU usage of the
the message “Trouble computer. Windows performance counters can become broken,
connecting to cold resulting in invalid values for the CPU usage, for example: -1.
visualization server on port
XXXX with PID YYYYY due Solution
to "The VisView's reported 1. Open a command prompt or PowerShell as an administrator.
system CPU usage (-1.0) is
less than 0". Retrying ...” 2. Change the directory to C:\Windows\SysWOW64.

3. Run the command lodctr /R.

4. Restart the Visualization Server Manager.

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.

The Viewer Administration page appears. The initial view of the page includes a diagram of
active visualization components and processes.

7-100 Configuration and Extensibility AW008 4.2


Administration

3. For details about an object included in the diagram, select the object, and click Info .

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.

AW008 4.2 Configuration and Extensibility 7-101


Chapter
Chapter 7: 7: Administration
Administration

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

7-102 Configuration and Extensibility AW008 4.2


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.

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

AW008 4.2 Configuration and Extensibility 7-103


Chapter
Chapter 7: 7: Administration
Administration

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
A ratio indicating how much of the computer’s resources is consumed or unavailable on this
computer.

• loadRatioRelative

7-104 Configuration and Extensibility AW008 4.2


Administration

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
A ratio indicating the amount of network usage of this server on the computer.

AW008 4.2 Configuration and Extensibility 7-105


Chapter
Chapter 7: 7: Administration
Administration

• 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
Also known as the PID, this is the identifier that the operating system uses to denote this
particular Visualization Server.

7-106 Configuration and Extensibility AW008 4.2


Administration

• 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
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.

AW008 4.2 Configuration and Extensibility 7-107


Chapter
Chapter 7: 7: Administration
Administration

• 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.

• dateCreated
The date and time that this Visualization Pool Assigner was last started.

• loadRatioAbsolute

7-108 Configuration and Extensibility AW008 4.2


Administration

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.

AW008 4.2 Configuration and Extensibility 7-109


Chapter
Chapter 7: 7: Administration
Administration

Managing groups, roles, and users

Groups, roles, and users in Active Workspace


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.
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.

7-110 Configuration and Extensibility AW008 4.2


Administration

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.

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.

AW008 4.2 Configuration and Extensibility 7-111


Chapter
Chapter 7: 7: Administration
Administration

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 a user with DBA privileges, 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 has been assigned two roles in the high_performance
group: Engineering Manager and Standards Engineer.

7-112 Configuration and Extensibility AW008 4.2


Administration

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 a user with DBA privileges, you can:
• Create, modify, and delete user accounts.

• Reset user passwords.

• Assign licenser 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.

AW008 4.2 Configuration and Extensibility 7-113


Chapter
Chapter 7: 7: Administration
Administration

Example
Robert Green, a user, is assigned the default role of Standards Engineer and belongs
to the default group high_performance.

About the PEOPLE tile


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.

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.

7-114 Configuration and Extensibility AW008 4.2


Administration

Creating users, roles, and groups

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.

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 group for 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.

AW008 4.2 Configuration and Extensibility 7-115


Chapter
Chapter 7: 7: Administration
Administration

Create a group

1. In the Groups tab, click Add .

2. In the Add panel, specify values for the following:


• Name

• Description

• Security

• To parent
If you wish to create a subgroup for an existing group, select the parent group from the list.

• DBA Privilege

• Default Volume

• Default Local Volume

3. Click Add.

7-116 Configuration and Extensibility AW008 4.2


Administration

Note
You can also create groups in the Organization tab. To do so, in the Organization tab,
click Add , and follow similar steps specified for creating a create a group.

Create a role
1. In the Roles tab, click Add .

2. In the Add panel, specify values for the Name and Description.

3. Click Add.

Create a user
1. In the Users tab, click Add .

2. In the Add panel, in Properties, enter the following:


• Name

• User ID

• OS Name

• Default Group

• Default Volume

• Default Local Volume

• Status

Note
To create an active user, set Status = 0.

• License Level

• License Server

• License Bundle

• Visualization Licensing Level


0 (Base)

1 (Standard)

2 (Professional)

3 (Mockup)

AW008 4.2 Configuration and Extensibility 7-117


Chapter
Chapter 7: 7: Administration
Administration

• Geography

• User Declared Geography

• Nationality

• Citizenships

In Personal Information, specify the following:

• Address

• City

• State

• Zip Code

• Country

• Organization

• Employee Code

• Internal Mail Code

• E-Mail Address

• Phone Number

• Locale

• Time Zone

3. Click Add.

Add roles and users to groups


1. In the Organization tab, select the group that you want to add users to.

2. In Roles, click Add .

3. In the Add panel, do one of the following:

7-118 Configuration and Extensibility AW008 4.2


Administration

• In New, enter a name and description for a 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.

• 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

Editing user information


1. Navigate to the User tab and search for an existing user.

2. Click Open .

3. Click Start Edit .

4. Modify the user information and click Save Edits .

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.

AW008 4.2 Configuration and Extensibility 7-119


Chapter
Chapter 7: 7: Administration
Administration

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 Roles tab, search for the user whose status you want to modify.

2. Click Start Edit .

3. Set the status of the user to 1 Inactive.

4. Click Save Edits .

Deleting a user
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

Editing 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.

7-120 Configuration and Extensibility AW008 4.2


Administration

2. Click Open .

3. Click Start Edit .

4. Modify the role name and description and click Save Edits .

Deleting a role

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 Remove .

Change the user password


1. In the Users tab, search for the user whose password you want to reset.

2. Click 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.

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 User ID is displayed
under Organization Logs.

AW008 4.2 Configuration and Extensibility 7-121


Chapter
Chapter 7: 7: Administration
Administration

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.

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.

7-122 Configuration and Extensibility AW008 4.2


Administration

• 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.

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

AW008 4.2 Configuration and Extensibility 7-123


Chapter
Chapter 7: 7: Administration
Administration

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.

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.

7-124 Configuration and Extensibility AW008 4.2


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.

AW008 4.2 Configuration and Extensibility 7-125


Chapter
Chapter 7: 7: Administration
Administration

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.

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.

7-126 Configuration and Extensibility AW008 4.2


Administration

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.

AW008 4.2 Configuration and Extensibility 7-127


Chapter
Chapter 7: 7: Administration
Administration

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.

• 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 your workspace using a native module.

• Map your 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.

7-128 Configuration and Extensibility AW008 4.2


Administration

Siemens PLM Software recommends that you create your own exclusive workspaces for your users,
with a task-based organization in mind. For example, 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.
S:\stage>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": {

AW008 4.2 Configuration and Extensibility 7-129


Chapter
Chapter 7: 7: Administration
Administration

...
"workspaces": [
"TCAWWorkspace",
"TcAdminWorkspace",
"TcAuthorWorkspace",
"TcConsumerWorkspace",
"myExclusiveWorkspace"
],
"defaultWorkspace": "TCAWWorkspace",
...

This file is also where you change the solution's default workspace by modifying the
defaultWorkspace entry.

Design Intent
Siemens PLM 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.

7-130 Configuration and Extensibility AW008 4.2


Administration

schemaVersion (Mandatory)
Version of the declarative schema to which this workspace definition complies.
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.

AW008 4.2 Configuration and Extensibility 7-131


Chapter
Chapter 7: 7: Administration
Administration

Tip
This only controls 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
"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.
"includedCommands": [
"Awp0ObjectInfo",
"Awp0GoBack",
"cmdSignOut",
"cmdViewProfile",
"Awp0ManageGroup",
"Awp0HelpGroup",
"Awp0Help",
"Awp0HelpAbout",
"kit::workflow"
]

excludedCommands
There are two ways you can use this option:
• 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.

If you use this option and you have not specified any included commands, the workspace will
automatically add all commands except these.
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.
"excludedCommands": [
"Awp0SuspendTask",
"Awp0AbortTask"
]

7-132 Configuration and Extensibility AW008 4.2


Administration

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">
<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:

AW008 4.2 Configuration and Extensibility 7-133


Chapter
Chapter 7: 7: Administration
Administration

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.


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

7-134 Configuration and Extensibility AW008 4.2


Administration

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.SUMMARYRENDERING

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.

AW008 4.2 Configuration and Extensibility 7-135


Chapter
Chapter 7: 7: Administration
Administration

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>

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.

7-136 Configuration and Extensibility AW008 4.2


Administration

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.

AW008 4.2 Configuration and Extensibility 7-137


Chapter
Chapter 7: 7: Administration
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.

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.

7-138 Configuration and Extensibility AW008 4.2


Administration

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>

...

</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

AW008 4.2 Configuration and Extensibility 7-139


Chapter
Chapter 7: 7: Administration
Administration

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.

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.

7-140 Configuration and Extensibility AW008 4.2


Administration

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.

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.

AW008 4.2 Configuration and Extensibility 7-141


Chapter
Chapter 7: 7: Administration
Administration

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>
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.

7-142 Configuration and Extensibility AW008 4.2


Administration

<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>
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.

AW008 4.2 Configuration and Extensibility 7-143


Chapter
Chapter 7: 7: Administration
Administration

Example: Item revision summary

In this example, you have navigated to an assembly with your primary browser tab.

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.

7-144 Configuration and Extensibility AW008 4.2


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.

AW008 4.2 Configuration and Extensibility 7-145


Chapter
Chapter 7: 7: Administration
Administration

This does not require navigation, and can be used to make edits as needed if you already know
what you are looking for.

7-146 Configuration and Extensibility AW008 4.2


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>

AW008 4.2 Configuration and Extensibility 7-147


Chapter
Chapter 7: 7: Administration
Administration

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>

7-148 Configuration and Extensibility AW008 4.2


Administration

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>

AW008 4.2 Configuration and Extensibility 7-149


Chapter
Chapter 7: 7: Administration
Administration

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>

7-150 Configuration and Extensibility AW008 4.2


Administration

ADDITIONAL
INFORMATION
As the browser tab narrows, the contents of extra right-hand columns will move onto
the end of the first column.

AW008 4.2 Configuration and Extensibility 7-151


Chapter
Chapter 7: 7: Administration
Administration

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>

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.

7-152 Configuration and Extensibility AW008 4.2


Administration

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.

AW008 4.2 Configuration and Extensibility 7-153


Chapter
Chapter 7: 7: Administration
Administration

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>

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>

7-154 Configuration and Extensibility AW008 4.2


Administration

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>

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>

AW008 4.2 Configuration and Extensibility 7-155


Chapter
Chapter 7: 7: Administration
Administration

htmlPanel

You can insert HTML code into your style sheet.


Your code can be defined inline as a CDATA block, indirectly as a declarative view, or
as a URL. If you wish to insert HTML from a dataset, use the <inject> element instead.
ATTRIBUTES
Use these attributes to define where the indirect HTML is located. If using the CDATA
option, do not use any attributes.

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
CDATA
Following style sheet snippet shows how to implement a direct CDATA html source.
You must specify any properties you use on the page by using the <property> element
inside the HTML panel element, before the CDATA block. 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>
<property name="object_string"/>
<property name="item_id"/>
<![CDATA[
<div>
<H2>{{selected.properties['object_string'].uiValue}}</H2>
</div>
<div>
The ID is {{selected.properties['item_id'].uiValue}}
</div>
]]>
</htmlPanel>

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"/>

7-156 Configuration and Extensibility AW008 4.2


Administration

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}}">
<property name="item_id" />
</htmlpanel>

AW008 4.2 Configuration and Extensibility 7-157


Chapter
Chapter 7: 7: Administration
Administration

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%">
...
<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>

7-158 Configuration and Extensibility AW008 4.2


Administration

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.

AW008 4.2 Configuration and Extensibility 7-159


Chapter
Chapter 7: 7: Administration
Administration

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>
...
</page>

7-160 Configuration and Extensibility AW008 4.2


Administration

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.

AW008 4.2 Configuration and Extensibility 7-161


Chapter
Chapter 7: 7: Administration
Administration

objectSet

You can use an object set in your style sheets to display a table or list of related objects.
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. Multiple relation.type values can be
specified as a comma-separated list.
Object subtypes are traversed, so specifying the ItemRevision object will return all
DocumentRevision objects, Design Revision objects, and so on. When using a
relation, you must explicitly specify the relation. Subtypes of relations are not traversed.
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 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.
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.

7-162 Configuration and Extensibility AW008 4.2


Administration

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>

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

AW008 4.2 Configuration and Extensibility 7-163


Chapter
Chapter 7: 7: Administration
Administration

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"/>

Property elements
You can use a list of <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.
<objectSet source="contents.DocumentRevision,contents.PDF,contents.MSWordX">

7-164 Configuration and Extensibility AW008 4.2


Administration

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>

AW008 4.2 Configuration and Extensibility 7-165


Chapter
Chapter 7: 7: Administration
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"/>

7-166 Configuration and Extensibility AW008 4.2


Administration

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 (optional) Specifies a static string of the title for this tab. This attribute is
used when the titleKey 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 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}.
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.

AW008 4.2 Configuration and Extensibility 7-167


Chapter
Chapter 7: 7: Administration
Administration

• 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,*">

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>

Pages when viewed in the secondary workarea, such as viewing an object in a list
of search results.

7-168 Configuration and Extensibility AW008 4.2


Administration

The same pages when viewed in the primary workarea, such as viewing an object
directly.

AW008 4.2 Configuration and Extensibility 7-169


Chapter
Chapter 7: 7: Administration
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.

column
Applies only to the textfield and textarea rendering hints. It sets the number of
columns.

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, which is used in the New
Business Object wizard, 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

7-170 Configuration and Extensibility AW008 4.2


Administration

• 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.

row
Applies only to textarea elements. It sets the number of the rows for the element.
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"/>
<property name="p1" visibleWhen="<Property name>!=null"/>

2. The value of a Teamcenter preference


<property name="p1" visibleWhen="{pref:<Preference name>}==<Some value>"/>

AW008 4.2 Configuration and Extensibility 7-171


Chapter
Chapter 7: 7: Administration
Administration

<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">

Note
Using visibleWhen for properties is only for use in SWT-based style sheet
views in the rich client. For example, Summary (when checked out),
Create, and SaveAs.
It will only work with SWT-based property beans, and will not work with
Swing-based property beans.
In the current implementation of SWT styles aheet rendering in the Summary
view, a plain Label instead of a LabelPropertyBean is used to display
property values in read-only mode (RenderFlat). Since the visibleWhen
framework implementation is based on AbstractPropertyBeans and its
children, the visibleWhen feature will not be available in the Summary view
in read-only mode. It will only be available when the object is checked-out.

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>

7-172 Configuration and Extensibility AW008 4.2


Administration

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>

AW008 4.2 Configuration and Extensibility 7-173


Chapter
Chapter 7: 7: Administration
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 (optional) Specifies the key used for localization. If it is not defined or
otherwise found, the string defined by the title attribute is used.
title (optional) Specifies a static string of the title for this tab. This attribute is
used when the titleKey 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 PLM
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>
<section titleKey=...>
...
</section>
<section titleKey=...>
...
</section>
</column>
</page>

Following are seven collapsed sections divided among three columns.

7-174 Configuration and Extensibility AW008 4.2


Administration

Following shows the ratings section expanded.

AW008 4.2 Configuration and Extensibility 7-175


Chapter
Chapter 7: 7: Administration
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>

7-176 Configuration and Extensibility AW008 4.2


Administration

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.

AW008 4.2 Configuration and Extensibility 7-177


Chapter
Chapter 7: 7: Administration
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
Create
Information
Revise
Save As

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 object sets.

7-178 Configuration and Extensibility AW008 4.2


Siemens Industry 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 PLM Software

© 2019 Siemens Product Lifecycle Management


Siemens PLM Software, a business unit of the Siemens
Software Inc. Siemens and the Siemens logo are
Industry Automation Division, is a leading global provider
registered trademarks of Siemens AG. D-Cubed,
of product lifecycle management (PLM) software and
Femap, Geolus, GO PLM, I-deas, Insight, JT, NX,
services with 7 million licensed seats and 71,000 customers
Parasolid, Solid Edge, Teamcenter, Tecnomatix and
worldwide. Headquartered in Plano, Texas, Siemens
Velocity Series are trademarks or registered trademarks
PLM Software works collaboratively with companies
of Siemens Product Lifecycle Management Software
to deliver open solutions that help them turn more
Inc. or its subsidiaries in the United States and in other
ideas into successful products. For more information
countries. All other trademarks, registered trademarks
on Siemens PLM Software products and services, visit
or service marks belong to their respective holders.
www.siemens.com/plm.

You might also like