Skip to main contentSkip to search
Powered by Zoomin Software. For more details please contactZoomin
Progress DocumentationProgress Documentation
Progress Documentation
  • Home
  • Home
  • EnglishČeštinaDeutsch (Germany)Español (Spain)Français (France)Italiano (Italy)Português (Brasil)日本語Русский (Russia)中文 (简体) (China)中文 (繁體, 台灣) (Taiwan)ar-AR
  • Login

Progress DataDirect Hybrid Data Pipeline User's Guide Release 4.6.2

Navigating relationships with OData Version 2

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
Table of Contents
  • Welcome to DataDirect Hybrid Data Pipeline
    • Product documentation resources
  • Administering Hybrid Data Pipeline
    • Initial login with default user accounts
    • Permissions and default roles
    • Logging in to the Web UI
    • Using Hybrid Data Pipeline APIs
    • Using the Web UI
      • App bar
      • Manage Tenants view
      • Manage Users view
      • Manage Roles view
      • Data Sources view
      • SQL Editor view
      • Manage External Authentication view
      • Manage IP WhiteList view
      • Manage Limits view
      • System Configurations view
    • Tenant architectures
      • Single-tenant environment
        • Using the Web UI to set up a single-tenant environment
        • Using the APIs to set up a single-tenant environment
      • Multitenant environment
        • Setting up a multitenant environment with system-level administration
          • Using the Web UI to set up a multitenant environment with system-level administration
          • Using the APIs to set up a multitenant environment with system-level administration
        • Setting up a multitenant environment with tenant-level administration
          • Using the Web UI to set up a multitenant environment with tenant-level administration
          • Using the APIs to set up a multitenant environment with tenant-level administration
    • User provisioning
      • Provisioning users with the Web UI
        • Create user accounts
        • Update user accounts
        • Delete user accounts
        • Create roles
        • Update roles
        • Delete roles
        • View data sources or data source groups
        • Reset user account password
      • Provisioning users with Hybrid Data Pipeline APIs
        • Providing direct access
        • Providing query-only access by sharing a data source
        • Providing query-only access by creating data sources on behalf of users
        • Providing limited direct access to data sources and features
        • Providing query access to an ODBC data source and limited access to the Web UI
      • Managing permissions with Hybrid Data Pipeline APIs
        • Retrieving permissions
        • Working with roles
        • Working with user permissions
        • Working with data source permissions
    • Authentication
      • Integrating external authentication with a Java plugin
        • Building a Java plugin for external authentication
          • Java authentication plugin interface syntax
          • Java authentication plugin sample
        • Adding a Java authentication plugin to a Hybrid Data Pipeline environment
        • Registering a Java plugin authentication service
        • Configuring user accounts for Java plugin authentication
      • Integrating an LDAP authentication service
        • Registering an LDAP authentication service
        • Configuring user accounts for LDAP authentication
      • Integrating a SAML authentication service
        • Registering a SAML authentication service
        • Configuring user accounts for SAML authentication
      • Integrating an OIDC authentication service
        • Registering an OIDC authentication service
        • Configuring user accounts for OIDC authentication
      • Advanced functionality for authentication services
    • Using OAuth 2.0 for authorizing client application access to Hybrid Data Pipeline data sources
      • Creating an OData-enabled Hybrid Data Pipeline data source
      • Registering the client application with the Hybrid Data Pipeline server
      • Configuring the client application to access the Hybrid Data Pipeline data source
      • Configuring Postman as a third-party client application for OAuth 2.0
    • Password policy
      • Default password policy
      • Configuring password and account lockout policies (Web UI)
      • Configuring password and account lockout policies (API)
    • Transactions
    • Implementing IP address whitelists
      • Configuring IP address whitelists through the Web UI
      • Configuring IP address whitelists with the API
      • Enabling and disabling the IP address whitelist feature
    • Throttling
      • Row limit throttling
      • OData query throttling for users
      • OData large query throttling
      • JDBC and ODBC page size throttling
      • Transaction timeout throttling
    • Configuring CORS behavior
    • Data source logging
      • Data source log description
      • Setting data source logging levels
      • Obtaining data source logs
    • SQL statement auditing
      • The SQLAudit table
      • Enabling and configuring SQL auditing
      • SQLAudit table queries
    • Integrating Hybrid Data Pipeline as a client application with an OAuth 2.0 grant flow
      • OAuth 2.0 grant type support
      • Registering Hybrid Data Pipeline as a client application
      • Providing access with OAuth application and profile objects
        • Using the Web UI to provide access with OAuth application and profile objects
        • Using the API to provide access with OAuth application and profile objects
      • Providing access by entering OAuth parameters directly
        • Using the Web UI to configure OAuth by specifying OAuth parameters directly
        • Using the API to configure OAuth by specifying OAuth parameters directly
    • Using third-party JDBC drivers with Hybrid Data Pipeline
      • Verifying a third-party JDBC driver for Hybrid Data Pipeline compatibility
      • Integrating the third-party JDBC driver into Hybrid Data Pipeline
      • Third-party driver parameter descriptions
    • Updating data store connectors
    • Custom connector for Power BI
      • Configuring a Power BI custom connector for basic authentication
      • Configuring a Power BI custom connector for OAuth 2.0
      • Configuring a Power BI custom connector for OIDC
    • Obtaining information about On-Premises Connectors
    • Troubleshooting
      • Using logs to troubleshoot
        • System logs
          • System log descriptions
          • Obtaining system logs
      • MySQL Community Edition troubleshooting
      • Out of memory errors
      • IP address troubleshooting
      • Extracting schema files for non-relational data sources
      • Contacting Technical Support
  • Using Hybrid Data Pipeline
    • Logging in to the Web UI
    • Using Hybrid Data Pipeline APIs
    • Using the Web UI
      • App bar
      • Manage Tenants view
      • Manage Users view
      • Manage Roles view
      • Data Sources view
      • SQL Editor view
      • Manage External Authentication view
      • Manage IP WhiteList view
      • Manage Limits view
      • System Configurations view
    • Creating data sources with the Web UI
      • How to create a data source in the Web UI
      • Data store reference
      • Amazon Redshift parameters
      • Apache Hadoop Hive parameters
      • Autonomous REST Connector parameters
      • DB2 parameters
      • JDBC parameters for third-party drivers
      • Google Analytics 4 parameters
        • Adding Google Analytics 4 tables
      • Google BigQuery parameters
        • Obtaining the private key file
      • Greenplum parameters
      • Informix parameters
      • Microsoft Dynamics 365 parameters
      • Microsoft SQL Server parameters
      • MongoDB parameters
      • MySQL Community Edition parameters
      • MySQL Enterprise parameters
      • Oracle parameters
      • Oracle Marketing Cloud (Eloqua) parameters
        • Eloqua data types (ODBC)
        • Eloqua bulk operations
          • Efficient queries
      • Oracle Sales Cloud parameters
        • Oracle Sales Cloud data types (ODBC)
      • Oracle Service Cloud parameters
      • PostgreSQL parameters
      • Progress OpenEdge parameters
      • Salesforce parameters
        • Using Salesforce reports
          • Salesforce data store reports
      • SAP S/4HANA parameters
      • Snowflake parameters
        • Configuring Snowflake key-pair authentication using the API
      • Sybase parameters
    • Editing, deleting, sharing, and testing data sources with the Web UI
      • Editing a data source
      • Deleting a data source
      • Sharing a data source
      • Stop sharing a data source
      • Testing a data source
    • Configuring data sources for OData connectivity and working with data source groups
      • Configuring data sources for OData Version 2 connectivity
      • Configuring data sources for OData Version 4 connectivity
      • Creating a data source group
      • Editing a data source group
      • Deleting a data source group
      • OData parameter descriptions
    • Creating and using REST data sources
      • Creating REST data sources with the Web UI
        • Editing a REST model
        • Deleting REST data
      • Creating REST data sources with the API
  • Configuring Hybrid Data Pipeline Driver for ODBC
    • Getting started with the ODBC Driver
    • Supported features
      • Data encryption
      • Unicode
      • Safe thread handling
      • Number of connections and statements supported
      • Parameter metadata
      • Stored procedures
      • SQL support
    • Configuring an ODBC data source on Linux systems
      • Setting environment variables with the setup script
      • Setting environment variables manually
        • Library Search Path
        • ODBCINI
        • ODBCINST
        • DD_INSTALLDIR
      • Configuration through the system information file
        • Sample odbc.ini file
      • DSN-less connections
        • Sample odbcinst.ini file
      • File data sources
    • Configuring the driver using the ODBC Administrator on Windows
      • General Tab
      • Advanced Tab Options
      • Security Tab Options
      • Web Service Tab options
      • Proxy tab options
      • Example application for Windows
    • The Example application
    • Using connection strings
    • Connecting Through a Proxy Server
    • Connection option descriptions
      • Application Using Threads
      • Client Time Zone
      • Crypto Protocol Version
      • Data Source Name
      • Data Source Password
      • Data Source User
      • Default Buffer Size for Long/LOB Columns (in Kb)
      • Description
      • Enable FIPS
      • Enable WChar Support
      • Encryption Method
      • Host Name In Certificate
      • Hybrid Data Pipeline Source
      • IANAAppCodePage
      • Login Timeout
      • Logon Domain
      • Max Varchar Size
      • Min Long Varchar Size
      • Password
      • Proxy Host
      • Port Number
      • Proxy Password
      • Proxy Port
      • Proxy User
      • Query Timeout
      • Report Codepage Conversion Errors
      • Service
      • Transaction Mode
      • Trust Store
      • Trust Store Password
      • User Name
      • Validate Server Certificate
      • Varchar Threshold
      • WSRetry Count
      • WSTimeout
    • Application considerations
      • Verifying the driver version number
        • Driver version string
        • Driver Manager version string (Linux)
        • getFileVersionString Function
      • Retrieving data type information
      • Supported ODBC API functions
        • ODBC conformance level
        • SQLCancel
    • ODBC driver troubleshooting
      • Determining where an issue originates
        • Setup/connection issues
        • Interoperability issues
        • Performance issues
      • Error message syntax
        • ODBC driver errors
        • Service errors
        • Driver Manager errors (Windows)
        • Data Store errors
        • Driver Manager errors (Linux)
      • Test loading tools for Linux
      • ODBC Trace
        • Enabling tracing on Windows Systems
        • Configuring trace files on Windows Systems
        • Enabling and configuring tracing on Linux systems
      • Creating a trace log
      • Other tools
      • ODBC Test
      • Using the Driver with Microsoft Access
    • Internationalization, localization, and Unicode
      • Internationalization and Localization
        • Locale
          • Language
        • Variant
        • Country
      • Unicode Character Encoding
        • Background
        • Unicode Support in Databases
        • Unicode Support in ODBC
      • Unicode ODBC Drivers
        • Unicode Application with a Unicode Driver
        • Data
        • Default Unicode mapping
          • Connection Attribute for Unicode
      • Driver Manager and Unicode Encoding on Linux
    • Code page values
    • WorkAround options
      • WorkArounds and WorkArounds2 options
      • Using the WorkAround options
  • Configuring Hybrid Data Pipeline for JDBC
    • Getting started with the JDBC driver
      • Testing the JDBC connection to a Hybrid Data Pipeline Data Source
      • Connecting from an Application to Hybrid Data Pipeline
        • JDBC URL
        • Connecting using the JDBC Driver Manager
        • Connecting using JDBC data sources
          • Calling a JDBC data source in an application
      • Connecting Through a Proxy Server
      • Driver and Data Source Classes
      • Version string information
    • Supported Features
      • Data encryption
      • Unicode
      • Scrollable cursors
      • Large objects (LOBs)
      • Rowsets
      • Auto-generated keys
      • Using IP addresses
      • Stored procedures
      • SQL support
    • Using connection pooling
      • How connection pooling works
      • Using a DataDirect connection pool
        • Creating a Driver DataSource object
        • Creating the DataDirect connection pool
      • Connecting to a JDBC Data Source using a connection pool
        • Closing the DataDirect connection pool
        • Complete example of using a connection pool
    • Testing your application
      • Configuring DataDirect Test
    • JDBC driver troubleshooting
      • SQL errors
      • Java logging
        • Configuring logging
          • Using the driver
          • Using the JVM
      • Logging Levels
        • JDBC API Logger
        • Driver Logger
      • Troubleshooting Connection Pooling
        • Enabling Pool Manager Tracing
        • Example: Pool Manager trace file
    • Connection properties reference
      • Connection Properties
      • ConvertNull
      • DataSourcePassword
      • DataSourceUserID
      • EnableCancelTimeout
      • EncryptionMethod
      • FollowRedirects
      • HostNameInCertificate
      • HybridDataPipelineDataSource
      • InsensitiveResultSetBufferSize
      • JavaDoubleToString
      • LogConfigFile
      • LoginTimeout
      • Password
      • ProxyHost
      • ProxyPassword
      • ProxyPort
      • ProxyUser
      • QueryTimeout
      • TransactionMode
      • TrustStore
      • TrustStorePassword
      • User
      • ValidateServerCertificate
      • WSRetryCount
      • WSTimeout
    • JDBC support
      • Array
      • Blob
      • CallableStatement
      • Clob
      • Connection
      • ConnectionEventListener
      • ConnectionPoolDataSource
      • DatabaseMetaData
      • DataSource
      • Driver
      • ParameterMetaData
      • PooledConnection
      • PreparedStatement
      • Ref
      • ResultSet
      • ResultSetMetaData
      • RowSet
      • SavePoint
      • Statement
      • StatementEventListener
      • Struct
    • DataDirect connection pooling
      • DataDirect Connection Pool Manager interfaces
        • PooledConnectionDataSource
        • PooledConnectionDataSourceFactory
        • ConnectionPoolMonitor
      • Methods for configuring the connection pool
        • Configuring pool size
        • Checking the Pool Manager version
      • Enabling Pool Manager tracing
    • JDBC extensions
      • JDBC Wrapper methods to access JDBC extensions
      • ExtConnection interface
  • Querying with OData Version 2
    • Getting started with OData Version 2
      • Configuring data sources for OData Version 2 connectivity
      • Testing data source configurations (OData Version 2)
      • Requesting service metadata and the service document
    • Supported functionality for OData Version 2
      • Supported OData operations and data types
        • Entity Data Model (EDM) types for OData Version 2
    • Understanding and configuring a schema map for OData Version 2
      • JSON schema map syntax
      • Schema map example
    • Structure of requests for OData Version 2
      • Headers
      • Service URI and resource path for OData Version 2
      • Response formatting
    • Formulating queries with OData Version 2
      • Query options and optimizing response times
        • Improving performance when using inlineCount
        • Paging through results
        • Custom query parameters
      • Searching text-based columns with OData Version 2
        • Configuring Salesforce external objects for search optimization
      • Fetching records and collections with OData version 2
      • Creating, editing, and deleting records with OData Version 2
        • Create example
        • Delete example
        • Update example
      • Navigating relationships with OData Version 2
        • Resource path navigation
        • $links construct
        • $expand query parameter
    • Method Reference for OData Version 2
      • HTTP GET
      • HTTP DELETE or POST and DELETE
      • HTTP POST and MERGE (update)
      • HTTP POST (create)
  • Querying with OData Version 4
    • Getting started with OData Version 4
      • Configuring data sources for OData Version 4 connectivity
      • Testing data source configurations (OData Version 4)
      • Requesting service metadata and the service document
    • Supported functionality for OData Version 4
      • Supported OData operations and data types
        • Entity Data Model (EDM) types for OData Version 4
      • Stored functions support
      • OData model warnings
      • Aggregation support
    • Understanding and configuring a schema map for OData Version 4
      • JSON schema map syntax
      • Schema map example
    • Structure requests for OData Version 4
      • Headers
      • Service URI and resource path for OData Version 4
      • Response formatting for OData Version 4
    • Formulating queries with OData Version 4
      • Query parameters and optimizing response times
        • Improving performance when using Count
        • Paging through results
        • Custom query parameters
      • Searching text-based columns
      • Fetching records and collections
      • Creating, editing, and deleting records
        • Create example
        • Delete example
        • Update example
      • Batch requests
      • Navigating relationships
        • Resource path navigation
        • $expand query parameter
      • Using the $apply query parameter
    • Method reference for OData Version 4
      • HTTP GET
      • HTTP DELETE or POST and DELETE
      • HTTP PATCH or POST and PATCH (update)
      • HTTP POST (create)
  • Configuring the On-Premises Connector
    • Restarting the On-Premises Connector
    • Determining the Connector information
    • Defining the proxy server
    • Configuring On-Premises Connector memory resources
    • Determining the version
    • Checking the configuration status
    • Configuring failover and balancing requests across multiple On-Premises Connectors
    • Troubleshooting the On-Premises Connector
  • Hybrid Data Pipeline API reference
    • Administrator API
      • Administrator Permissions API
        • Get permissions
        • Get details on a permission
      • Administrator Password Policy API
        • Get details on the password policy
        • Update the custom password policy
          • rulesInfo Object
      • Authentication API
        • Get authentication types
        • Get information on an authentication type
        • Get authentication services
        • Register external authentication service
          • authDefinition Object
        • Get information on authentication service
        • Update an authentication service
        • Delete an authentication service
      • CORS Whitelist API
        • Get CORS whitelist
        • Create whitelist or add trusted origins to whitelist
        • Get information on a trusted origin
        • Update information on a trusted origin
        • Delete a trusted origin on the CORS whitelist
      • Limits API
        • Get limits
        • Get limits set at the system level
        • Get a limit set at the system level
        • Create a limit at the system level
        • Update a limit set at the system level
        • Delete a limit at the system level
        • Get limits set on tenants
        • Get a limit set on a tenant
        • Create a limit on a tenant
        • Update a limit on a tenant
        • Delete a limit on a tenant
        • Get limits set on user accounts
        • Get a limit set on a user account
        • Create a limit on a user account
        • Update a limit on a user account
        • Delete a limit set on a user account
        • Get limits set on data sources for a user account
        • Get a limit set on a data source
        • Create a limit on a data source
        • Update a limit on a data source
        • Delete a limit on a data source
      • Logging API
        • Get logging levels for a data source
        • Update logging levels for a data source
      • Nodes API
        • Get a list of nodes
        • Get system logs for a node
        • Get system logs for a date range
      • Roles API
        • Get roles
        • Create a role
        • Get details on a role
        • Update a role
        • Delete a role
      • System Configurations API
        • Get Configurations
        • Get Configuration for given ID
        • Update Configuration for given ID
      • Tenant API
        • Get tenants
        • Create a tenant
        • Get information on a tenant
        • Update a tenant
        • Delete a tenant
        • Get the list of administrators for a tenant
        • Update the list of administrators on a tenant
      • Users API
        • Get user accounts
        • Create a user account
          • statusInfo Object
          • passwordInfo Object
          • permissions Object
          • authenticationInfo Object
        • Reset user account passwords
        • Get a user account
        • Update a user account
        • Delete a user account
        • Get status information on a user account
        • Update status information on a user account
        • Get password information on a user account
        • Update password information on a user account
        • Reset the password on a user account
        • Get permissions on a user account
        • Update permissions on a user account
        • Get authentication information
        • Update authentication information
        • Get information on the authentication user
        • Get data sources for a user account
        • Get tenants administered
        • Update tenants administered
      • User Details API
        • Change password
      • Administrator Connectors API
        • Get On-Premises Connectors
        • Get details on an On-Premises Connector
    • Health Check API
      • Get health check
      • Head health check
    • IP Address Whitelist API
      • Retrieve IP address whitelists at the system level
      • Create IP address whitelists at the system level
      • Update IP address whitelists at the system level
      • Delete IP address whitelists at the system level
      • Retrieve tenants configured with IP address whitelists
      • Retrieve IP address whitelists for a tenant
      • Create IP address whitelists for a tenant
      • Update IP address whitelists for a tenant
      • Delete IP address whitelists for a tenant
      • Retrieve users configured with IP address whitelist
      • Retrieve IP address whitelists for a user
      • Create IP address whitelists for a user
      • Update IP address whitelists for a user
      • Delete IP address whitelists for a user
    • Management API
      • Connector API
        • Using Failover and Balancing Requests with an On-Premises Connector Group
        • Configuring Failover and Balancing Requests with an On-Premises Connector Group
        • Get Connectors
        • Get Connector Information
        • Update Connector Information
          • connectorGroup Object
            • members Array
        • Get Authorized Users
        • Add Authorized Users
        • Update Authorized Users
        • Delete Authorized Users
        • Create a Connector Group
          • connectorGroup Object
            • members Array
        • Add On-Premises Connectors to an On-Premises Connector Group
        • Get the List of On-Premises Connectors in an On-Premises Connector Group
        • Configure Round-Robin Request Balancing for an On-Premises Connector Group
        • Replace the List of On-Premises Connectors in an On-Premises Connector Group
        • Remove an On-Premises Connector
        • Delete a Group
      • Data Sources API
        • Sharing data sources
        • Managing resources on behalf of users
          • On-behalf-of API operations
        • Get data stores
          • connectionType-details Object
          • category-definition Object
          • option-definition Object
          • choice-definition Object
        • Get options for a data store
        • Create a data source
        • Get data sources
        • Get data source details
        • Update a data source
        • Delete a data source
        • Get data source permissions
          • Data source permissions
        • Update permissions on a data source
        • Test a connection to a data source
        • Get data source logs
        • Refresh a data source map
        • Create or refresh a data source OData model
        • Check status of the OData model refresh
        • Get members of a data source group
        • Add member data sources to a data source group
        • Update members of a data source group
        • Delete member data sources from a data source group
        • Get shared data source users
        • Create a list of users with whom to share a data source
        • Delete shared users from the data source
        • Get the data source permissions for a shared user
        • Update data source permissions for shared user
        • Delete shared user from a data source
        • Get shared data source tenants
        • Create a list of tenants with which to share a data source
        • Delete shared tenants from a data source
        • Get the data source permissions for a shared tenant
        • Update data source permissions for shared tenant
        • Delete shared tenant from a data source
      • Driver Files API
        • Export driver files for data source
        • Export config files for data source
        • Export native file for data source
        • Get input REST file
        • Upload input REST file
        • Update input REST file
        • Get output REST file
      • Management Permissions API
        • Get permissions on a user account
      • Management User API
        • Get details on the user account
      • OAuth client authorization API
        • Get list of OAuth registered applications
        • Register OAuth application
        • Get registered application by ID
        • Update registered application by ID
        • Delete registered application by ID
        • Reset client secret of registered application
        • Get list of applications for which logged-in user has access
        • Revoke access granted for the given application ID
        • Generate access token and refresh token
        • Begin the authorization flow
      • OAuth data store connectivity API
        • OAuth applications API
          • Get OAuth applications
          • Create an OAuth application object
          • Get an OAuth application object
          • Update an OAuth application object
          • Delete an OAuth application object
        • OAuth profiles API
          • Get OAuth profiles
          • Create an OAuth profile
          • Get an OAuth profile
          • Update an OAuth profile
          • Delete the specified OAuthProfile
          • Get statistics for an OAuth profile
      • Schema API
        • Get schemas
        • Get table names
        • Get table information
        • Get column information for a specified table
        • Get primary key information for a specified table
      • Version Information API
      • Validate Password API
        • Validate the password
    • Public Password Policy API
      • Get Public Password Policy
  • Legal Notices
    • Copyright
Table of Contents

Navigating relationships with OData Version 2

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
  • Last Updated: March 6, 2025
  • 1 minute read
    • Hybrid Data Pipeline
    • Version 4.6
    • Documentation
Most data source types supported by Hybrid Data Pipeline use relationships to define associations between tables or objects. In a relational data source, foreign key columns reference the primary key column of the related table. When you configure a schema map for a data source that contains relationships, Hybrid Data Pipeline maps them as OData relationships. The OData model (returned via $metadata) identifies these as Navigation Properties. OData provides the following ways to access related entities:
  • Resource Path navigation — fetch all related records or a specific record or property of that record.
  • $Links — fetch all records for an entity and embed all related records in the response.
  • $expand — return links to the related records for a specific entity.

Hybrid Data Pipeline supports all three ways of navigating relationships. The topics in this section use an example of customers and orders with the following model:


Customer ---> Order ---> OrderItem
	 |
	  ---> Contact
Contents
  • Resource path navigation
  • $links construct
  • $expand query parameter
TitleResults for “How to create a CRG?”Also Available inAlert