Inbound Integrations
With inbound integrations we refer to allowing an external system to either request data from / send data to the 3DEXPERIENCE™ system.
To enable this, you will create one or more custom REST endpoints within TIF. Such REST endpoint is defined by creating a REST Mapping from the Administration UI.
The REST Mapping defines the characteristics of the end-point, such as:
- URI
-
The URI used to match the request with
- HTTP Method
-
Which method we are mapped to. E.g. GET, POST, PUT, PATCH, DELETE etc
- Request Header Requirements
-
If there are some requirements on the request headers being sent.
- Request Parameter Requirements
-
You can also define some requirements on request parameters.
You can define as many endpoints as needed, but, be aware of that one request made to TIF should not map to more than ONE REST mapping. If that is the case, an error is raised.
For more details on the REST Mapping details, please see this document.
The base URL for the REST endpoint is: Then you append the REST Mapping URI to this base URL. For example, if your REST mapping defines the URI |
Access Token
The external system will call TIF using a special access / request token. Please see this document how to create these.
The Source system property of the token is important as different tokens having the same source-system value, will be able to query for jobs they have been created. A token with a different source-system value will not see jobs created by another source system. |
Request Job
The source system will request a job in TIF similar to the curl example below
curl -X POST \
-i \
-H "TIF-API-Key: <api-key-here>" \
-H "custom-header-1: value" \
-H "Content-type: application/json" \
https://<url>/integration/api/v1/newjob/rest/mapping/uri?param1=value1 \
-d "{'prop1':123,'prop2':true}"
The response will return the following information:
- Job ID
-
As the response header TIF-Job-Id
- Job Status
-
As the response header TIF-Job-Status
- Async
-
Defines if the job is being executed asynchronously or not. The header holding this value is called TIF-Async.
If the Job was not executed asynchronously, the response will contain the output from the job also.
The following response codes are used:
- 200
-
Request succeeded, content provided
- 201
-
Job Created, execution takes place asynchronously
- 202
-
The request was accepted, and a job was executed but failed.
- 204
-
Request succeeded but job returned no data
- 404
-
Request could not be mapped to a job, most likely no REST Mapping matched the request
- 409
-
Request were mapped to > 1 REST Mapping
- 503
-
If the service configured for the REST mapping is paused (and the mapping is configured for synchronous invocation).
If the REST mapping is marked as being processed synchronous, then the response from a create job operation will contain the job-files of type OUTBOUND. If there are more than one such file attached to the job, a ZIP file is created with all those files attached. An optional request parameter called Example: ?fileFilter=*.txt&fileFilter=SpecificFile.xml |
Query Job Status
The client may query the status of the job, and/or retrieve data for the job using a dedicated endpoint:
GET https://<url>/integration/api/v1/jobs/<job-id>
As mentioned above, the request must be made with a token having its source-system identical as when the job was created. Otherwise, you will receive a 404/Not Found response.
There are also some other endpoints that can be used. These are described in the table below.
Method | URI | Description |
---|---|---|
GET |
/integration/api/v1/jobs |
Query jobs endpoint. The below params can be used to control the result:
|
GET |
/integration/api/v1/jobs/{job-id} |
Get one specific job |
GET |
/integration/api/v1/jobs/{job-id}/input |
Get the input for one specific job |
GET |
/integration/api/v1/jobs/{job-id}/output |
Get the output for one specific job. Note that if the job have >1 output files of type OUTBOUND data, you will get a ZIP archive in return. If you want to limit the returned job-file(s), e.g. you do not want to return all job-files
of type OUTBOUND, you can provide a request parameter called |
GET |
/integration/api/v1/jobs/{job-id}/output/{data-id} |
Returns the output for a specific file. |