Excellent questions - these were critical design decisions. Let me walk through our complete technical implementation:
REST API Integration Architecture:
We built a middleware service in C# that acts as the integration bridge. The service authenticates to both systems using OAuth 2.0 tokens stored in Azure Key Vault. For Aras, we use the standard REST API with bearer token authentication. Teamcenter integration uses their SOA services exposed through REST endpoints.
Authentication flow:
// Pseudocode - Authentication sequence:
1. Retrieve encrypted credentials from Azure Key Vault
2. Authenticate to Teamcenter SOA and obtain session token
3. Authenticate to Aras REST API with OAuth bearer token
4. Store tokens in memory cache (4-hour expiry)
5. Implement token refresh logic before expiration
CAD BOM Field Mapping:
We created a custom ItemType called “TC_BOM_Mapping” in Aras that stores field mappings in a configuration-driven approach. Each mapping record defines:
- Source field (Teamcenter attribute)
- Target field (Aras property)
- Transformation rules (data type conversion, unit conversion, value mapping)
- Validation rules
For complex hierarchies, we implemented a recursive traversal algorithm that processes BOM structures level by level. The system handles up to 15 levels deep (our maximum assembly complexity). Each level maintains parent-child relationships using Aras Part BOM structure.
Mapping example:
Teamcenter Field -> Aras Property
item_id -> item_number
revision_id -> major_rev
uom -> unit_of_measure (with conversion table)
find_number -> find_num
quantity -> quantity
Scheduled Sync Jobs Implementation:
The Windows service runs as a scheduled task with the following workflow:
- Change Detection: Query Teamcenter for items modified since last sync timestamp using date_modified filter
- Data Extraction: Retrieve full BOM structure for changed items including all child components
- Transformation: Apply field mappings and business rules from configuration table
- Validation: Check data integrity, required fields, and business constraints
- Aras Update: Use batch API calls to create/update Parts and BOM relationships
- Logging: Record all changes, errors, and sync statistics
Conflict Resolution:
We implemented a “source of truth” model where Teamcenter is authoritative for CAD-originated data. Aras modifications to synced fields are flagged and reported but not overwritten automatically. Administrators receive daily reports of conflicts requiring manual review.
Each synced Part in Aras has custom properties:
- tc_source_id (Teamcenter item ID)
- tc_last_sync (timestamp)
- tc_sync_status (success/conflict/error)
- is_tc_managed (boolean flag)
Traceability:
We added a “Source System” field to Parts that displays “Teamcenter” for synced items. A custom relationship “TC_Sync_History” tracks every sync operation with before/after snapshots. Users can view full audit trail showing which fields came from Teamcenter versus manual Aras entries.
Performance Optimization:
For large BOMs (500+ items), we implemented:
- Parallel processing using TPL in C# (max 10 concurrent threads)
- Batch API calls (50 items per request)
- Delta sync based on modification timestamps
- Database indexing on tc_source_id and tc_last_sync fields
Results:
Average sync times: Small BOMs (<50 items) = 30 seconds, Medium BOMs (50-200 items) = 3-5 minutes, Large BOMs (200-500 items) = 8-12 minutes
Error rate dropped from 15% manual entry errors to <1% sync errors
Engineering time savings: 16 hours per week across team
The key to success was treating this as a data integration project with proper mapping configuration, conflict handling, and monitoring rather than a simple API connection.