TIBCO Scribe® Online Connector For OData
The TIBCO Scribe® Online Connector for OData (Open Data Protocol) enables you to interact with data via REST interfaces and provides a uniform way to describe the data and the data model.
Connector Specifications
This Connector supports up to and including OData protocol version 4.0.
Supported | |
---|---|
Agent Types |
|
On Premise | X |
Cloud | X |
Replication Services |
|
Source | |
Target | |
Integration Services |
|
Source | X |
Target | X |
Migration Services |
|
Source | X |
Target | X |
Maps |
|
Integration | X |
Request-Reply | |
Message |
Note: This Connector is available from the TIBCO Scribe® Online Marketplace. See Marketplace TIBCO Scribe® Certified Connectors for more information.
This Connector supports OData protocols up to and including version 4.0. Some documented features may not be supported by the protocol of your OData endpoint. For information on the features supported by each OData protocol version, see Odata website.
OData Requirements
If the data source to which you are connecting requires basic authentication, you must provide that authentication when configuring the Connection in TIBCO Scribe® Online. If your OData service does not require authentication, the OData Connector configuration in TIBCO Scribe® Online does not require authentication either. For more information on authentication, contact your OData service administrator.
For more information on the OData protocol, see the OData website.
Selecting An Agent Type For OData
Refer to TIBCO Scribe® Online Agents for information on available Agent types and how to select the best Agent for your Solution.
Connecting To OData
Note: Best practice is to create Connections with credentials that limit permissions in the target system, following the principle of least privilege. Using Administrator level credentials in a Connection provides Administrator level access to the target system for TIBCO Scribe® Online users. Depending on the entities supported, a TIBCO Scribe® Online user could alter user accounts in the target system.
- Select More > Connections from the menu.
- From the Connections page select Add to open the Add a New Connection dialog.
- Select the Connector from
the drop-down list in the Connection Type field, and then enter the following information for this Connection:
- Name — This can be any meaningful name, up to 25 characters.
- Alias — An alias for this Connection name. The alias is generated from the Connection name, and can be up to 25 characters. The Connection alias can include letters, numbers, and underscores. Spaces and special characters are not accepted. You can change the alias. For more information, see Connection Alias.
- OData Service URL — Address of any acceptable URL where the OData service is located.
- User — Name of the user with rights to access OData, if your OData service requires authentication.
- Password — Password for User, if your OData service requires authentication.
For more information on OData, see your endpoint provider.
- Select Test to ensure that the Agent can connect to your database. Be sure to test the Connection against all Agents that use this Connection. See Testing Connections.
- Select OK/Save to save the Connection.
Metadata Notes
OData Metadata
Only supported OData data types appear in TIBCO Scribe® Online. The following data types are not supported by this Connector:
- Edm.Geography
- Edm.GeographyPoint
- Edm.GeographyLineString
- Edm.GeographyPolygon
- Edm.GeographyMultiPoint
- Edm.GeographyMultiLineString
- Edm.GeographyMultiPolygon
- Edm.GeographyCollection
- Edm.Geometry
- Edm.GeometryPoint
- Edm.GeometryLineString
- Edm.GeometryPolygon
- Edm.GeometryMultiPoint
- Edm.GeometryMultiLineString
- Edm.GeometryMultiPolygon
- Edm.GeometryCollection
- Edm.Stream
Naming
Connection metadata must have unique entity, relationship, and field names. If your Connection metadata has duplicate names, review the source system to determine if the duplicates can be renamed.
Endpoint Support
- The Connector does not currently support the FunctionImport or ActionImport OData features.
Data Types
- The Connector converts DateTime data types on the OData protocol versions as follows:
Data Type Converted in TIBCO Scribe® Online OData V3 OData V4 Edm.DateTime DateTime N/A Edm.DateTimeOffset String DateTime (UTC)
Supported Blocks
Note: Not all Blocks supported by this Connector are supported by all OData endpoint protocols.
This Connector supports the following Blocks:
- Query
- Create
- Delete
- Fetch
- Lookup
- Update Patch
- Update Patch Singleton
- Update Replace
- Update Replace Singleton
- Update Merge
- Update Insert
- Upsert Patch
- Upsert Replace
Singletons
A singleton represents a single entity in an entity model.
- The OData Connector supports the following Blocks for singletons:
- Query
- Update Patch Singleton
- Update Replace Singleton
The Update Patch Singleton and Update Replace Singleton Blocks only appear if a Singleton is defined in the Entity Data Model.
- Filtering and Lookups are not supported on singletons.
- Multiple singletons on an OData resource are supported.
Relationships
- Hierarchical relationships, such as grandparent, parent, grandchild relationships are not supported. See Hierarchical Data for examples.
- Self joins and outer joins are supported. In an OData relationship, only outer joins are supported. For more information about joins, see Joins.
Note: For this Connector, only one level of relationship, Parent/Child, is supported for the entity selected in the Query or Fetch Block. For records with multiple levels of relationships, such as Parent, Child, Grandchild, only the selected Parent entity and related Child entities can be retrieved. Additional levels beneath Child entities, such as Grandchildren, cannot be accessed for this Connector using the Include tab. See Block Properties Include Tab — Relational Data.
OData Queries
- If you create a Map that queries a large number of fields, the URL that is generated may be very long. Some services, cannot process long URLs even though the URLs are valid. An error is returned when you attempt to run the Map. To work around this issue, create multiple Maps with fewer fields in each Map.
Update Operations
- If you try to use an operation that is not implemented in your OData endpoint, you may see an error message.
- Update/Insert — If your OData service is implemented to support more than one Update operation, TIBCO Scribe® Online cannot anticipate which of these Update operations to use in a Block.
Note: TIBCO highly recommends using separate Update and Insert Blocks, not the Update/Insert Block.
- TIBCO Scribe® Online supports the Update Merge, Update Patch, and Update Replace operations supported by OData. However, OData support for these operations varies by OData version.
Update Replace
- A replacement update issues a PUT request. The OData service replaces all property values with those specified in the request.
- Any properties not included in the request, or any unmapped fields, are either cleared or set to default values for the OData service. Any data in fields with unsupported data types is lost. See OData Metadata.
Update Patch And Update Merge
- These are different updates that issue a PATCH or a MERGE request. The OData service replaces exactly those property values that are specified in the request, or mapped fields.
- Any properties not included in the request are not altered.
- Any field containing a NULL value or an empty string overwrites any value previously in that field.
Note: Update Merge is not supported in OData V4.
Upsert
- Upsert Blocks support the PATCH and PUT operations.
Filtering
When a datetime is configured on the Query Block on the Block Properties Net Change Tab to query for new and updated records, that configuration is treated as an additional filter. The Net Change datetime filter is applied as an AND after any other filters specified on the Block Properties Filter Tab. TIBCO Scribe® Online builds a query combining both the Net Change filter and the filters on the Filter tab. See Net Change And Filters for an example.
Some Connectors for TIBCO Scribe® Online only support one filter. For those Connectors you can use either Net Change or one filter on the Filter tab, not both.
Note: The Net Change date is ignored when previewing data on the Preview tab. Filters on the Block Properties Filters tab are used to filter the data on the Preview tab.
- The OData Connector supports the following filtering operations, based on the filtering operations supported by your OData service.
- Like/Not Like
- And/Or
- And/Or filter sequences are handled from top to bottom.
- OData associations support filtering.
Batch Processing
- The OData Connector supports Batch Processing for Create, Update, Upsert, and Delete operations if your OData service also supports Batch Processing for those operations. The number of records allowed per batch varies depending on the OData service.
Optimistic Concurrency
- The OData Protocol uses Entity Tags (ETag) to determine how to update or delete data. Rules for updating or deleting data are based on the ETag value and the concurrency behavior. There are three options for concurrency behavior: always overwrite, overwrite if ETag has not changed, or overwrite if Etag has changed.
The OData Connector exposes these ETags as fields:
- ETag — Available as a source and target field, contains the ETag value provided by the OData service.
- ETagConcurrencyBehavior — Available as a target field, used to determine how data conflicts are handled. Possible values for this field are:
- Always Overwrite
- Overwrite If Match
- Overwrite If Not Match
If these fields are left blank and the entity provides ETag information, the default is to always overwrite the record.
- Delete operations always perform the default behavior. There is no way to map fields within a Delete Block. Therefore, if you attempt to use a Delete Block operation it always overwrites the existing data.
- Optimistic Concurrency is an optional OData feature supported in some OData services, but not all. This option is limited to specific entities. Contact your OData service administrator for additional information.
Conditional Success
When you Insert or Update a record, some services may indicate success but also return error information in the response. When this occurs, refer to your OData service documentation for further information, and review the record for accuracy.
For example, if a record is inserted without providing a required field, an OData service may return a successful status code but the response will have error information stating that the field is required. The OData service has committed the record but it could be inaccurate and possibly unusable. In this case, the TIBCO Scribe® Online Solution execution will yield a record error. However, the corresponding records in the actual application may still need values for the required fields.
TIBCO Scribe® Online API Considerations
You must define a Connection Name and Connection Alias for each OData endpoint.
Connector Name |
OData |
Connector ID |
A2A3DE52-0A88-4E1F-8788-693CF6BEA505 |
TIBCO Scribe® Online Connection Properties
In addition, this Connector uses the Connection properties shown in the following table.
Note: Connection property names are case-sensitive.
Name | Data Type | Required | Secured | Usage |
---|---|---|---|---|
ServiceUrl |
string |
Yes |
No |
|
User |
string |
No |
No |
|
Password |
string |
No |
Yes |
|
AuthenticationType |
string |
Yes |
No |
None,Basic |
More Information
For additional information on this Connector, refer to the Knowledge Base and Discussions in the TIBCO Community.