Windchill REST Services
Windchill REST Services is a module that enables developers to configure OData services in Windchill. From Windchill 11.0 M030 CPS06 onward, the module is bundled with Windchill CPS. The module comprises of a framework and a set of PTC domains. The domains are configured using the functionality available in the framework.
Framework
The framework is designed to read a set of configuration files. These configuration files have the information required to set up OData services on Windchill. An OData service in Windchill REST Services is called a domain. Domains expose Windchill object types and object collections as OData entity types and entity sets.
OData standard specifies the URLs to access entities and entity sets in a domain. The URLs provide a uniform interface between domains and clients.
The framework generates the Entity Data Model (EDM) for each domain when a request is made to the $metadata URL of a domain. The framework also generates the service document for each domain when requested by clients.
The framework processes the HTTP requests made by clients to entity collections and entity instances in a domain. For example, when a client makes a GET request to an entity set, the framework processes the request in the following way:
• checks the Windchill type for entities contained in the entity set,
• queries Windchill to obtain the objects of the type,
• converts the objects to OData entities,
• sends the entities back to the client as a response to the GET request.
Similarly, the framework processes the POST, PATCH, PUT, and DELETE requests.
The framework is designed to be extensible. It enables overrides and enhancements to the processing logic of requests. The request processing infrastructure of the framework has built-in code hooks. The domain authors can use the hooks to either override or enhance the default processing logic of the requests executed by the framework. The implementation of these hooks is done in JavaScript and is executed by the Nashorn engine available in Java 8. You can work with Windchill Java APIs while writing the JavaScript implementation of the hooks.
PTC Domains
Windchill REST Services includes a set of domain configurations for specific functional areas of Windchill. The schema of Windchill consists of a broad range of functional areas. The domains are designed to enable access to smaller and functionally independent areas of this schema to RESTful clients.
The following domains are available with Windchill REST Services:
• PTC Product Management Domain
• PTC Document Management Domain
• PTC Windchill Administration Domain
• PTC Data Administration Domain
• PTC Principal Management Domain
• PTC Common Domain
• PTC Navigation Criteria Domain
• PTC Dynamic Document Management Domain
• PTC Parts List Management Domain
• PTC Service Information Management Domain
• PTC Quality Domains
◦ PTC Quality Management System Domain
◦ PTC NC (Nonconformance) Domain
◦ PTC CAPA Domain
◦ PTC Customer Experience Management (CEM) Domain
◦ PTC Regulatory Master Domain
◦ PTC Audit Domain
• PTC Info*Engine System Domain
• PTC Factory Domain
• PTC BOM Transformation Domain
• PTC Manufacturing Process Management Domain
• PTC Change Management Domain
• PTC Reporting Domain
• PTC Enterprise Systems Integration Domain
• PTC Classification Structure Domain
• PTC Saved Search Domain
• PTC Visualization Domain
• PTC Product Platform Management Domain
• PTC CAD Document Management Domain
• PTC Effectivity Management Domain
• PTC Event Management Domain
• PTC Supplier Management Domain
• PTC Workflow Domain
• PTC UDI Domain
• PTC View Management Domain
These domains are extensible by design. You can add new entities and expand existing entities in the domains. Refer to the section
PTC Domains for more information about domains.
For more information on how to extend entities in PTC-provided domains, please see the section
Extending Domains.
Custom Domains
Windchill REST Services enables you to create new domains. You can create new domains in any functional areas, even the areas which are not available in the PTC domains. Refer to the section
Customizing Domains, for more information on how to create custom domains.
Code Sample
Windchill REST Services User’s Guide includes examples and code snippets for better understanding of the concepts. The examples in the section Examples for Performing Basic REST Operations, demonstrate the basic operations in Windchill REST Services.
However, please note that code examples included in this guide have been reformatted for presentation purposes, and therefore may contain hidden editing characters, such as tabs and end-of-line characters, and extraneous spaces. Do not cut and paste sample application code or code fragments from the User’s Guide as the additional formatting characters could break the code.