AWC Architecture Recap
Active Workspace is a web client built on a modular JavaScript stack. Customization options include AWC client extensions, server-side services, and embedding third-party components via iFrames or widgets.
When to Customize AWC
- To add context-sensitive UI components (e.g., custom part summary panels)
- To embed analytics or dashboards within the AWC UI
- To integrate lightweight third-party viewers
AWC Extension Types
1. Client-side (JavaScript/React) Extensions
Create React components that plug into AWC extension points. Keep them stateless where possible and use Teamcenter REST APIs to fetch data.
2. Server-side Extensions
Develop services (SOA/REST) that the AWC client can call for heavy-lift operations or data transformation.
3. Embedded Widgets / iFrames
Use iFrames for third-party dashboards (Power BI) or add lightweight widgets that load from a trusted origin.
Sample: Simple AWC Client Extension (Pseudo-code)
// register a custom panel
awp.registerPanel('my.custom.panel', {
render: (container, context) => {
// fetch data from Teamcenter REST
fetch('/tc/odata/Service/PartService(123)')
.then(res => res.json())
.then(data => container.innerHTML = `${data.name}
`);
}
});
Best Practices
- Keep extensions modular and under version control.
- Respect AWC lifecycle hooks to avoid memory leaks.
- Use HTTPS and validate origins for any embedded iFrame content.
- Document extension points and provide config-driven options.
Testing & Deployment
Bundle client extensions as part of your awc.war or deploy them through the AWC extension mechanism if your Teamcenter version supports remote extension loading. Run cross-browser tests and verify performance under load.