We successfully automated our ECO approval workflow by integrating Windchill 12.0 with our SAP ERP system using REST APIs. Previously, our engineering change process required manual data entry across both systems, causing delays and errors.
The implementation focused on three key areas: REST API event integration to trigger ERP notifications when ECOs reach specific lifecycle states, real-time status synchronization between systems to maintain data consistency, and significant cycle time reduction by eliminating manual handoffs.
Our architecture uses Windchill’s promotion request event listeners to capture ECO state changes. When an ECO moves to “Ready for Approval,” we POST the change data to SAP’s REST endpoint. SAP processes the approval in their workflow, then calls back to Windchill’s REST API to update the ECO status.
The results have been impressive: ECO cycle time dropped from 5-7 days to 2-3 days, manual data entry eliminated for 200+ ECOs monthly, and approval accuracy improved to 99.8%. The bidirectional sync ensures both systems always reflect current status without human intervention.
I’ll share our technical approach, integration patterns, and lessons learned from the six-month implementation.
This is exactly what we’re planning for Q4. What authentication method did you use for the REST API calls between systems? We’re debating between OAuth 2.0 and API keys, considering both security and reliability for this type of event-driven integration.
Yes, data mapping was probably our biggest challenge. We created a comprehensive mapping document defining how each Windchill ECO attribute maps to SAP fields. For custom attributes, we used Windchill’s IBA (Information Baseline Architecture) values and mapped them to SAP’s custom Z-fields. The key was establishing a canonical data model as an intermediate format. Our integration service transforms Windchill data to this canonical format, then transforms again to SAP’s format. This two-step approach makes it easier to handle future changes on either side. We also implemented validation rules to catch data inconsistencies before they reach SAP, preventing rejected transactions.
Great question. We implemented a message queue pattern using RabbitMQ as middleware. When Windchill fires the event, it posts to the queue rather than directly to SAP. A separate integration service consumes from the queue and handles the actual ERP communication. If SAP is down, messages remain queued and automatically retry when the system recovers. We also built a monitoring dashboard that alerts our team if messages age beyond 30 minutes. This decoupling prevents Windchill workflows from blocking and gives us visibility into integration health. The queue has been crucial for resilience.