A question I get with some regularity is some variation of, “How do I get started as a Teamcenter ITK developer?”, or, “…as a Teamcenter customizer?” It’s gotten to the point where I either have to:
- start ignoring all of those emails.
- Write a post that I can point people to which answers the question once and for all.
After much deliberation, I decided to go with option b.
I have to warn you that there is no magic bullet to becoming a Teamcenter customizer, but here are three basic approaches to getting started:.
Take a class
The first approach is take a training class. Siemens offers a Customization training class that covers ITK and (some) Java programming, and an Application Administration that covers things like the BMIDE, workflows, and ACLs. These classes aren’t cheap. The U.S. prices are nearly $3,000 for a five day course. I can’t find pricing information for other countries, but I assume it’s not cheap. If there isn’t a training center local to you you’ll also have to pay travel and lodging expenses.
I took an old version of the Customization class years ago. It was alright, but don’t expect to be an ITK wizard after taking it. Five days is not enough time to go very deep into ITK so it’s really a crash course to get you started. To be honest, by the time I took the class most of the material was review for me because I had already needed to figure most of the information out on my own. I imagine I’d have struggled less though had I taken the class earlier.
I’ve taken several versions of the Application Administration class. The first time I had no idea what was going on — I was literally trying to remember what “PLM” and “PDM” stood for, let alone what they meant. So I didn’t get much out of the class right away. However, over the course of the next year or so as issues came up I would at least remember that I may have heard something relevant in the class so I’d look it up in the course book. By the time I took the next version of the class for a new version of the software I at least had enough grounding in the application so I could ask intelligent questions. I got a lot more out of the course the second time.
Third Party Training
Googling “Teamcenter training” comes up with several outfits that say they offer some sort of training course. I haven’t taken any of those, nor have I spoken to anyone who has, so I have no idea what’s available or if they’re worthwhile.
Siemens has an online training program called Learning Advantage. I haven’t used it myself. It covers some material from the Application Admin course, such as workflow administration. It doesn’t appear to cover ITK or Java development.
*Read The Fine Manual
The next approach is to dig into the documentation. No documentation is perfect, but what Siemens provides isn’t all that bad if you put some effort into working your way through it.
Here are some key links.
These links are behind GTAC‘s paywall so you will need a web key account in order to access them.
These links are for Teamcenter 10.1. Other versions are also available online. I presume you can find those if you need those.
GTAC’s Teamcenter Online Documentation (PDF)
Teamcenter documentation in PDF format. Download these files for your personal library.
GTAC’s Teamcenter Online Documentation (HTML)
Teamcenter documentation web pages. This collection contains some information not included in the PDFs, such as the ITK and Services references.
Getting Started with Customization (PDF)
A good starting point to get started understanding how customizations work
Server Customization Programmer’s Guide (PDF)
All about server side programming, i.e. ITK, such as user exits, custom workflow handlers, pre-conditions, pre-actions, post-actions, and implementing custom SOA services
Client Customization Programmer’s Guide (PDF)How to customize the client — Java customizations, XML style sheets, and also thin client (i.e. web client) customizations with TcScript
How to program the the client side SOA intefaces.
ITK Function Reference
Every ITK module, function, data structure, and #define. The amount of documentation varies quite a it from module to module. If you find yourself looking at a module that has no documentation besides the function names it’s probably not the module you really want to be using.
Reference for the SOA client side code.
Data Model Report
This is new. it lays out the type hierarchy. Right now it seems to be just a listing of what-inherits-from-what, and what the properties are at each level. Hopefully more work is coming to start explaining what the different object types actually are.
PLM World forums
I’ve mentioned them before; I’d be remiss if I didn’t mention the PLM World ITK and Java message boards (registration required). This is where I go when I’m stuck. You often will better answers, sooner, than you will calling GTAC.
PLM World presentations
Every year there are numerous papers presented at PLM World on customization. Take some time to search through previous years’ PLM World presentations.
This web site
Of course, there have been a few programming articles posted here on this web site.
Study someone else’s code
If you want to become a Jazz musician you study Coltrane’s solo on Giant Steps. If you want to become an Teamcenter programmer you study someone else’s Teamcenter code.
GTAC sample code
The first place to look is GTAC’s solution center. Search for the phrase “Sample ITK” to find several sample ITK programs. Pay attention to the age of the individual articles though. Some of them may have been written for older versions of Teamcenter and may use deprecated functions. However, on the large this is an excellent resource.
Sample files installed with Teamcenter
The directory %TC_ROOT%\sample contains several sample .c files. Unfortunately there doesn’t seem to be a valid source of sample Java files.
Your colleagues’ or your predecessors’ code
Assuming your site isn’t brand new to Teamcenter, there’s likely some legacy code laying around. Find it and study it. If you have a development instance of Teamcenter available, try modifying the code and deploying it to see what happens. Poke the box a little, see what happens.