🔗 Teamcenter SOA FAQ
🧩 Section 1: Overview & Fundamentals
1. What is Teamcenter SOA?
Teamcenter SOA (Service-Oriented Architecture) is a Java-based API to
communicate with Teamcenter services. It enables client-server applications
with business logic exposed via service stubs.
2. Difference between ITK and SOA?
Feature ITK SOA
Langua C/C++ Java
ge
Scope Server-side Client-server
integration
Context Runs inside TC Can run externally
server
3. Main components of SOA:
Service Stub JARs
Service Data Objects (SDO)
Service Manager
Connection and Session
4. How to authenticate/login?
Connection connection =
Connection.getConnection("http://host:port/tc");
CredentialManager cm = new CredentialManager(connection);
cm.login("user", "pass", "group", "role");
5. What are Service Stub JARs?
Auto-generated Java interfaces from WSDL for accessing Teamcenter
services.
6. What is an SDO?
Service Data Object is a Java class used to structure data exchanged
between client and Teamcenter services.
7. Common SOA services:
DataManagementService
SavedQueryService
FileManagementService
WorkflowService
StructureManagementService
8. How to find right service?
Use WSDL or API documentation. Analyze BMIDE business objects to trace
operations.
9. How to search objects via SOA? Use SavedQueryService.find() and
executeSavedQuery().
🧩 Section 2: Data Operations & Uploads
10. How to create an Item using SOA? Use createObjects() from
DataManagementService with ItemProperties and CreateInput.
11. How to attach a dataset?
Upload file → create Dataset → relate to Item Revision using
createRelations().
12. How to upload files to Teamcenter? Use
FileManagementUtility.putFiles() after setting up a DatasetFileInfo array.
13. How to relate objects?
Use createRelations() method in DataManagementService specifying primary,
secondary, and relation type.
14. How to delete objects? Use deleteObjects() in
DataManagementService.
🧩 Section 3: Workflow Integration
15. How to start a workflow?
Use EPMService.createProcess() and startProcess().
16. How to assign reviewers? Use performAction() and setSignoff() on
target task.
17. How to complete a task programmatically?
Use performAction() with EPM_perform_signoff_task and task tag.
🧩 Section 4: Session & Error Handling
18. How to maintain session across services? Store Connection object
and reuse it for all service calls.
19. How to handle exceptions in SOA? Catch ServiceException or
ServiceDataException. Use:
if (response.serviceData.sizeOfPartialErrors() > 0) {
String msg = response.serviceData.getPartialError(0).getMessages()
[0].getText();
}
20. How to logout?
Use SessionService.logout().
🧩 Section 5: Deployment & Tools
21. How to generate SOA stubs? Use ServiceStubGenerator tool with
wsdlLocation and outputDir parameters.
22. Where are WSDLs located?
Typically under: tcroot/tcdata/wsdl
23. How to debug SOA client? Use Java logging or enable -
Dcom.teamcenter.soa.client.log system property.
24. Tools to test SOA?
Eclipse + JARs
Postman with WSDL endpoints
SOAP UI (for older WSDL-only calls)
25. How to test SOA outside Teamcenter? Set up connection with valid
credentials and invoke service using stub JARs. No need to run inside
Teamcenter.
(Sections 1 to 5: Overview, Data, Workflow, Errors, Deployment…)
🖥 Teamcenter RAC Customization FAQ – Section 1:
Overview & Architecture
1. What is Teamcenter RAC?
Teamcenter RAC (Rich Client) is a Java-based Eclipse RCP (Rich Client
Platform) application that provides a GUI for Teamcenter users.
2. What is RAC customization?
RAC customization involves extending or modifying the Rich Client UI using
Eclipse plugins, extension points, and SWT/JFace.
3. What technologies does RAC use?
Java (JDK 8+)
Eclipse RCP (Rich Client Platform)
SWT/JFace for UI
Eclipse Extension Points for modularity
4. What is the folder structure of RAC?
plugins/ – Eclipse plugins
configuration/ – runtime configs
portal/ – startup scripts
lib/ – dependencies
🧩 RAC Customization FAQ – Section 2: Plug-ins,
Extensions, and Commands
5. How to create a RAC plugin?
Use Eclipse PDE:
File → New → Plug-in Project
Add extension point: org.eclipse.ui.menus or
org.eclipse.ui.commands
6. What is an extension point?
An extension point is a declared customization point that your plugin can
contribute to (e.g., menus, views).
7. How to add a custom menu item in RAC?
Add org.eclipse.ui.menus
Define menuContribution and handler class
8. How to implement a command handler?
Implement IHandler or extend AbstractHandler and override execute().
9. What is the role of plugin.xml?
plugin.xml defines metadata, extensions, menus, and handlers for your
plugin.
🧩 RAC Customization FAQ – Section 3: UI Customization &
Property Pages
10. How to create a custom property page?
Use org.eclipse.ui.propertyPages extension point and define applicable
object types.
11. How to access Teamcenter objects in RAC?
Use TCSession, TCComponent, TCProperty, and TCComponentItemRevision, etc.
12. How to add tabs or custom fields in existing dialogs?
Use CustomPanelProvider or override forms using BMIDE configuration.
13. How to retrieve selected object in RAC?
Use TCSelectionHelper.getTargetComponents() from the current context.
14. How to update properties in RAC?
itemRevision.setProperty("object_name", "New Name");
itemRevision.save();
🧩 RAC Customization FAQ – Section 4: Deployment &
Versioning
15. How to deploy a RAC plugin?
Build plugin JAR
Place in site_mods/plugins/
Add to site.xml for provisioning
16. What is site.xml in RAC?
Defines all the available features and plugins for RAC provisioning.
17. How to update plugin versions?
Change Bundle-Version in MANIFEST.MF and update site.xml version entry.
18. How to make plugins load only for certain roles?
Use BMIDE configurations or programmatic filters via session context.
🧩 RAC Customization FAQ – Section 5: Debugging &
Troubleshooting
19. How to enable logging in RAC?
Edit portal.bat and add -debug or -consoleLog.
20. Where are RAC logs stored?
<user_home>/.eclipse/
workspace/.metadata/.log
21. How to debug a RAC plugin?
Use Eclipse Debug Configuration with Teamcenter launch target.
Attach to process using remote debugging.
22. Common causes of plugin load failures?
Incorrect extension point
Missing dependencies in MANIFEST.MF
Unsatisfied version constraints