Active Workspace 4.2 Configuration and Extensibility
Active Workspace 4.2 Configuration and Extensibility
Configuration and
Extensibility
AW008 • 4.2
Contents
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
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.
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.
The user interface (UI) includes few main mechanisms for easy extension.
• Declarative locations
• Declarative commands
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.
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.
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.
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.
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
or as a JSON object.
Operators
Example
Use of $and: Enable this command handler when the selected object type is Folder
AND object_name is Newstuff
Example
Use of $or: Enable this command handler when the selected object type is ItemRevision
OR object_name is Newstuff
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.
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.
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.
The save action in the view model calls a TcSoaService operation, createFullTextSearch.
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.
The overwrite action calls the same service operation as before, but this time with override
turned on.
The successful SOA call returns a success event, which closes the panel.
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.
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.
• Knowledge of whether you need to pre-load any properties for your condition.
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.
Custom sublocations
After creating your new sublocation, you can navigate directly to it by modifying your URL.
Example
http://host:port/#/mySubLocation
Consistency Each page and panel element is built from basic, modular UI elements instead
of custom pieces.
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 Contains a view model that describes the page's data, i18n, and behaviors such as actions,
conditions, messages, and routing.
Panels are also declaratively defined and share the following characteristics.
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.
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
• modules
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.
• 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.
• 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.
expression
preferences
A preference can be checked.
"expression":"preferences.aMultiValuePreference.values.values[0]=='aValue'"
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.
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.
...View.html
View types
List
* With or without summary.
Image
Table
* With or without summary.
The view model is a JSON file. It is responsible for view state such as:
• Imports
• Actions
• Data
• Conditions
• i18n
...ViewModel.json
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
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.
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
In the ...ViewModel.json files, strings are localized using the i18n object.
For example, the displayName here is bound to i18n.checkBoxName.
In turn, the i18n object refers to the ...Messages.json file to retrieve the actual string for display.
In this case, all of the i18n entries refer to a single file, MyModuleMessages. The system locates
src\i18n\MyModuleMessages.json to look up the localized strings. For this example, Enable the
OK button in footer, is displayed.
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.
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
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"
}
}
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,
The Active Workspace client will ask the Teamcenter platform to evaluate the conditions
attached to the Business Modeler IDE command definition named C9command.
You can use any method you wish to search. In this example, Aut0AttachLicensesCmdCond is
searched. You should search your own extension files as well.
If there are no valid commands in a command group, the group displays the No Commands
Available message when opened.
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.
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.
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.
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
"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
},
...
},
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.
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.
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.
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.
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.
Awp0SavedQuerySearchProvider
Documentation for this provider is being provided on a temporary basis.
The purpose of this server-side data provider is to run a Teamcenter query and return the results to
the client-side data provider.
In this example, the General... query is called using the Advanced Search capability of Active
Workspace.
Use the Query Builder perspective in the rich client to examine the criteria for the General... query.
Following is the resulting client-side data provider call. Notice how the searchCriteria contains all of
the information to run the query on the server.
Two of these criteria are always required for this data provider.
searchID An identifier that must be unique, but does not carry any other significance. It
is how the client identifies this particular query call if it needs to.
typeOfSearch This must provide the type of search being requested.
One of the following two criteria is required to identify which query is run.
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.
You can now call the Finder::performSearch service operation from your client data provider.
• aw-tree
"outputData": {
"totalFound": "{{results.fetcheddata.length}}",
"searchResults": "{{results.fetcheddata}}"
}
}
}
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"
}
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"
}
}
}
• 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.
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.
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}}"
}
}
}
}
}
Basic interface
The Active Workspace page consists of these main areas.
1. Navigation 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.
Location
A location defines a page that supports a set of closely related sublocations. Each location includes:
• A title that provides a page name.
3. Global search
4. Sublocation
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.
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.
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.
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.
• 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.
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.
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.
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.
• When there are no contributions, the right wall command bar is hidden.
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.
You can view and edit Microsoft office files if Teamcenter Office Online is installed.
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
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 The relation that the design element object has to its target object is named
awb0UnderlyingObject.
Example
Adding the following line to the preference tells Active Workspace to process any
objects referenced by the design element object.
SEARCHORDER.Awb0DesignElement=awb0UnderlyingObject
checks the DocumentRevisions for any thing attached with the TC_Attaches relation.
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.
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
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.
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.
• Awp0TileTemplate
A tile template stores the overall configuration for a specific tile type. When you create a new tile
instance, you must specify which tile template it is based upon. The templates store information
about the tile's action, action type, content names for live tiles, and its icon.
• awp0Scope (relation)
This relation must point to an object that is a valid scope object. This scope determines whether a
user can see the tiles in the collection based on their current session context.
Tile reference
The tile object (Awp0Tile) is the actual tile that a user sees in their home page. Each tile must
reference a single tile template. Together they make up the total functionality of the tile.
awp0TileId
This is the tile's unique internal identifier. When creating your own tiles, use your custom prefix
awp0DisplayName
awp0TileTemplate
This is a reference to the tile template that this tile is associated with. This represents the type of
tile — its core functionality. The other tile properties allow tiles that share a tile template to have
slightly different behavior.
awp0Params
If the referenced tile template is a command (action type = 3), the this is where you can provide
your parameters to that command.
Example
If the tile template's command is to show a create object panel to the user, then you can
specify what types of objects appear on the list. Any types specified and their subtypes
will appear.
• Show all item types.
cmdArg=Item
Example
In this example, the user's session context is as follows:
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.
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.
awp0Scope — Scope
In this property, you must add a reference to an object of one of the following types:
User (POM_system_class)
Role (POM_system_class)
Group (POM_system_class)
TC_Project (POM_application_object)
Awp0Workspace (Fnd0UIConfigurationObject)
• Hide a tile
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
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.
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.
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
awp0TemplateId — Template ID
awp0Icon — Icon
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.
3. Paste the tile onto the tile template using the Gateway Tile relation. (Awp0GateWayTileRel)
Active Architect
Active Architect
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
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.
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.
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.
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.
• UI Builder
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.
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.
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.
• Command type.
• Icon.
• Placements.
• Handlers.
Toolbars
Use this page to:
• Add commands to a toolbar.
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.
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
Editor
Preview
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.
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.
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.
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
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.
• Experience equal or better performance compared to the Business Modeler IDE compound
properties.
• 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.
• 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.
Tip
The following examples use style sheet object sets, but the same principle applies to
declarative tables.
The object set can easily retrieve properties directly from the table source objects, like object_string,
object_type, and owning_user.
<section titleKey="tc_xrt_Documents">
<objectSet source="IMAN_specification.DocumentRevision"
sortdirection="ascending"
sortby="object_string"
defaultdisplay="tableDisplay">
<tableDisplay>
<property name="object_string"/>
<property name="object_type" />
<property name="owning_user"/>
</tableDisplay>
...
</objectSet>
</section>
You can use dynamic compound properties to easily retrieve those properties. For example, follow
the item_tag reference property to the Document item, then the item_master_tag reference
property to the Document Master form to retrieve the Author property.
<tableDisplay>
<property name="object_string"/>
<property name="object_type" />
<property name="owning_user"/>
<property name="REF(items_tag,Document).REF(item_master_tag,Document Master).Author"
titleKey="MyAuthors" />
<property name="REF(items_tag,Document).REF(item_master_tag,Document Master).Title"
titleKey="MyTitle" />
<property name="GRM(TC_Attaches,MSWordX).object_name"
titleKey="MyFilename" />
</tableDisplay>
The other properties can be retrieved in the same manner. Notice that the two properties retrieved
from the form and the single property retrieved from the dataset are listed together in the same
row. This is a convenience feature, but remember that the DCP columns from separate objects
(relation paths) don't have any correlation to each other, except that they were located from the
same source object.
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.
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.
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
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.
Traverse to the:
Example REFBY
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.
Example GRMS2P
Example GRMREL
Example GRMS2PREL
Column configuration
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.
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
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.
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.
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.
• 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.
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.
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.
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.
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.
Note
Column filtering is available in the Home folder primary work area tables, and in all
style sheet tables.
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.
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.
<Import>
<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.
<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:
<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.
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.
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.
<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.
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.
You might see a different version of the performSearchViewModel call, but the content will
be similar.
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.
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.
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.
• 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.
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.
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.
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>
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.
The objectSet XRT element models its table data using several runtime business objects, organized
by the Awp0XRTObjectSet object.
You want to create a table to display the following when a user selects a DocumentRevision:
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:
→ 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.
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)
→
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"
Data providers
Data providers are subclasses of the Fnd0BaseProvider business object. In Active Workspace, they
can be specified as the source of an objectSet.
<objectSet source="< Data provider >.< Filtered BO >" defaultdisplay="..." sortby="..." sortdirection="...">
Example
This example shows an objectSet table configured to show parent partitions.
<objectSet source="Fgf0ParentPartitionsProvider.Ptn0Partition"
defaultdisplay="listDisplay"
sortby="object_string"
sortdirection="ascending">
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"
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>
Secondary-to-primary relations
Active Workspace also allows you to retrieve a related primary object from a secondary object. This
uses the same relation but in the opposite direction, and is called a secondary-to-primary relation
(S2P), also commonly called where-referenced information.
Retrieving primary related objects in an objectSet table is accomplished by adding S2P: in front of
the relation type.
<objectSet source="S2P:relation.object, ..."
Example
If there is a Design Revision which has a Document Revision related to it using the References
relation, you can show the related Design Revision in an objectSet from the Document Revision
XRT as follows:
<objectSet source="S2P:IMAN_reference.Design Revision"
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..
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:
XRT files use the XML format. They are used to configure layout in Teamcenter clients, including
Active Workspace, based on object type, group, and role. XRT files are also commonly referred to as
style sheets; however, they neither follow CSS or XSL standards, nor do they perform transformations.
In Active Workspace, XRT files control areas such as the secondary work area and the tools and
information panel.
Active Workspace style sheet preference names follow this format:
AWC_<type-name>.*RENDERING
The value of the preference points to a style sheet dataset name, which is used by the Active
Workspace XRT renderer to produce the UI. Create a copy of an OOTB style sheet for your custom
layout, and then modify or override the preference value to use your new dataset instead. Use
the XRT Editor to assist in editing style sheets.
• 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.
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
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.
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.
• 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.
2. Attach the XRT style sheet to the new dataset as a named reference.
• 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.
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>
Note
To test logical (boolean) values, compare to true first, then if not true and not NULL, it is
false. Use Y, YES, T, TRUE, 1, or ON to match true.
Verify the property type you are comparing. Some object properties, like Owning User for
example, are reference properties, not strings.
<content>
When writing XRT files for Active Workspace, you have access to a <content> tag. This wrapper tag
allows you to use the visibleWhen attribute.
<content visibleWhen=[condition]>
...
</content>
These content tags can be nested to provide flexibility and control over the final displayed information.
<content visibleWhen=[condition 1]>
<...>
<content visibleWhen [condition a]>
...
</content>
<content visibleWhen [condition b]>
...
</content>
</...>
</content>
<page>
Examples of visibleWhen are shown in Teamcenter's <page> tag XML element documentation.
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.
For example:
<section title=...>
<nameValueProperty name="myNVProp">
<property name="fnd0Name"/>
<property name="fnd0Value"/>
</nameValueProperty>
</section>
Note
You must use the fnd0Name and fnd0Value properties.
4. In My Teamcenter, locate the XML rendering stylesheet for the business object. For example,
locate the Awp0ItemCreate stylesheet for the ItemRevision business object.
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.
• To display the properties of the form type and include properties from objects in the form type's
hierarchy, use the following tagging:
<all type="property"/>
By default, if there is no style sheet defined for the form type, the default style sheet is loaded,
which includes the configuration for including all properties, for example:
<rendering>
<page titleKey="tc_xrt_Summary">
<all type="property"/>
</page>
</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.)
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"/>
If the preference contains multiple values, then each dataset will be located and injected in order.
Caution
Uncontrolled JavaScript code included in the HTML panels can be used to exploit a
security issue or other network policy violation. System administrators must exercise care
to ensure the XML rendering preferences, datasets, and any WAR build changes are
monitored and require DBA level access.
Specifying a URL
The src attribute is used to specify the fully qualified URL as the source of the content to display
in a new iframe.
• The src attribute can be complete or can contain references to various properties in the currently
selected object.
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.
<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>
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 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>
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.
• 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.
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.
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:
src
This required attribute specifies the URL to be displayed in the iframe.
The src attribute supports data binding value substitution.
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.
The following are considerations for the Active Workspace client when you perform platform
customizations:
• Enabling your custom business object.
These examples assume you have already installed Active Workspace. In addition, you will need:
• Access to the TC_ROOT\aws2\stage directory.
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.
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.
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.
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.
• 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.
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": ""
}
}
}
}
}]
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": ""
}
}
}
}
}]
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.
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.
7. From the command line, run the gwtcompile.cmd script to build your Active Workspace
environment.
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.
These examples assume you have already installed Active Workspace. In addition, you will need:
• Access to the TC_ROOT\aws2\stage directory.
You can configure the following aspects of Active Workspace's behavior using an .
• Add a command.
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.
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.
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.
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
• 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.
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
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.
Caution
Siemens PLM Software recommends that you use the OOTB solution kit instead of
creating your own.
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
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.
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
• 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"
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.
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';
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.
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
}
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"
}
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. 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.
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
}
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.
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.
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.
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.
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"
}]
}
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.
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.
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.
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.
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.
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.
The Content tab displays the content of a structure. The following diagram shows the configurable
parts of the Content tab.
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
3. In the Add dialog box of the Edit window, enter the name of the class corresponding to the first
custom object you want to display.
4. Repeat the previous step for each of the other custom objects you want to display.
5. Click Finish on both the Modify Global Constant and the Add Value dialog boxes to save the
additions.
Note
On some systems, you may have to reopen each additional object in the Edit window
and resave the entry for each added item. Failure to save your entries on the first
attempt does not necessarily indicate they are incorrect.
2. Add the following page pertaining to the Content tab to the ShowObjectLocation Summary
XRT.
<inject type="dataset" src="Awb0ContentTab"/>
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.
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"/>
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 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.
• 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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.)
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.
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 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.
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.
Before you can configure change management, you must install the features. Install the following
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.
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
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.
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:
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.
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
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.
• Logical
Refer to Configure your business data model in BMIDE in the Teamcenter collection for more
information.
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.
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
• 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
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.
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.
• 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?
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).
These business objects are available after installing classification libraries (Classification
Library Management).
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.
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
2. Copy the CGM or DWG file to the VVCP directory in the installation location.
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).
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.
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.
1. Run TEM and select the Classification Standard Taxonomy support (found in the Features
section under Extensions→Reuse and Standardization).
When you select this option, the Next generation Classification foundation option is
automatically selected as well. This option installs the presentation layer.
Note
If your environment contains both SML classes and CST classes, see Classify with
CST and ICS simultaneously.
2. Make the node hierarchy (presentation layer) visible in the Active Workspace user interface by
creating the following user preference:
CLS_is_presentation_hierarchy_active=true
Being able to turn the visibility of the node hierarchy on and off per user allows users of both
traditional classification and CST to classify objects in the same environment. Depending on the
setting, a user can see either the traditional classification classes or the CST classes.
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.
• Revisioning
Example:
XMPL#01-CLS001#001
Where:
02: property
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.
• 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.
Key list of values A key list of values (key-LOV) holds selection lists.
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.
The classification standard taxonomy (CST) is displayed through a hierarchy of groups containing
master nodes that reference classes in which data is stored. This hierarchy is referred to as the
presentation layer (the installation option is called Next generation Classification foundation).
The presentation layer does not actually store the classes. It references classes that are stored in
the CST layer. A node in the hierarchy can hold a reference to a class that stores data. Group
nodes are used for organizational structure, and master nodes reference application classes in the
CST layer. The CST layer also stores properties and key-LOVs. Classification data is stored in
the Teamcenter server layer.
The significance of this architecture becomes apparent when understanding how CST and traditional
Classification (SML) work together.
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
Cardinality on property blocks allows a user to specify the number of times that a property block class
is used in an application class. For example, when designing a power supply for mobile devices, there
is a class called Power supply containing two properties, Designation and Type. The number of
times you can enter a designation and type depends on the value of a third property, Number of slots.
In the user interface, you first specify the number of slots , and then, for each slot, specify a
designation and type.
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.
• Released
• Retired
This means the class is in a draft state. You can still modify it, for example, by adding or removing
attributes in a class, but you cannot yet use it to classify data.
• Once the editing work is complete, you change the status of the object to Released using
the clsutility command line utility as follows:
clsutility -u=user -p=password-g=group -update -status -request=JSON_file
The JSON file must have a format similar to the following:
{
"SchemaVersion":"1.0.0",
"Options":["recursive"],
"Status":"Released",
"ObjectIRDIList":
[
"TDOC#01-CLS001#001"
]
}
Running the utility using the recursive option changes the status of the CLS001 class, as well as
all the objects it references (properties, key-LOV definitions, blocks, aspects) from Develop to
Released.
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
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.
The application class that references the aspect class is described as follows:
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 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:
1. Key-LOV definitions
2. Property definitions
3. Class definitions
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.
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.
• 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.
• Manufacturer
A simple string property
• Adjustable headrests
A boolean property
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.
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"
}
]
}
}
]
}
In this example, there are three properties to import, one of which (Type of seat) is a key-LOV
that references the key-LOV definition imported in the previous step. The JSON definition for the
properties is stored in a file titled simplePropDef.json:
{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"PropertyDefinitions": [
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP001",
"Revision": "001",
"Status": "Develop",
"Name": "Type of seat",
"DataType": {
"Type": "String",
"KeyLOV": "TDOC#09-KEY001#001"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP002",
"Revision": "001",
"Name": "Manufacturer",
"Status": "Develop",
"DataType": {
"Type": "String"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP003",
"Revision": "001",
"Name": "Adjustable headrests",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
}
]
}
{
"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"
}
]
}
]
}
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",
"Parent": {
"Namespace": "TDOC",
"ID": "CSTAA1",
"Revision": "001"
},
"Name": "Simple Car",
"ApplicationClass": {
"Namespace": "TDOC",
"ID": "CLS001",
"Revision": "001"
}
}
]
}
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:
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.
Property blocks are referenced by block properties which, in turn, are referenced in the application
class containing the block properties:
To create the JSON files required to import these classes and properties:
1. Create the individual property definitions.
Create the following JSON file and save it in a file named blockPropDef.json as follows:
{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"PropertyDefinitions": [
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP004",
"Revision": "001",
"Status": "Develop",
"Name": "Material",
"DataType": {
"Type": "String"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP005",
"Revision": "001",
"Name": "Color",
"Status": "Develop",
"DataType": {
"Type": "String"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP003",
"Revision": "001",
"Name": "Adjustable headrests",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP006",
"Revision": "001",
"Name": "Electrically adjustable seats",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP007",
"Revision": "001",
"Name": "Lumbar support",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP008",
"Revision": "001",
"Name": "Heated seats",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP009",
"Revision": "001",
"Name": "Rear seat entertainment system",
"Status": "Develop",
"DataType": {
"Type": "Boolean"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP010",
"Revision": "001",
"Name": "Front seat",
"Status": "Develop",
"DataType": {
"Type": "Reference",
"BlockReference": "TDOC#01-CLS002#001"
}
},
{
"ObjectType": "02",
"Namespace": "TDOC",
"ID": "PRP011",
"Revision": "001",
"Name": "Back seat",
"Status": "Develop",
"DataType": {
"Type": "Reference",
"BlockReference": "TDOC#01-CLS003#001"
}
}
]
}
The last two properties, PRP010 and PRP011 reference the two property block classes that
hold the sets of properties.
{
"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"
}
]
},
{
"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"
}
}
]
}
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"
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:
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.
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",
"DisplayValue": "Rear"
},
{
"StringValue": "T",
"DisplayValue": "Third row"
}
]
}
}
]
}
{
"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",
"DataType": {
"Type": "Integer"
}
}
]
}
{
"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"
}
]
},
{
"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"
}
}
]
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.
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:
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.
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.
The following application class contains the polymorphic Seat property that references the key-LOV.
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",
"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.
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",
"KeyLOV": "TDOC#09-KEY003#001",
"IsPolymorphismController": true
}
}
]
}
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",
"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"
}
]
}
]
}
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"
}
}
]
}
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.
This example uses the same two property block classes as the previous example, describing the
front and rear seats:
Again, these classes are referenced by the same key-LOV as in the previous example, which
determines which of these classes is displayed:
The application class references the properties that determine the polymorphism and cardinality:
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": {
"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.
{
"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",
"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"
}
}
]
}
• Classification objects
• Classes
• Properties
• Key-LOVs
The utility requires a JSON file as input. The format for the JSON is found in the schema directory.
The following example contains the request used to test (using the dryrun option) whether the
TDOC#01-CLS001#001 class and all the objects it references (including other block classes,
key-LOVs, and properties) can be deleted:
{
"SchemaVersion": "1.0.0",
"Locale": "en_US",
"Options": [ "recursive", "dryrun"],
"ObjectIRDIList": [
"TDOC#01-CLS001#001"
]
To actually delete the class and all the objects it references, remove the dryrun option in the JSON
request file and run the clsutility -delete command again.
Note the following:
• To delete a branch in the classification hierarchy, delete the topmost class in the branch using the
recursive argument. This deletes everything from that class downwards and prevents you from
having to list all objects requiring deletion individually.
• You cannot delete a class in which objects are classified. You must first delete the classifications
and then the classes.
The input JSON file contains a list of object IDs for which the ICO information is exported to a file
of your choice.
• BMECAT XML
Classification objects that are downloaded from the Siemens Industry Mall website are delivered
in this format.
To import this data into Active Workspace, it must be converted into the JSON file format. You can
do this with the eclass2json utility.
This utility is launched using a platform-independent Perl script and is configured using the
eclass2json.properties file found in the same directory:
..\TR\bin\eclass2json
The utility functions by outputting a variety of data to temporary files that it then references to create
the JSON files. For this reason, the correct creation of the JSON files requires running the utility to
output objects individually in the following sequence:
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.
4. propertyName
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.
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.
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.
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.
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:
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 .
Both CST and traditional classification classes can co-exist in a single environment.
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.
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
• 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.
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.
o -include_instances
Includes ICOs in the subhierarchy.
o -exclude_children
Excludes the subhierarchy. It extends the specified group or class only.
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.
■ A master node with the storage class type property pointing to the associated
classification class
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
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.
Key-LOV definitions
Use this command To
-create -keylov_definitions -request=JSON-file-name Create key-LOVs described in the given JSON file.
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.
[-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.
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.
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.
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.
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.
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.
2. Patch your environment to a version of Teamcenter. Refer to the general patch instructions in the
Teamcenter documentation, as well as the readme file for the patch.
For information about installing patches on a Teamcenter server, see the appropriate server
installation guide (for Windows Server Installation or UNIX and Linux Server Installation).
3. Install Active Workspace and include the digital signature features shown in the Teamcenter
Environment Manager (TEM) Features panel:
• Active Workspace Client (Java EE) or Active Workspace Client (.NET)
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>
Note
This is available from Microsoft.
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.
Note
You can also assign site geography using the Organization application.
Note
If you add a custom LOV to the User.Geography attribute, you must remove it before
starting a Teamcenter upgrade.
-allUserDeclaredGeography=DE
Note
You can also assign user geography using the Organization application.
• 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.
• 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
• Year
• Geography
This report documenting logon information of users can be stored and used for future reference.
Note
By default, there is no confidentiality agreement configured.
Note
language_locale is the JAVA standard language name. For example, fr_FR.
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>
set TC_USER_MSG_DIR=d:\custom-localizations
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.
• 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"/>
Attaching licenses
Using licenses
Note
Users of this feature must have administrative privileges. Generally, this feature is used by
project managers.
To provide time-limited grants or denials of access to users who do not have access to classified
data based on their clearance level, you can attach and detach licenses to workspace objects. For
example, you can restrict access of ITAR-controlled items to only those users in the United States.
Use the Attach Licenses command to add one of the following licenses to a workspace object:
• ITAR
The ITAR license grants discretionary access to specific users or groups to workspace objects
with International Traffic in Arms Regulations (ITAR) classifications for a specified period of time.
• IP
The IP license grants discretionary access to specific users or groups to workspace objects that
have intellectual property (IP) classification. It grants the access for a specified period of time.
• Exclude
The Exclude license denies specific users or groups access to the attached workspace objects
for a period of time.
Attach licenses
Note
Using this feature requires ADA administrative privileges. Generally, this feature is used by
Data Security Administrators or Controllers.
2. Click Add to select the available licenses (ITAR License, IP License, Exclude License,
or a custom license type).
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.
2. Select any license to detach and click the Detach button. This detaches the license(s) from the
selected items.
Localization configuration
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.
After installing Active Workspace to run on a localized Teamcenter server, additional setup may be
required to present text in the local language.
Before you can configure localization, you must ensure that the server-side of Teamcenter is set up to
display text in your local language.
3. In the Feature Maintenance panel, choose Update Active Workspace client settings.
4. Click Next.
The Active Workspace 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.
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
What is SLM?
SLM is the Teamcenter service lifecycle management application used for performing ongoing work
on products.
You may want to make some properties visible for use, such as add a list of manufacturers.
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.
See the Teamcenter service lifecycle management documentation in the Teamcenter help collection.
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.
Prior to configuring Program Planning, you must complete the pre-configuration tasks.
• 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 you have installed Program Planning, there are several post-installation tasks that must be
completed, including changes made to Organization, Access Manager, and Dispatcher.
o Dispatcher Server
o Dispatcher Client
o Program Planning
• Dispatcher Components
o Dispatcher Scheduler
o Dispatcher Client
o Dispatcher Module
• Select Translators
o AsyncService
• 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.
• 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 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.
• Priority
Indicates the importance of the program issue.
Predefined values are: Critical, High, Medium, Low.
• Impact
Indicates the effect of the program risk or opportunity on the plan. Each value is associated with a
number (5 - 1), which is used to calculate the Risk Score (Impact x Probability = Risk Score).
Predefined values are: Severe, Major, Moderate, Minor, Insignificant.
• Strategy—Risk
Identifies the plan of action for handling this program risk.
Predefined values are: Not Applicable, Accept, Avoid, Mitigate, Transfer.
• Strategy—Opportunity
Identifies the plan of action for handling this program opportunity.
Predefined values are: Not Applicable, Accept, Enhance, Exploit, Share.
Note
Maximum allowable length for the Event Code value is 12 characters.
In Active Workspace, the end user picks the desired event type from the Event Code LOV, and the
event displays in the program timeline in the color associated with that event type.
Instructions for adding values to existing LOVs is discussed in the Business Modeler IDE.
Define Program Planning 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.
When the Program_Management_Security preference is set to 1 and the Content Security field
value for the program, project, or subproject is set to True, the Tc_project security also propagates to
program deliverables, deliverable instances, changes, schedules, events, event criteria, attachments,
risks, issues, opportunities, and checklist associated with the program, project, or subproject. The
Content Security field is located on the Overview tab of the program, project, and subproject.
Note
The Content Security field must be set at each plan level (program, project, and
subproject) in order to propagate all plan objects to the Teamcenter project. If this field is
not set for one level of the plan—for example, the project—then only the objects for the
program and subproject are propagated to the Teamcenter project.
Note
The Prg0AbsEvent and Prg0AbsCriteria objects are directly subtyped like any other
business objects in Teamcenter.
2. Add the new custom subtype object under the selected business object.
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.
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.
e. Paste the copied content into your custom XML rendering stylesheet.
g. Restart the Teamcenter server and then log off and back on to Active Workspace.
Prerequisite Steps
Before exporting and importing data, complete the following steps at both the source and destination
sites.
• In Teamcenter, click Windows > Open Perspective > Other > PLM XML/TC XML Export
Import Administration and verify that ProgramPlanningDefaultTM is installed in Teamcenter.
• 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.
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\.
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
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).
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
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.
5. Click Add.
The system administrator defines the Schedule Template Attribute Map (STAM) attributes.
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.
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.
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.
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.
5. Click Add.
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.
Schedule Identifies the STAM for which this STVM Click the to select a STAM,
Template is being created. and then click Set.
Attribute Map
Relations configuration
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.
• 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
• 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>
• 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:
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.
3. In the Named References dialog box, select RB_UIConfigure.xml and click Download.
4. Open the RB_UIConfigure.xml file and add the defaultExpandDirection setting as shown:
<view name="General">
<ruleName>GenericRule</ruleName>
<defaultLayout>Bottom-to-Top</defaultLayout>
<defaultExpandDirection>backward</defaultExpandDirection>
…
</view>
• 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.
6. Delete the original RB_UIConfigure.xml file from the Named References dialog box and import
the new RB_UIConfigure.xml file.
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)"/>
6. Delete the original RB_UIConfigure.xml file from the Named References dialog box and import
the new RB_UIConfigure.xml file.
o type
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.
<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.
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>
6. Delete the original GraphStyle.xml file from the Named References dialog box and import the
new GraphStyle.xml file.
• 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).
• To enable schedule coordinators to view resource workload data, the schedule coordinator must
be added to the Resource Graph Viewer role.
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.
• Shifting a schedule
2. Install Client for Office using the stand-alone installer. Select the Microsoft Project plugin in the
Select Features dialog box.
• 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
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.
• Structure indexing
• Shape search
You can also install other search-related features such as Active Content, classification search,
and dispatcher.
• 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.)
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 provides where-used capabilities in the top-level assembly contexts that are
indexed and facet-based search filtering capability.
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.
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.
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.
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.
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.
Maintain the structure indexes by running the runTcFTSIndexer utility using the structure type.
2. Active
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.
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.
• 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.
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.
• 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.
• -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:
• -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
• logging.logger.Teamcenter
• logging.logger.Teamcenter.Soa.Communication
2. Change the logging level to DEBUG for the following in the %TC_ROOT%\
TcFTSIndexer\conf\log4j.properties file:
• Log4j.logger.com.siemens.teamcenter.ftsi
3. Restart Solr and theTcServers and rerun the test use case.
4. Send the TcFtsIndexer log and the matching syslog and comlog files to the Global Technical
Access Center (GTAC) team.
You can identify the syslog and comlog files by matching the local time in the TcFtsindexer log
where the error occurred with the UTC time within the syslogs. Send all files that fit this criteria.
Note
To avoid performance issues, revert the logging levels back to the original state when
your debug session is complete.
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
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.
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.
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).
Troubleshooting structure
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]
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.
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.
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.
You can specify up to 256 variant rules. The variant rules (also known as saved variant rules) are
comma separated and follow this format:
SVR-name:owning-item-query-string:owning-itemrevision-ID
The topline item revision is the default owner.
An example of an input file (bomindex_admin_input.txt) is as follows:
item_id=HDD-0527 | B | Any Status; Working | 5 |item_id=HDD-0527 | 31-May-2013 00:00:00 |
vrule1:item_id=OwnItem1:B,vrule2:,vrule3:item_id=OwnItem3:A
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.
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
------ ------------------ -------------- ----- ------------------------------ ------------ ------------
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.
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:
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
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.
Sometimes you may observe that the FTS indexer is stuck. The symptoms of this condition are
one or more of the following:
• 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.
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.
• 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.
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.
1 – IndexGenStarted
Indicates a transitional state set by the processBOMIndex SOA operation. It is set while the
Teamcenter database index generation is in progress.
2 – IndexGenSuccess
Indicates a transitional state set by the processBOMIndex SOA operation. It is set when the
Teamcenter database index generation is complete.
3 – IndexGenFailure
Indicates a terminal failure state set by the processBOMIndex SOA operation. It is set if the
Teamcenter database index generation failed.
4 – IndexExportStarted
Indicates a transitional state set by the processBOMIndex SOA operation. It is set while the
Teamcenter database index export is in progress.
5 – IndexExportSuccess
Indicates a transitional state set by the processBOMIndex SOA operation. It is set while the
Teamcenter database index export is complete and the TC XML download is starting.
6 – IndexExportFailure
Indicates a terminal failure state set by the processBOMIndex SOA operation. It is set if the
Teamcenter database index export or TC XML download fails.
7 – SolrIndexGenStarted
Indicates a transitional state set by structure indexer. It is set while the TcFTSIndexer is
transforming and uploading the index data to Solr.
8 – SolrIndexGenSuccess
Indicates a final resting state set by structure indexer. It is set when the TcFTSIndexer has
successfully updated Solr with the index data.
9 – SolrIndexGenFailure
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.)
• 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.)
• Status
Indicates the general category of the index state. The output is sorted by the status category.
■ AP
Indicates that sync process in progress.
■ AC
Indicates that the sync process is complete.
■ AF
Indicates that the sync process failed.
■ DP
Indicates that deletion is in progress.
■ DF
Indicates that the deletion failed.
• 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
Indicates the number of occurrences found in Solr for this product configuration. (The counts
should match.)
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}
...
• 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.
Indicates that the given product configuration did not complete processing on the last sync
action and is being promoted to a failure state.
• Status
Indicates fine-grained detail about the current processing. Possible values include:
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).
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
When making changes to these values also consider the maximum number of connections
properties found in the TcFtsIndexer.properties file.
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.
If there are steps that need to be offloaded to a different machine for CPU or memory optimizations,
mark them as step-name.usedispatcher=true in the property file. Each step must implement the
dispatcher-specific interfaces. These methods are called by the TcFTSIndexer framework from the
TcFTSIndexer orchestrator or the Dispatcher module depending on the context.
1. Make sure that the TcFTSIndexer is installed and working in dispatcher mode.
2. Create a dispatcher flow that calls the step to be run in the Dispatcher module in the
TcFtsIndexer_type-name.properties file.
7. Run the main flow from TcFTSIndexer orchestrator using the -dispatcher argument.
• 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.
• 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.
Security configuration
What is security?
Security is protecting data managed in Teamcenter through methods such as user authentication
and file permissions.
• 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.
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.
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.
Note
The third scenario requires additional configuration during the initial installation of
Active Workspace. You must configure a logoff landing page.
(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:
• 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.
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.
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.
3. Click the arrow between the panes to assign the company location.
The Select a Relation Type dialog box is displayed.
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.
• 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.
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.
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.
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.
For more information about modifying business object constants, see Configure your business
data model in BMIDE.
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.
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.
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.
• 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>
• 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”/>
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.
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.
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 will need enablement of Cross-Origin Resource
Sharing (CORS) in the Teamcenter Active Workspace deployment.
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.
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.
4. Save the Web.config file, update the web archive, and redeploy.
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.
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.
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.
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"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
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
You (as a user with dba privileges) can edit style sheets to expose custom revision types in the
context of the product revision and configure traversal paths to define how to traverse the data
structure and specify which relationships are of interest and what should be done when these
relationships are encountered. For example, you can define a traversal path from a primary item type,
such as an analysis revision, to the solver-specific data deck (CAESolver) and from CAESolver to
the file to be exported.
The following is an example of the generic simulation data model.
In Active Workspace, users can select an 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.
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.
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= ...
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.
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:
<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.
Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Model Revision,
Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision
<-(TC_CAE_Source) CAE Model Revision
*/
Cae1SimulationSearchProvider.CAEModelRevision.
(S2P$TC_CAE_Target^^S2P$TC_CAE_Source
^^S2P$TC_CAE_Target:CAEGeometryRevision#S2P$TC_CAE_Source
^^S2P$TC_CAE_Source:CAEGeometryRevision#S2P$TC_CAE_Source)
b. Edit the objectSet source properties in the tc_xrt_Model section of the style sheet.
Default object source:
<section titleKey="tc_xrt_Model">
<objectSet source="Cae1SimulationSearchProvider.CAEModelRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
Change to:
<section titleKey="tc_xrt_Model">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.CAEModelRevision
(S2P$TC_CAE_Target ^^S2P$TC_CAE_Source
^^S2P$TC_CAE_Target:CAEGeometryRevision#S2P$TC_CAE_Source
^^S2P$TC_CAE_Source:CAEGeometryRevision#S2P$TC_CAE_Source)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
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>
Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision
<-(TC_CAE_Source) CAE Model Revision
<-(TC_CAE_Defining) CAE Analysis Revision,
Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Geometry Revision
<-(TC_CAE_Source) CAE Analysis Revision,
Item Revision
<-(TC_CAE_Source/TC_CAE_Target) CAE Model Revision
<-(TC_CAE_Defining) CAE Analysis Revision,
Item Revision
<-(TC_CAE_Target) CAE Analysis Revision
*/
Cae1SimulationSearchProvider.CAEAnalysisRevision.
(S2P$TC_CAE_Source:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEModelRevision
#S2P$TC_CAE_Defining
^^S2P$TC_CAE_Target:CAEGeometryRevision
#S2P$TC_CAE_Source:CAEModelRevision#S2P$TC_CAE_Defining
^^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)"
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
^^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
#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>
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.
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.
You (as a user with dba privileges) can edit style sheets to expose custom revision types in the
context of the product revision and configure traversal paths to define how to traverse the data
structure and specify which relationships are of interest and what should be done when these
relationships are encountered. For example, you can define a traversal path from a primary item type,
such as an analysis revision, to the solver-specific data deck (CAESolver) and from CAESolver to
the file to be exported.
The following is an example of the generic simulation data model.
In Active Workspace, users can select a geometry revision from the Results page and view
the details in the Simulation tab. Alternatively, they can select a geometry revision from the
Results page, click Open to open it separately, and view the details in the Simulation tab. The
Cae1GeometryRevSummary and the Cae1GeometryRevSummaryForShowObjectLocation style
sheets determine the objects displayed in the Related Simulation Objects table for the respective
selection.
You can edit style sheets to add a new traversal path and expose the new objects or edit the default
traversal path to hide some objects in the graphical user interface (GUI). In Active Workspace, you
can 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.
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= ...
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.
*/
Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Source^^TC_CAE_Target)
b. Edit the objectSet source properties in the tc_xrt_Product section of the style sheet.
Default object source:
<section titleKey="tc_xrt_Product">
<objectSet source="Cae1SimulationSearchProvider.ItemRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
Change to:
<section titleKey="tc_xrt_Product">
<!–- ********** Start of customization ********** -->
<objectSet source="Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Source^^TC_CAE_Target)"
<!–- ********** End of customization ********** -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<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.
CAEGeometryRevision
<-(TC_CAE_Source) CAEModelRevision
*/
Cae1SimulationSearchProvider.CAEModelRevision.
(S2P$TC_CAE_Source)
b. Edit the objectSet source properties in the tc_xrt_Model section of the style sheet.
Default object source:
<section titleKey="tc_xrt_Model">
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</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>
*/
Cae1SimulationSearchProvider.CAEAnalysisRevision.
(S2P$TC_CAE_Source ^^S2P$TC_CAE_Source:CAEModelRevision
#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.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>
*/
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>
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.
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.
In Active Workspace, users can select a model revision from the Results page and view the details
in the Simulation tab. Alternatively, they can select a model revision type from the Results
page, click Open to open it separately, and view the details in the Simulation tab. The
Cae1ModelRevSummary and the Cae1ModelRevSummaryForShowObjectLocation style sheets
determine the objects displayed in the Related Simulation Objects table for the respective selection.
You can edit style sheets to add a new traversal path and expose the new objects or edit the default
traversal path to hide some objects in the graphical user interface (GUI). In Active Workspace, you
can use the XRT Editor to directly edit the style sheet controlling the current page's layout. The
editor automatically finds the associated XMLRenderingStylesheet dataset, and presents it for
viewing and editing.
The following is an example of how to edit the style sheet to customize the GUI to display product,
geometry, analysis, and result revisions in the Related Simulation Objects table.
To expose custom revision types in the context of the model revision:
• Edit the Cae1ItemRevSummary style sheet and add customized product, geometry, analysis,
and result revisions. In addition, create construct queries for each of these custom revisions
to specify traversal paths.
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= ...
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.
*/
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>
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.
*/
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"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
*/
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"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
*/
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">
<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>
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.
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.
You (as a user with dba privileges) can edit style sheets to expose custom revision types in the
context of the product revision and configure traversal paths to define how to traverse the data
structure and specify which relationships are of interest and what should be done when these
relationships are encountered. For example, you can define a traversal path from a primary item type,
such as an analysis revision, to the solver-specific data deck (CAESolver) and from CAESolver to
the file to be exported.
The following is an example of the generic simulation data model.
In Active Workspace, users can select an analysis revision from the Results page and view
the details in the Simulation tab. Alternatively, they can select an analysis revision from the
Results page, click Open to open it separately, and view the details in the Simulation tab. The
Cae1AnalysisRevSummary and the Cae1AnalysisRevSummaryForShowObjectLocation style
sheets determine the objects displayed in the Related Simulation Objects table for the respective
selection.
You can edit style sheets to add a new traversal path and expose the new objects or edit the default
traversal path to hide some objects in the graphical user interface (GUI). In Active Workspace, you
can use the XRT Editor to directly edit the style sheet controlling the current page's layout. The
editor automatically finds the associated XMLRenderingStylesheet dataset, and presents it for
viewing and editing.
To expose custom revision types in the context of the analysis revision:
• Edit the Cae1ItemRevSummary style sheet and add customized product, geometry, model,
and result revisions. In addition, create construct queries for each of these custom revisions
to specify traversal paths.
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.
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= ...
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.
*/
Cae1SimulationSearchProvider.ItemRevision.
(TC_CAE_Defining:CAEModelRevision#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision#TC_CAE_Target
^^TC_CAE_Defining:CAEModelRevision#TC_CAE_Source
^^TC_CAE_Defining:CAEModelRevision#TC_CAE_Target
^^TC_CAE_Source:CAEGeometryRevision#TC_CAE_Source
^^TC_CAE_Source:CAEGeometryRevision#TC_CAE_Target
^^TC_CAE_Target)
b. Edit the objectSet source properties in the tc_xrt_Product section of the style sheet.
Default object source:
<section titleKey="tc_xrt_Product">
<objectSet source="Cae1SimulationSearchProvider.ItemRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
Change to:
<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.
*/
Cae1SimulationSearchProvider.CAEGeometryRevision.
(TC_CAE_Defining:CAEModelRevision#TC_CAE_Source
^^TC_CAE_Source)
b. Edit the objectSet source properties in the tc_xrt_Geometry section of the style sheet.
Default object source:
<section titleKey="tc_xrt_Geometry">
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
Change to:
<section titleKey="tc_xrt_Geometry">
<!–- ************* Start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision.
(TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^TC_CAE_Source)"
<!–- ************* End of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
*/
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"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
*/
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"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
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.
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.
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 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.
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.
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= ...
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.
*/
Cae1SimulationSearchProvider.ItemRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Target)
b. Edit the objectSet source properties in the tc_xrt_Product section of the style sheet.
Default object source:
<section titleKey="tc_xrt_Product">
<objectSet source="Cae1SimulationSearchProvider.ItemRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
Change to:
<section titleKey="tc_xrt_Product">
<!–- ************* start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.ItemRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source:CAEGeometryRevision
#TC_CAE_Target^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Target)"
<!–- ************* end of customization ************* -->
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
Tip
You can specify S2P$ as the prefix before a relation to specify that the traversal
path is from the secondary object to the primary object, ^^ as an AND operator
between two paths, and # as the separator between the two segments of the
traversal path.
*/
Cae1SimulationSearchProvider.CAEGeometryRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source)
b. Edit the objectSet source properties in the tc_xrt_Geometry section of the style sheet.
Default object source:
<section titleKey="tc_xrt_Geometry">
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</tableDisplay>
</objectSet>
</section>
Change to:
<section titleKey="tc_xrt_Geometry">
<!–- ************* start of customization ************* -->
<objectSet source="Cae1SimulationSearchProvider.CAEGeometryRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Defining:CAEModelRevision
#TC_CAE_Source^^S2P$TC_CAE_Results:CAEAnalysisRevision
#TC_CAE_Source)"
<!–- ************* 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>
*/
Cae1SimulationSearchProvider.CAEModelRevision.
(S2P$TC_CAE_Results:CAEAnalysisRevision#TC_CAE_Defining)
b. Edit the objectSet source properties in the tc_xrt_Model section of the style sheet.
Default object source:
<section titleKey="tc_xrt_Model">
<objectSet source="Cae1SimulationSearchProvider.CAEModelRevision"
sortdirection="ascending" sortby="object_string"
defaultdisplay="tableDisplay" maxRowCount="5">
<tableDisplay>
<property name="object_string"/>
<property name="object_type"/>
<property name="release_status_list"/>
<property name="date_released"/>
<property name="owning_user"/>
</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>
*/
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>
<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>
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.
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.
Subscription configuration
• Subscribable properties.
• 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.
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}
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:
• 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:
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.
o Rich client
Use the format WEB_SERVER_HOST:PORT; for example, 10.123.54.46:7001.
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
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.
• Configure the viewer for a Security Services-enabled environment (Teamcenter 11.x or 12.x).
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 Extension
Installs the visualization template for Active Workspace.
Select Active Workspace→Server→Visualization Extension.
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.
See Getting Started with Product Visualization in the Teamcenter help collection.
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.
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.
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.
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.
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.
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.
3. Locate the following registry key, replacing version with the Active Workspace version.
HKEY_CURRENT_USER\Software\Siemens\AW\version\Vis View Base\C\
c. Right-click the UseSSO value in the right pane, 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.
9. Restart the Visualization Server Manager to see the change take effect.
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.
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 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.
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.
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.
• maxUsageThreshold
The Visualization Pool Assigner and Server Manager possess a maxUsageThreshold
configuration parameter. This parameter represents the maximum usage and load ratio that any
Visualization Server Manager or VisView process may possess before the Visualization Pool
Assigner refuses to allocate new open model requests to that Visualization Server Manager or
VisView process. The Visualization Pool Assigner and Server Manager do not assign any more
users to a particular VisServer if its system load (an amalgam of network usage, CPU usage,
memory usage, and GPU memory usage) exceeds the given threshold specified with this
parameter. The range of values accepted is 0.0 (no load) to 1.0 (full load).
To modify this configuration parameter for the Visualization Server Manager, 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.
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.)
Name Value
TCVIS_LOGGING_ENABLE True
Note
For this environment variable, the
value of True is case sensitive.
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.
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).
3. Navigate into the WEB-INF\lib\ area and locate the vis-proxy jar file.
5. Add the location of Metrix.dll to the path of the server that hosts your Visualization Pool
Assigner. The easiest way to do this is to find the script that starts the server, or to create a new
script to start the server if one does not already exist. In the script, prepend the location of
the Metrix.dll to your path.
Example
If you place Metrix.dll in C:\foo, add the following command to the script:
set path=C:\foo;%path%
If the Visualization Pool Assigner succeeds in finding Metrix.dll, no warning is displayed and the
JMX metrics are populated with meaningful data.
• Select the correct service level for the Visualization Licensing Level option in the Teamcenter
Organization application.
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.
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.
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.
3. Locate the following registry key, replacing version with the Active Workspace version.
HKEY_CURRENT_USER\Software\Siemens\AW_Retained\version\Common\C\Measurement\
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.
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.
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.
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
• 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.
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.
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
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.
You may want to change how workflow assignments are displayed to end users.
• 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.
Note
Currently, users cannot manually subscribe to resource pools through Active Workspace.
• The current user who is either the assignee of the task or an active surrogate can reassign a task.
• For signoff tasks, if the decision has not been set, the current user who is either the assigned
group member or the active surrogate can reassign the task.
Use the Fnd0AddReviewerPrivilege Business Modeler IDE condition to restrict the addition of
reviewers at the perform signoff stage of workflow tasks. By default all users can add reviewers to
perform signoff tasks.
Refer to Configure your business data model in BMIDE in the Teamcenter collection for more
information about setting conditions.
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
• 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
• Logical
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.
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
For more information about these workflow handlers and preferences, see Workflow Designer and
Environment Variables Reference in the Teamcenter help collection.
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.
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
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
EPMTask
Signoff
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.
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.
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.
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.
4. Select the link and then, in the Link URL box, type the Active Workspace address.
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.
b. Press Alt to display the Menu bar (or right-click the Address bar and then select Menu bar).
1. As needed, configure the local computer to host Active Workspace in standalone Lifecycle
Visualization.
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.
• Specify the URL for accessing Active Workspace from the Adobe applications.
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:
• config.xml (this is the Active Workspace Adobe configuration file that can be configured for
automated deployments)
5. Copy the AWIntegration.zxp file into the ExMan_root folder so that this is in the same location
as the ExManCmd.exe utility.
6. Close all active Adobe applications that are compatible with the extension.
7. For Windows, open the command prompt and enter the following command:
ExManCmd /install AWIntegration.zxp
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.
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.
• For Windows:
C:\Users\user_name\AppData\Roaming\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.
Example
For Windows:
<WorkingDirectory>c:\temp</WorkingDirectory>
For Mac:
<WorkingDirectory>/tmp/com.mb.teamcenter.awc/</WorkingDirectory>
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.
• 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.
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.
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.
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.
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.
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.
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.
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.
-pf
Specifies the password file.
For more information about managing password files, see Utilities Reference in
Teamcenter help.
-g
Specifies the group associated with the user.
-inputFile
Specifies the full path to the Access Manager/Access Controls test harness input
XML file.
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.
-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
• Access Manager
Example
Following is a sample input XML file to test Access Manager rules.
• Access Controls
Example
Following is a sample input XML file to test Access Controls operations.
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.
• 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.
-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.
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.
-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
• 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”
bomindex_admin
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.
-g
Specifies the group associated with the user.
-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:
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
• 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.
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.
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
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
delete_uiconfig
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
-h
Displays the help for this utility.
export_uiconfig
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.
-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 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
export_wsconfig
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
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.
-pf
Specifies the password file.
For more information about managing password files, see Utilities Reference in
Teamcenter help.
-g
Specifies the group associated with the user.
-adminDataTypes
Specifies the types of administrate data to include in the compare report. You provide
the data types as a comma-separated list (no spaces). You may also specify the
all value to include all data types defined in the local system or the specified input
package.
Tip
Use the -listTypes argument to get a list of available administration data
types.
If the report contains multiple data types, it includes a where used table showing
where each object is referenced.
-inputPackage
Specifies the full path, including the file name, of the export administration data
package from the site for which the report is generated. If you do not specify this
argument, the utility generates a report for the local site.
-outputDir=
Specifies the path to directory where you want the report saved. You must specify
this argument.
-listTypes
Displays a list of the available administration data types that you can include in the
report.
-h
Displays help for this utility.
ENVIRONMENT
As specified in Manually configure the Teamcenter environment in Utilities Reference
in Teamcenter help.
This is a Java utility that, by default, has the maximum Java heap size set to 1024M.
For reports that contain a large number of objects, you may need to increase maximum
Java heap size to avoid out-of-memory errors or poor performance. If possible, set the
maximum heap to at least to 4096M for large reports. You can set this value using the
BMIDE_SCRIPT_ARGS environment variable, for example:
set BMIDE_SCRIPT_ARGS=-Xmx4096M
Note
Java standards require that no more than 25 percent of total RAM be
allocated to virtual memory (VM). If the amount allocated to the Java VM
exceeds this percentage, degradation of performance can occur.
FILES
EXAMPLES
• Generate a list of the administration data types that you can export:
generate_admin_data_report
-u=admin-username -p=admin-password -g=dba
-listTypes
• Generate a report containing the preferences and their values at the local site:
generate_admin_data_report
-u=admin-username -p=admin-password -g=dba
-adminDataTypes=Preferences
-outputDir=C:\temp\admin_data\siteA\preferences_report
import_uiconfig
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.
-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 (").
import_wsconfig
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
ac_data_loader
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.
-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:
• To load migrated Access Controls function and rule files plus base functions and
regenerate expressions:
req_word_html_converter
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
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.
-p
Specifies the password for the specified user ID.
-g
Specifies the group associated with the user.
-failedObjects
(Optional) Specifies the full path to the failed_IDs.txt file that reports the specification
element subtypes that were not converted.
-path
Specifies the full path to the (.Net)-HtmlConverter01.exe utility.
-dumpLogs
(Optional) Dumps a detailed debug log with more information about the point in the
code the utility is failing or which full-text dataset is causing the error.
-forceUpdate
(Optional) Forces the update and repair of all requirements in database even if they
were previously converted.
-h
Displays help for this utility.
-htmlToWord
Converts requirements from HTML format to Microsoft Word.
-wordToHtml
Converts requirements from Microsoft Word format to HTML.
-processObjectList
Specifies the full path of the text file containing FullText UIDs.
-in
Specifies a selective conversion of an entire requirement specification structure to
html. The input is a criteria file that defines this structure.
The schema for the file is as follows:
KEYWORD_SEPARATOR=KWS
KEY_VALUE_SEPARATOR=KVS
RULE_SEPARATOR=RS
keys KWS key1=value1 KVS keyN=valueN RS rev_rule KWS revision-rule RS
topline_rev KWS topline rev
keys KWS key1=value1 KVS keyN=valueN RS rev_rule KWS revision-rule RS
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.
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
-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
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 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
3 clears the object data indexing records from the accountability table.
-task=objdata:clear n path_to_uid_file
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.
In this example, the first 100 errors are sent to the specified output directory:
runTcFtsIndexer -task=objdata:errors d:\TcFTSIndexer\errors 100
• objdata:index
Without clearing the existing index, this flow action
performs indexing for the time period specified in the
TC_ROOT\TcFTSIndexer\conf\TcFtsIndexer_objdata.properties file.
For a clean start, first use objdata:clear to clear indexed data and cached files.
• objdata:indexsyncfailures
Use this flow to index synchronization failures that required manual intervention.
• objdata:recover
Recovers failed indexed objects.
If failures are reported during initial indexing, run the recover flow action after
initial indexing completes. Recover failures from the initial index by running
objdata:recover repeatedly until there are no failures reported or the failures
are consistent and need to be fixed.
You can choose to fix the errors or leave them for later and proceed with the
synchronization flow. If you leave them, these errors are logged as failures during
synchronization. You can return at a later time to fix them. The recover flow
action operates by time slice. The recover flow action processes all failed objects
as one entire set.
• objdata:show
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
In this example, the output files contain the objects that failed indexing:
runTcFtsIndexer -task=objdata:show 3 d:\TcFTSIndexer\uid_output
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
• objdata:sync
Updates the index with changes to data between the previous run and the current
run.
• 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
• multisite:indexuids
Index the UIDs for a specific Object Directory Services (ODS) site.
Specify the ODS site name and the directory containing the uid.txt file, for
example:
runTcFTSIndexer -task=multisite:indexuids
ODS_Site_name D:\UID_dir
• multisite:indexsyncfailures
Index synchronization failures that required manual intervention.
• multisite:sync
Updates the index with changes to published record data between the previous
run and the current run.
The sync action can take the -interval=seconds argument to repeat the sync
action at the specified interval. For example, to synchronize multi-site published
record data every 300 seconds (5 minutes):
runTcFTSIndexer -task=multisite:sync -interval=300
• 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
• 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
• structure:test
Verifies that the environment is set up correctly prior to running the indexer, for
example:
runTcFTSIndexer -task=structure:test
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*
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]
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.
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
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.
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.
• 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.
Global constants
Following are the global constants unique to Active Workspace:
• Awb0SupportsStructure
Specifies the business objects that can have a structure under it. If you want to display a custom
business object in the Content tab, add the custom business object to this constant. This
constant is added by the Active Content Structure template (activeworkspacebom).
• Awp0FilterCategoryDisplayCount
Specifies the default number of search filter categories to display in the Search Filters panel.
• Awp0FilterValueDisplayCount
Specifies the default number of search filter values to display within a search filter category. If
additional values are available for filtering in any category, a More button appears to display
the remaining values within each category.
• 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:
Functionality
Fnd0LogicalBlock
RequirementSpec
Requirement
Paragraph
Fnd0SystemModel
Note
The Architecture tab is not visible for custom business objects. Determine the
business object types that require the Architecture tab. From these types, determine
those that are the top line in structures. Add only those types to the value of the
Awb0AvailableFor business object constant on the Ase0ArchitectureFeature
business object.
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
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
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:
• 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.
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 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.
• 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:
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.
• 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.
• 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.
o CMMaturity – The degree of completion of the overall change process (its Maturity).
• 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.
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.
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:
4. Awp0TestItemRevMasterS is a compound property that references the data file of the Master
form.
Be sure to set the index, search and filter property constants on the new compound property.
In Teamcenter, the following audit log types hold audit records based on logical groupings of object
type and event type combinations:
• General logs
• Organization logs
• Security logs
• Schedule logs
• Structure logs
• Workflow logs
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.
As a DBA user, you can view audit logs using the Audit Logs tab in Active Workspace.
To enable the audit log feature, you must install the Audit feature during your Active Workspace
installation using Teamcenter Environment Manager (TEM).
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.
• User ID
• Change ID
• Reason
• Group Name
• Role Name
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"/>
4. Using Active Workspace, verify the Secondary Object Type field was successfully removed.
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
You can view audit logs using the Audit Logs tab in Active Workspace.
• General Logs
• Structure Logs
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.
2. Insert an inject statement for the audit log you want to add.
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:
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.
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.
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.
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.
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.
Example: I want the summary view's property layout for item revisions to depend on my
users' login information
• You want a default style sheet that everyone will use unless otherwise specified.
• You have users that just need a simplified layout for viewing.
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.
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.
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.
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.
• 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.
• 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.
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
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.
You can specify more than one of these by putting a space between them.
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.
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.
• Override preferences for this session context, if the preference scope allows it.
3. Select a preference.
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.
4. In the Add Override panel, choose the location for the override (if allowed), set the new value,
and then choose Add.
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
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.
By default, the list of available revision rules is obtained from Teamcenter. However, as an
administrator, you may want to provide different revision rules for Active Workspace than are used in
the rich client. For example, you may want to have Active Workspace default to Latest Released
whereas you want the rich client to still default to Latest Working.
To set a different list of revision rules for Active Workspace, add revision rules to the
AWC_Rev_Rule_List preference. Whenever a custom revision rule is created, you must add it to
this preference for it to appear in the revision rules list. By default, the preference is empty, meaning
that the revision rules list in Active Workspace defaults to the revision rules from the rich client.
To set the revision rule that is selected by default, add it to the AWC_Rev_Rule_Selected preference.
The revision rule in this preference must match a revision rule in the AWC_Rev_Rule_List preference.
If the revision rule in the AWC_Rev_Rule_Selected preference is removed from
the AWC_Rev_Rule_List preference, you must change the revision rule in the
AWC_Rev_Rule_Selected preference to one in the AWC_Rev_Rule_List preference.
By default, the AWC_Rev_Rule_Selected preference is empty, meaning that the first revision rule in
the AWC_Rev_Rule_List preference is the one that is selected by default in the user interface.
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.
• Dispatcher Server and Dispatcher Client components under Teamcenter Enterprise Knowledge
Foundation are installed using 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.
• 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.
<section titleKey="tc_xrt_Preview">
<image resolution=”<user_input>” source="thumbnail"/>
</section>
• 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.
Note
The values for image resolution are not case sensitive.
Troubleshooting
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.
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.
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
Following are some examples of declarative conditions using the ctx object.
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.
• 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.
3. Click OK.
3. Ensure that the web application file is set to the correct locale.
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.
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"
Each of these directories also contain a scheduleTask.cmd file that creates an ONSTART task.
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.
c. Start the Visualization Pool Assigner using the appropriate startup script (and not as a
Windows Service).
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
■ 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).
a. Launch VisServerFV\Products\FoundationViewer\visview.exe.
■ No –
◊ Does an error message appear that complains of a missing MFC DLL?
• Yes – Download and install the appropriate redistributables.
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.
■ No – Continue.
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
e. Continue.
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.
◊ 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.
■ 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.
• 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.
• 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. Verify that your FMS_HOME environment variable specifies the FCC installation area.
%FMS_HOME%/bin/fccstat –purge
%FMS_HOME%/bin/fccstat –kill
• C:\Users\%USERNAME%\Teamcenter\SOA
• C:\Users\%USERNAME%\vendor\logs
• C:\Users\%USERNAME%\fcc.*
• VisDataServer/Program/scratch/*.
C. Start FCC manually using the command “%FMS_HOME%/startfcc.bat” and verify that
there are no errors.
“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.
• 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.
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 –
• No – No solution.
• No – 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 ...” .
Solution
If the driver for the graphics adapter is not the latest version, update
the driver and reboot.
2. In the Touch tab, select the Press and Hold action and click
Settings.
Solution
1. Clear the cache in Internet Explorer by choosing Tools→Delete
Browsing History on the menu bar.
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.
The Viewer Administration page appears. The initial view of the page includes a diagram of
active visualization components and processes.
3. For details about an object included in the diagram, select the object, and click Info .
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.
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
• 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
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
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.
• 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.
• 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.
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.
• 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
• 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.
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.
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.
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.
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.
Tip
While creating roles, use real-world descriptions, skills, and responsibilities.
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.
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.
Users can be assigned various roles in the organization. A user can also be part of multiple groups in
the organization.
Example
Robert Green, a user, is assigned the default role of Standards Engineer and belongs
to the default group high_performance.
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.
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.
Create a group
• 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
3. Click Add.
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 .
• User ID
• OS Name
• Default Group
• Default Volume
• Status
Note
To create an active user, set Status = 0.
• License Level
• License Server
• License Bundle
1 (Standard)
2 (Professional)
3 (Mockup)
• Geography
• Nationality
• Citizenships
• Address
• City
• State
• Zip Code
• Country
• Organization
• Employee Code
• E-Mail Address
• Phone Number
• Locale
• Time Zone
3. Click Add.
• In Search, enter the name of an existing role, and select the required role from the search
results.
4. Click Add.
• 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
2. Click Open .
Deactivate users
You can deactivate a specific user ID by modifying the status of the user. This user is retained in the
database and can be activated for future use.
Example
Consider a designer who will be going on an extended leave of absence. Instead of
deleting the user from the project group, you can temporarily deactivate the user. Once the
user is available, you can set the status to active.
1. In the Roles tab, search for the user whose status you want to modify.
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.
2. Click Open .
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 .
3. In the Change Password panel, enter a password in the New Password box.
5. Click Change.
Logical Objects
• Eliminate the need for the end user to know the data model by presenting a flat list of properties.
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.
• Dynamic compound properties are a display capability. While flexible, they are not real properties
nor real objects to be queried or exported.
• Traditional static compound properties are a change to the Teamcenter schema, and must be
created using the Business Modeler IDE, and then deployed.
No properties are desired from the word object , since this is internal to your department.
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.
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.
Result
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
A destination criterion is a way for the system to filter out destination objects at runtime.
If your destination object is another logical object, then its root type is considered for this purpose,
even though logical objects are runtime objects.
• No options
The destination object will be chosen at runtime with no special considerations.
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.
When viewing a logical object, use the Add command from the Included Logical Objects table.
Workspaces
Best practice
The primary use of workspaces is to control the access that your users have to various pages and
commands within the Active Workspace client. The Default workspace, provided out-of-the-box,
is an inclusive workspace, meaning that it has access to all pages and commands by default. This
workspace is not meant for use in your production environment, but rather is provided so you can
explore content right away without having to do an initial configuration.
Siemens 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.
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>
kit.json
The OOTB kit file is automatically updated with the name of your custom module and your workspace
ID..
"name": "tc-aw-solution",
"modules": [
"mysamplemodule",
"tc-aw-solution"
],
...
"solutionDef": {
...
"workspaces": [
"TCAWWorkspace",
"TcAdminWorkspace",
"TcAuthorWorkspace",
"TcConsumerWorkspace",
"myExclusiveWorkspace"
],
"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.
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.
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"
]
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
<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 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:
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>
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
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
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.
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>
Tip
To assign the tile collection to all users, replace
<WorkspaceScope id="..." />
with
<SiteScope/>
instead.
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.
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.
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.
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.
You can use the -for_workspace option to export the column configuration for a specific workspace.
...
</Import>
Use the exported examples as a guide to create your own column configuration, or simply use
an existing one.
You use the import_uiconfig utility to import your custom column configuration file.
In the following example, you import your custom file myui.xml, which contains your column
configuration definitions.
import_uiconfig -u=xxx -p=xxx -g=dba -for_workspace=myCustomizerWorkspace -file=c:\temp\myws.xml
Precedence
• 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.
This location contains a list of the Workspaces and Pages. This will have more functionality in future
versions, for now it is simply a way to verify that the system knows about your workspace.
Remove a workspace
You can remove a custom workspace by removing each component.
• Client-side
Remove the client-side portion of the workspace by removing the declarative definition. This is a
JSON file located in your STAGE\src\solution folder.
• Server-side
Delete the server-side configuration by using the -action=delete argument of the
import_wsconfig utility.
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.
<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.
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.
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.
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.
In this example, you have opened the Add panel with your primary browser tab and selected the
Item type.
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.
This does not require navigation, and can be used to make edits as needed if you already know
what you are looking for.
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>
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>
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>
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>
ADDITIONAL
INFORMATION
As the browser tab narrows, the contents of extra right-hand columns will move onto
the end of the first column.
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
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.
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>
header
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>
htmlPanel
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"/>
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>
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>
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.
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>
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>
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.
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
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.
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.
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">
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>
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"/>
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.
• 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.
The same pages when viewed in the primary workarea, such as viewing an object
directly.
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
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"/>
• 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*"/>
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>
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>
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"
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>
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>
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.
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.
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