Cloud

Build 22.0.8389
  • Microsoft Project
    • Getting Started
      • Establishing a Connection
      • Using OAuth2 Authentication
        • Custom Credentials
        • Headless Machines
        • Creating a Custom OAuth App
      • CSOM Deprecation
      • Changelog
    • Advanced Features
      • User Defined Views
      • SSL Configuration
      • Firewall and Proxy
      • Caching Data
        • Configuring the Cache Connection
        • Caching Metadata
        • Automatically Caching Data
        • Explicitly Caching Data
        • Data Type Mapping
      • Query Processing
      • Logging
    • SQL Compliance
      • SELECT Statements
        • Aggregate Functions
        • JOIN Queries
        • Date Literal Functions
      • SELECT INTO Statements
      • SQL Functions
        • STRING Functions
        • DATE Functions
        • MATH Functions
      • INSERT Statements
      • UPDATE Statements
      • DELETE Statements
      • CACHE Statements
      • EXECUTE Statements
      • PIVOT and UNPIVOT
      • INSERT INTO SELECT Statements
      • UPDATE SELECT Statements
      • DELETE SELECT Statements
    • Data Model
      • ODataV2 Data Model
        • Tables
          • Assignments
          • Calendars
          • EnterpriseResources
          • Phases
          • ProjectResources
          • Projects
          • Stages
          • TaskLinks
          • Tasks
          • TimeSheetLines
          • TimeSheets
        • Views
          • Assignment_Resource
          • Assignment_Task
          • Events
          • ProjectDetailPages
          • StageDetailPages
          • Tasks_Assignments
          • Tasks_Calendar
          • TimeSheetPeriods
        • Stored Procedures
          • CheckIn
          • CheckOut
          • GetOAuthAccessToken
          • GetOAuthAuthorizationURL
          • GetOnlineCookies
          • Publish
          • RefreshOAuthAccessToken
          • Search
      • ODataV1 Data Model
        • Views
          • AssignmentBaselines
          • AssignmentBaselineTimephasedDataSet
          • Assignments
          • AssignmentTimephasedDataSet
          • BusinessDriverDepartments
          • BusinessDrivers
          • CostConstraintScenarios
          • CostScenarioProjects
          • Deliverables
          • Engagements
          • EngagementsComments
          • EngagementsTimephasedDataSet
          • FiscalPeriods
          • Issues
          • IssueTaskAssociations
          • PortfolioAnalyses
          • PortfolioAnalysisProjects
          • PrioritizationDriverRelations
          • PrioritizationDrivers
          • Prioritizations
          • ProjectBaselines
          • Projects
          • ProjectWorkflowStageDataSet
          • ResourceConstraintScenarios
          • ResourceDemandTimephasedDataSet
          • Resources
          • ResourceScenarioProjects
          • ResourceTimephasedDataSet
          • Risks
          • RiskTaskAssociations
          • TaskBaselines
          • TaskBaselineTimephasedDataSet
          • Tasks
          • TaskTimephasedDataSet
          • TimeSet
          • TimesheetClasses
          • TimesheetLineActualDataSet
          • TimesheetLines
          • TimesheetPeriods
          • Timesheets
        • Stored Procedures
          • GetOAuthAccessToken
          • GetOAuthAuthorizationURL
          • GetOnlineCookies
          • RefreshOAuthAccessToken
          • Search
      • System Tables
        • sys_catalogs
        • sys_schemas
        • sys_tables
        • sys_tablecolumns
        • sys_procedures
        • sys_procedureparameters
        • sys_keycolumns
        • sys_foreignkeys
        • sys_indexes
        • sys_connection_props
        • sys_sqlinfo
        • sys_identity
      • Data Type Mapping
    • Connection String Options
      • Authentication
        • AuthScheme
        • URL
        • User
        • Password
      • Connection
        • ProjectId
        • AuthCookie
      • Azure Authentication
        • AzureTenant
        • AzureEnvironment
      • SSO
        • SSOLoginURL
        • SSODomain
        • SSOProperties
      • OAuth
        • OAuthClientId
        • OAuthClientSecret
        • OAuthAccessToken
        • CallbackURL
        • Scope
        • State
        • OAuthVerifier
        • OAuthRefreshToken
        • OAuthExpiresIn
        • OAuthTokenTimestamp
      • SSL
        • SSLServerCert
      • Firewall
        • FirewallType
        • FirewallServer
        • FirewallPort
        • FirewallUser
        • FirewallPassword
      • Proxy
        • ProxyAutoDetect
        • ProxyServer
        • ProxyPort
        • ProxyAuthScheme
        • ProxyUser
        • ProxyPassword
        • ProxySSLType
        • ProxyExceptions
      • Logging
        • Logfile
        • Verbosity
        • LogModules
        • MaxLogFileSize
        • MaxLogFileCount
      • Schema
        • Location
        • BrowsableSchemas
        • Tables
        • Views
        • Schema
      • Caching
        • AutoCache
        • CacheLocation
        • CacheTolerance
        • Offline
        • CacheMetadata
      • Miscellaneous
        • MaxRows
        • Other
        • Pagesize
        • PseudoColumns
        • Readonly
        • RTK
        • Timeout
        • UserDefinedViews
        • UseSimpleNames

CData Cloud

Overview

CData Cloud offers access to Microsoft Project across several standard services and protocols, in a cloud-hosted solution. Any application that can connect to a MySQL or SQL Server database can connect to Microsoft Project through CData Cloud.

CData Cloud allows you to standardize and configure connections to Microsoft Project as though it were any other OData endpoint, or standard SQL Server/MySQL database.

Key Features

  • Full SQL Support: Microsoft Project appears as standard relational databases, allowing you to perform operations - Filter, Group, Join, etc. - using standard SQL, regardless of whether these operations are supported by the underlying API.
  • CRUD Support: Both read and write operations are supported, restricted only by security settings that you can configure in Cloud or downstream in the source itself.
  • Secure Access: The administrator can create users and define their access to specific databases and read-only operations or grant full read & write privileges.
  • Comprehensive Data Model & Dynamic Discovery: CData Cloud provides comprehensive access to all of the data exposed in the underlying data source, including full access to dynamic data and easily searchable metadata.

CData Cloud

Getting Started

This page provides a guide to Establishing a Connection to Microsoft Project in CData Cloud, as well as information on the available resources, and a reference to the available connection properties.

Connecting to Microsoft Project

Establishing a Connection shows how to authenticate to Microsoft Project and configure any necessary connection properties to create a database in CData Cloud

Accessing Data from CData Cloud Services

Accessing data from Microsoft Project through the available standard services and CData Cloud administration is documented in further details in the CData Cloud Documentation.

CData Cloud

Establishing a Connection

Connect to Microsoft Project by selecting the corresponding icon in the Database tab. Required properties are listed under Settings. The Advanced tab lists connection properties that are not typically required.

Connecting to Microsoft Project

In order to connect to the Microsoft Project data source, you will first need to specify the below connection properties.

  • Url: (Required) Set this to a valid Microsoft Project Web App URL. For example:
    http://contoso.com/sites/pwa/
  • Schema: (Optional) There are two available schemas, "ODataV1" and "ODataV2". The "ODataV2" schema (default) can be used for full CRUD operations. However, for reporting purposes, the "ODataV1" schema is superior, since it provides more granular data and exposes the custom fields. See Data Model for more information about the available functionality in each Schema.
  • ProjectId: (Optional) If the "ODataV2" schema is specified, you can additionally set this property to a specific Project Id, in order to define the default project for all the operations that require one.

Authenticating to Project Online

There are several authentication methods available for connecting to Microsoft Project including the SharePoint Online Cookie Service to connect on SharePoint Online, OAuth and SSO. The supported SSO identity providers are: Azure Active Directory, OneLogin, and OKTA.

SharePoint Online Cookie Service

To connect to Microsoft Project on SharePoint Online using your login credentials, set the AuthScheme to SharePointOnlineCookies, the User and Password to your user credentials.

OAuth

To use the OAuth 2.0 authentication standard you should first create a custom OAuth app to obtain the OAuthClientId, OAuthClientSecret. In addition to those properties, set CallbackURL. See Using OAuth2 Authentication for more information.

You should set the AuthScheme to OAuth to enforce the OAuth Authentication scheme.

ADFS

Set the AuthScheme to ADFS. The following connection properties need to be set:

  • User: Set this to your ADFS username.
  • Password: Set this to your ADFS password.
  • SSOLoginURL: Set this to the login URL used by the SSO provider.
Below is an example connection string:
AuthScheme=ADFS;User=username;Password=password;SSOLoginURL='https://sts.company.com';

ADFS Integrated

To use the ADFS Integrated flow, specify the SSOLoginURL and leave the username and password empty.

Okta

Set the AuthScheme to Okta. The following connection properties are used to authenticate through Okta:

  • User: Set to your Okta user.
  • Password: Set to your Okta password.
  • SSOLoginURL: Set to the login URL used by the SSO provider.
If you are:

  • using a trusted application or proxy that overrides the Okta client request
  • configuring MFA

then you need to use combinations of SSOProperties input parameters to authenticate using Okta. Otherwise, you do not need to set any of these values.

In SSOProperties when required, set these input parameters:

  • APIToken: When authenticating a user via a trusted application or proxy that overrides the Okta client request context, set this to the API Token the customer created from the Okta organization.
  • MFAType: Set this if you have configured the MFA flow. Currently we support the following types: OktaVerify, Email, and SMS.
  • MFAPassCode: Set this only if you have configured the MFA flow. If you set this to empty or an invalid value, the Cloud issues a one-time password challenge to your device or email. After the passcode is received, reopen the connection where the retrieved one-time password value is set to the MFAPassCode connection property.
  • MFARememberDevice: Okta supports remembering devices when MFA is required. If remembering devices is allowed according to the configured authentication policies, the Cloud sends a device token to extend MFA authentication lifetime. This property is, by default, set to True. Set this to False only if you do not want MFA to be remembered.

Example connection string:

AuthScheme=Okta;SSOLoginURL='https://example.okta.com/home/appType/0bg4ivz6cJRZgCz5d6/46';User=oktaUserName;Password=oktaPassword;

OneLogin

Set the AuthScheme to OneLogin. The following connection properties are used to connect to OneLogin:

  • User: Set this to the OneLogin user.
  • Password: Set this to OneLogin password for the user.
The following SSOProperties are needed to authenticate to OneLogin:
  • OAuthClientId: Set to the OAuthClientId, which can be obtained by selecting Developers > API Credentials > Credential > ClientId.
  • OAuthClientSecret: Set to the OAuthClientSecret, which can be obtained by selecting Developers > API Credentials > Credential > ClientSecret.
  • Subdomain: Set to the subdomain of the OneLogin user accessing the SSO app. For example, if your OneLogin URL is splinkly.onelogin.com, enter splinkly as the subdomain value.
  • AppId: Set to the Id of the SSO app.
  • Region (optional): Set to the region your OneLogin account resides in. The OneLogin API operates in multiple regions and this property is used to find the correct domain. It can take one of the following values:
    • US (default)
    • EU

The following is an example connection string: The following connection string uses an API key to connect to OneLogin:

AuthScheme=OneLogin;User=OneLoginUserName;Password=OneLoginPassword;SSOProperties='OAuthClientID=3fc8394584f153ce3b7924d9cd4f686443a52b;OAuthClientSecret=ca9257fd5cc3277abb5818cea28c06fe9b3b285d73d06;Subdomain=OneLoginSubDomain;AppId=1433920';

CData Cloud

Using OAuth2 Authentication

OAuth 2.0 requires the authenticating user to interact with Microsoft Project using the browser. The Cloud facilitates this in various ways as described below.

Custom Credentials

You can register an app to obtain the OAuthClientId and OAuthClientSecret.

When to Create a Custom OAuth App

You need to create a custom OAuth app in the desktop flow.

CData Cloud

Custom Credentials

When to Use a Custom OAuth App

Creating a custom OAuth app is required in all cases when using OAuth 2.0.

Desktop Authentication with a Custom OAuth App

Follow the steps below to authenticate with the credentials for a custom OAuth app. See Creating a Custom OAuth App for more information.

Get and Refresh the OAuth Access Token

After setting the following, you are ready to connect:

  • OAuthClientId: Set this to the client Id assigned when you registered your app.
  • OAuthClientSecret: Set this to the client secret assigned when you registered your app.
  • CallbackURL: Set this to the Callback defined when you registered your app.
  • Url: Set this to the URL of your service instance.
When you connect the Cloud opens the OAuth endpoint in your default browser. Log in and grant permissions to the application.

Get an OAuth Access Token

Set the following connection properties to obtain the OAuthAccessToken:

  • OAuthClientId: Set this to the Client Id in your app settings.
  • OAuthClientSecret: Set this to the Client Secret in your app settings.
  • CallbackURL: Set this to the Callback defined when you registered your app.
  • Url: Set this to the URL of your service instance.

You can then call stored procedures to complete the OAuth exchange:

  1. Call the GetOAuthAuthorizationURL stored procedure. Set the CallbackURL input to the Callback you specified in your app settings.

    The stored procedure returns the URL to the OAuth endpoint.

  2. Open the URL, log in, and authorize the application. You are redirected back to the callback URL.
  3. Call the GetOAuthAccessToken stored procedure. Set the Verifier input to the "code" parameter in the query string of the callback URL.

Refresh the OAuth Access Token

You can set InitiateOAuth to REFRESH to automatically refresh the OAuth access token when it expires, or you can call the RefreshOAuthAccessToken stored procedure to refresh the token manually.

Automatic Refresh

To refresh the token with InitiateOAuth, set the following on the first data connection:

  • OAuthAccessToken: Set this to the access token returned by GetOAuthAccessToken.
  • InitiateOAuth: Set this to REFRESH. You can use InitiateOAuth to avoid repeating the OAuth exchange and manually setting the OAuthAccessToken.
  • OAuthSettingsLocation: Set this to the path where the Cloud will save the OAuth values, to be persisted across connections.
  • OAuthClientId: Set this to the Client Id in your app settings.
  • OAuthClientSecret: Set this to the Client Secret in your app settings.
  • OAuthRefreshToken: Set this to the refresh token returned by GetOAuthAccessToken.
  • Url: Set this to the URL of your service instance.

On subsequent data connections, set the following:

  • InitiateOAuth
  • OAuthSettingsLocation
  • Url: Set this to the URL of your service instance.

Manual Refresh

You can use the RefreshOAuthAccessToken stored procedure to manually refresh the OAuthAccessToken. Call the stored procedure after the ExpiresIn parameter value returned by GetOAuthAccessToken has elapsed. You need the following connection properties to be set:

  • OAuthClientId: Set this to the Client Id in your app settings.
  • OAuthClientSecret: Set this to the Client Secret in your app settings.

You can then call RefreshOAuthAccessToken with the following parameter set:

  • OAuthRefreshToken: Set this to the OAuthRefreshToken returned by GetOAuthAccessToken.

CData Cloud

Headless Machines

Using OAuth on a Headless Machine

To establish a connection to the Microsoft Project data source on headless servers or other machines on which the Cloud cannot open a browser, you need to authenticate from another machine. Authentication is a two-step process.

  1. Instead of installing the Cloud on another machine, you can follow the steps below to obtain the OAuthVerifier value. Or, you can install the Cloud on another machine and transfer the OAuth authentication values, after you authenticate through the usual browser-based flow.
  2. You can then configure the Cloud to automatically refresh the access token from the headless machine.
You can follow the headless OAuth authentication flow using the OAuth credentials for your custom OAuth app.

Using the Credentials for a Custom OAuth App

Create a Custom OAuth App

See Creating a Custom OAuth App for a procedure. You can then follow the procedures below to authenticate and connect to data.

Obtain a Verifier Code

Set the following properties on the headless machine:

  • InitiateOAuth = OFF.
  • OAuthClientId = Client Id.
  • OAuthClientSecret = Client Secret.
  • Url = The URL of your site (https://{site}.sharepoint.com/sites/pwa).

You can then follow the steps below to authenticate from another machine and obtain the OAuthVerifier connection property.

  1. Call the GetOAuthAuthorizationURL stored procedure with the CallbackURL input parameter set to the exact Redirect URI you specified in your app settings.
  2. Open the returned URL in a browser. Log in and grant permissions to the Cloud. You are then redirected to the callback URL, which contains the verifier code.
  3. Save the value of the verifier code. You will set this in the OAuthVerifier connection property.

On the headless machine, set the following connection properties to obtain the OAuth authentication values:

  • OAuthClientId = Client Id.
  • OAuthClientSecret = Client Secret.
  • Url = The URL of your site (https://{site}.sharepoint.com/sites/pwa).
  • OAuthVerifier: Set this to the verifier code.
  • OAuthSettingsLocation: Set this to persist the encrypted OAuth authentication values to the specified file.
  • InitiateOAuth: Set this to REFRESH.

Connect to Data

After the OAuth settings file is generated, set the following properties to connect to data:

  • OAuthSettingsLocation: Set this to the file containing the encrypted OAuth authentication values. Make sure this file gives read and write permissions to the provider to enable the automatic refreshing of the access token.
  • InitiateOAuth: Set this to REFRESH.

Transfer OAuth Settings

Follow the steps below to install the Cloud on another machine, authenticate, and then transfer the resulting OAuth values.

On a second machine, install the Cloud and connect with the following properties set:

  • OAuthSettingsLocation: Set this to a writable text file.
  • OAuthClientId: Set this to the Client Id in your app settings.
  • OAuthClientSecret: Set this to the Client Secret in your app settings.
  • CallbackURL: Set this to the Callback URL in your app settings.
  • Url = The URL of your site (https://{site}.sharepoint.com/sites/pwa).

Test the connection to authenticate. The resulting authentication values are written, encrypted, to the path specified by OAuthSettingsLocation. Once you have successfully tested the connection, copy the OAuth settings file to your headless machine. On the headless machine, set the following connection properties to connect to data:

  • InitiateOAuth: Set this to REFRESH.
  • OAuthSettingsLocation: Set this to the path to your OAuth settings file. Make sure this file gives read and write permissions to the Cloud to enable the automatic refreshing of the access token.

CData Cloud

Creating a Custom OAuth App

Custom OAuth Credentials

You can create an OAuth application through your site's UI, or by manually entering your site's create app link into your browser: https://{site}.sharepoint.com/sites/{Project_Web_App_Site}/_layouts/15/appregnew.aspx.

After filling in the required fields, you may click "Create" and the following credentials will be displayed.

Note that while creating the OAuth application, you will be required to specify a Callback URL.

This is the URL you will be redirected to after explicitly granting access. Microsoft Project requires this callback to use 'https://'.

You can work around this restriction by supplying 'https://oauth.cdata.com/oauth/' as callback, and adding an extra state connection property which will contain the actual redirect callback. Copy the ClientID and ClientSecret which will be needed later.
In order to access the microsoft project api we have to give scope permissions to the created app. In order to do that go to the following url: https://{site}.sharepoint.com/sites/{Project_Web_App_Site}/_layouts/15/AppInv.aspx.
In the App Id field enter the ClientID obtained when creating the app and click on Lookup. The other fields should automatically be filled with the apps details like Title, App Domain and Redirect URL. In the permissions request XML enter the following:

  <AppPermissionRequests>
    <AppPermissionRequest Scope="http://sharepoint/projectserver" Right="Manage"/>
    <AppPermissionRequest Scope="http://sharepoint/projectserver/projects" Right="Write"/>
    <AppPermissionRequest Scope="http://sharepoint/projectserver/enterpriseresources" Right="Write"/>
    <AppPermissionRequest Scope="http://sharepoint/projectserver/reporting" Right="Read"/>
  </AppPermissionRequests>

These are the default permissions needed to have full access to the api. Also the logged in user should make sure they have the appropriate permissions to access the api. In case your Project Web App (PWA) is in Project permission mode, you can explicitly grant access to the Web Services for specified PWA users. To do this, you can follow the steps below.

  1. Open the 'PWA Settings' page on your PWA.
  2. Click on 'Manage Users' under the security section.
  3. Click on the 'User Name' of the interested user.
  4. On the 'Edit User' page expand the Global Permissions section.
  5. Make sure the 'Allow' checkbox of the 'Access Project Server Reporting Service' option under the 'General' section is checked.

In case your PWA is in SharePoint permission mode, you will need to add the interested user in a group with at least the 'Access Project Server Reporting Service' permission enabled, such as: Portfolio Viewers, Portfolio Managers, and Administrators. To do this, you can follow the steps below.

  1. Open the 'PWA Settings' page on your PWA.
  2. Click on 'Manage Users' under the security section.
  3. Click on the 'User Name' of the interested user.
  4. On the 'Edit User' and under the 'Security Groups' select one of the groups with the required access permissions (such as: Portfolio Viewers, Portfolio Managers, and Administrators), and click on the '>' button to add the current user.

You can now use these credentials to connect to Microsoft Project by setting them as the following connection properties:

  • InitiateOAuth = GETANDREFRESH.
  • OAuthClientId = Client Id.
  • OAuthClientSecret = Client Secret.
  • CallbackURL = Your callback URL.
  • Url = The URL of your site (https://{site}.sharepoint.com/sites/{Project_Web_App_Site}).
Alternatively, to use the CData callback:

You can now use these credentials to connect to Microsoft Project by setting them as the following connection properties:

  • InitiateOAuth = GETANDREFRESH.
  • OAuthClientId = Client Id.
  • OAuthClientSecret = Client Secret.
  • CallbackURL = https://oauth.cdata.com/oauth/.
  • State = Your actual callback URL (for example http://localhost:3333).
  • Url = The URL of your site (https://{site}.sharepoint.com/sites/{Project_Web_App_Site}).

CData Cloud

CSOM Deprecation

There have been some changes made to the Cloud in the 2020 edition that should be taken into consideration.

CSOM Support Discontinued

Prior to the 2020 edition of the Cloud, connections to Microsoft Project using both the CSOM and OData interface were supported, which lead to difficulties in maintaining the two schemas concurrently.

By removing support for the CSOM, connections to Microsoft Project are streamlined due to the lack of special connection properties made specifically for each schema. Also, the OData interface can now perform all of the same CRUD operations that the CSOM is capable of. Lastly, the CSOM is poorly documented and more error-prone than OData.

For these reasons, the decision was made to deprecate support for the CSOM in favor of exclusively supporting the OData interface.

CData Cloud

Changelog

General Changes

DateBuild
Number
Change
Type
Description
12/15/20228384Microsoft ProjectAdded
  • Added support for AzureAD authentication. Users can authenticate with any app registered on the Azure Portal by specifying the OAuthClientId and OAuthClientSecret in the connection properties. The authentication process can be customized by specifying properties like Scope, CallbackURL and AzureTenant.
12/14/20228383GeneralChanged
  • Added the Default column to the sys_procedureparameters table.
09/30/20228308GeneralChanged
  • Added the IsPath column to the sys_procedureparameters table.
08/17/20228264GeneralChanged
  • We now support handling the keyword "COLLATE" as standard function name as well.
09/02/20217915GeneralAdded
  • Added support for the STRING_SPLIT table-valued function in the CROSS APPLY clause.
08/07/20217889GeneralChanged
  • Added the KeySeq column to the sys_foreignkeys table.
08/06/20217888GeneralChanged
  • Added the new sys_primarykeys system table.
07/23/20217874GeneralChanged
  • Updated the Literal Function Names for relative date/datetime functions. Previously relative date/datetime functions resolved to a different value when used in the projection vs te predicate. Ie: SELECT LAST_MONTH() AS lm, Col FROM Table WHERE Col > LAST_MONTH(). Formerly the two LAST_MONTH() methods would resolve to different datetimes. Now they will match.
  • As a replacement for the previous behavior, the relative date/datetime functions in the criteria may have an 'L' appended to them. Ie: WHERE col > L_LAST_MONTH(). This will continue to resolve to the same values that previously were calculated in the criteria. Note that the "L_" prefix will only work in the predicate - it not available for the projection.
07/08/20217859GeneralAdded
  • Added the TCP Logging Module for the logging information happening on the TCP wire protocol. The transport bytes that are incoming and ongoing will be logged at verbosity=5.
04/30/20217789Microsoft ProjectChanged
  • Changed the sensitivity of the State property to no longer be sensitive. It was mistakenly marked with password sensitivity.
04/23/20217785GeneralAdded
  • Added support for handling client side formulas during insert / update. For example: UPDATE Table SET Col1 = Concat(Col1, " - ", Col2) WHERE Col2 LIKE 'A%'
04/23/20217783GeneralChanged
  • Updated how display sizes are determined for varchar primary key and foreign key columns so they will match the reported length of the column.
04/16/20217776GeneralAdded
  • Non-conditional updates between two columns is now available to all drivers. For example: UPDATE Table SET Col1=Col2

Changed
  • Reduced the length to 255 for varchar primary key and foreign key columns.
  • Updated implicit and metadata caching to improve performance and support for multiple connections. Old metadata caches are not compatible - you would need to generate new metadata caches if you are currently using CacheMetadata.
  • Updated index naming convention to avoid duplicates
  • Updated and standardized Getting Started connection help.
  • Added the Advanced Features section to the help of all drivers.
  • Categorized connection property listings in the help for all editions.
04/15 /20217775GeneralChanged
  • Kerberos authentication is updated to use TCP by default, but will fall back to UDP if a TCP connection cannot be established
04/13/20217773Microsoft ProjectChanged
  • The OneLogin method we used previously has been deprecated by OneLogin. We have updated our design to use the latest version of the OneLogin API, which now requires a seperate OAuthClientId and OAuthClientSecret associated with your OneLogin app to be passed in through SSOProperties. The APIKey that was formerly passed in through SSOProperties for OneLogin is removed.
03/26/20217755Microsoft ProjectDeprecated
  • The UseSSO connection property is deprecated. You should select the preferred SSO scheme directly from the AuthScheme connection property instead.

CData Cloud

Advanced Features

This section details a selection of advanced features of the Microsoft Project Cloud.

User Defined Views

The Cloud allows you to define virtual tables, called user defined views, whose contents are decided by a pre-configured query. These views are useful when you cannot directly control queries being issued to the drivers. See User Defined Views for an overview of creating and configuring custom views.

SSL Configuration

Use SSL Configuration to adjust how Cloud handles TLS/SSL certificate negotiations. You can choose from various certificate formats; see the SSLServerCert property under "Connection String Options" for more information.

Firewall and Proxy

Configure the Cloud for compliance with Firewall and Proxy, including Windows proxies and HTTP proxies. You can also set up tunnel connections.

Query Processing

The Cloud offloads as much of the SELECT statement processing as possible to Microsoft Project and then processes the rest of the query in memory (client-side).

See Query Processing for more information.

Logging

See Logging for an overview of configuration settings that can be used to refine CData logging. For basic logging, you only need to set two connection properties, but there are numerous features that support more refined logging, where you can select subsets of information to be logged using the LogModules connection property.

CData Cloud

User Defined Views

The CData Cloud allows you to define a virtual table whose contents are decided by a pre-configured query. These are called User Defined Views, which are useful in situations where you cannot directly control the query being issued to the driver, e.g. when using the driver from a tool. The User Defined Views can be used to define predicates that are always applied. If you specify additional predicates in the query to the view, they are combined with the query already defined as part of the view.

There are two ways to create user defined views:

  • Create a JSON-formatted configuration file defining the views you want.

Defining Views Using a Configuration File

User Defined Views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The Cloud automatically detects the views specified in this file.

You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the Cloud.

This User Defined View configuration file is formatted as follows:

  • Each root element defines the name of a view.
  • Each root element contains a child element, called query, which contains the custom SQL query for the view.

For example:

{
	"MyView": {
		"query": "SELECT * FROM Projects WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}
Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"

Schema for User Defined Views

User Defined Views are exposed in the UserViews schema by default. This is done to avoid the view's name clashing with an actual entity in the data model. You can change the name of the schema used for UserViews by setting the UserViewsSchemaName property.

Working with User Defined Views

For example, a SQL statement with a User Defined View called UserViews.RCustomers only lists customers in Raleigh:
SELECT * FROM Customers WHERE City = 'Raleigh';
An example of a query to the driver:
SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';
Resulting in the effective query to the source:
SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';
That is a very simple example of a query to a User Defined View that is effectively a combination of the view query and the view definition. It is possible to compose these queries in much more complex patterns. All SQL operations are allowed in both queries and are combined when appropriate.

CData Cloud

SSL Configuration

Customizing the SSL Configuration

By default, the Cloud attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store.

To specify another certificate, see the SSLServerCert property for the available formats to do so.

CData Cloud

Firewall and Proxy

Connecting Through a Firewall or Proxy

HTTP Proxies

To connect through the Windows system proxy, you do not need to set any additional connection properties. To connect to other proxies, set ProxyAutoDetect to false.

In addition, to authenticate to an HTTP proxy, set ProxyAuthScheme, ProxyUser, and ProxyPassword, in addition to ProxyServer and ProxyPort.

Other Proxies

Set the following properties:

  • To use a proxy-based firewall, set FirewallType, FirewallServer, and FirewallPort.
  • To tunnel the connection, set FirewallType to TUNNEL.
  • To authenticate, specify FirewallUser and FirewallPassword.
  • To authenticate to a SOCKS proxy, additionally set FirewallType to SOCKS5.

CData Cloud

Caching Data

CData Cloud

Configuring the Cache Connection

CData Cloud

Caching Metadata

CData Cloud

Automatically Caching Data

CData Cloud

Explicitly Caching Data

CData Cloud

Data Type Mapping

CData Cloud

Query Processing

Query Processing

CData has a client-side SQL engine built into the Cloud library. This enables support for the full capabilities that SQL-92 offers, including filters, aggregations, functions, etc.

For sources that do not support SQL-92, the Cloud offloads as much of SQL statement processing as possible to Microsoft Project and then processes the rest of the query in memory (client-side). This results in optimal performance.

For data sources with limited query capabilities, the Cloud handles transformations of the SQL query to make it simpler for the Cloud. The goal is to make smart decisions based on the query capabilities of the data source to push down as much of the computation as possible. The Microsoft Project Query Evaluation component examines SQL queries and returns information indicating what parts of the query the Cloud is not capable of executing natively.

The Microsoft Project Query Slicer component is used in more specific cases to separate a single query into multiple independent queries. The client-side Query Engine makes decisions about simplifying queries, breaking queries into multiple queries, and pushing down or computing aggregations on the client-side while minimizing the size of the result set.

There's a significant trade-off in evaluating queries, even partially, client-side. There are always queries that are impossible to execute efficiently in this model, and some can be particularly expensive to compute in this manner. CData always pushes down as much of the query as is feasible for the data source to generate the most efficient query possible and provide the most flexible query capabilities.

More Information

For a full discussion of how CData handles query processing, see CData Architecture: Query Execution.

CData Cloud

Logging

Capturing Cloud logging can be very helpful when diagnosing error messages or other unexpected behavior.

Basic Logging

You will simply need to set two connection properties to begin capturing Cloud logging.

  • Logfile: A filepath which designates the name and location of the log file.
  • Verbosity: This is a numerical value (1-5) that determines the amount of detail in the log. See the page in the Connection Properties section for an explanation of the five levels.
  • MaxLogFileSize: When the limit is hit, a new log is created in the same folder with the date and time appended to the end. The default limit is 100 MB. Values lower than 100 kB will use 100 kB as the value instead.
  • MaxLogFileCount: A string specifying the maximum file count of log files. When the limit is hit, a new log is created in the same folder with the date and time appended to the end and the oldest log file will be deleted. Minimum supported value is 2. A value of 0 or a negative value indicates no limit on the count.

Once this property is set, the Cloud will populate the log file as it carries out various tasks, such as when authentication is performed or queries are executed. If the specified file doesn't already exist, it will be created.

Log Verbosity

The verbosity level determines the amount of detail that the Cloud reports to the Logfile. Verbosity levels from 1 to 5 are supported. These are described in the following list:

1Setting Verbosity to 1 will log the query, the number of rows returned by it, the start of execution and the time taken, and any errors.
2Setting Verbosity to 2 will log everything included in Verbosity 1 and additional information about the request.
3Setting Verbosity to 3 will additionally log HTTP headers, as well as the body of the request and the response.
4Setting Verbosity to 4 will additionally log transport-level communication with the data source. This includes SSL negotiation.
5Setting Verbosity to 5 will additionally log communication with the data source and additional details that may be helpful in troubleshooting problems. This includes interface commands.

The Verbosity should not be set to greater than 1 for normal operation. Substantial amounts of data can be logged at higher verbosities, which can delay execution times.

To refine the logged content further by showing/hiding specific categories of information, see LogModules.

Sensitive Data

Verbosity levels 3 and higher may capture information that you do not want shared outside of your organization. The following lists information of concern for each level:

  • Verbosity 3: The full body of the request and the response, which includes all the data returned by the Cloud
  • Verbosity 4: SSL certificates
  • Verbosity 5: Any extra transfer data not included at Verbosity 3, such as non human-readable binary transfer data

Best Practices for Data Security

Although we mask sensitive values, such as passwords, in the connection string and any request in the log, it is always best practice to review the logs for any sensitive information before sharing outside your organization.

Advanced Logging

You may want to refine the exact information that is recorded to the log file. This can be accomplished using the LogModules property.

This property allows you to filter the logging using a semicolon-separated list of logging modules.

All modules are four characters long. Please note that modules containing three letters have a required trailing blank space. The available modules are:

  • EXEC: Query Execution. Includes execution messages for original SQL queries, parsed SQL queries, and normalized SQL queries. Query and page success/failure messages appear here as well.
  • INFO: General Information. Includes the connection string, driver version (build number), and initial connection messages.
  • HTTP: HTTP Protocol messages. Includes HTTP requests/responses (including POST messages), as well as Kerberos related messages.
  • SSL : SSL certificate messages.
  • OAUT: OAuth related failure/success messages.
  • SQL : Includes SQL transactions, SQL bulk transfer messages, and SQL result set messages.
  • META: Metadata cache and schema messages.
  • TCP : Incoming and Ongoing raw bytes on TCP transport layer messages.
An example value for this property would be.
LogModules=INFO;EXEC;SSL ;SQL ;META;

Note that these modules refine the information as it is pulled after taking the Verbosity into account.

CData Cloud

SQL Compliance

The CData Cloud supports several operations on data, including querying, deleting, modifying, and inserting.

SELECT Statements

See SELECT Statements for a syntax reference and examples.

See Data Model for information on the capabilities of the Microsoft Project API.

INSERT Statements

See INSERT Statements for a syntax reference and examples.

UPDATE Statements

The primary key Id is required to update a record. See UPDATE Statements for a syntax reference and examples.

DELETE Statements

The primary key Id is required to delete a record. See DELETE Statements for a syntax reference and examples.

EXECUTE Statements

Use EXECUTE or EXEC statements to execute stored procedures. See EXECUTE Statements for a syntax reference and examples.

Names and Quoting

  • Table and column names are considered identifier names; as such, they are restricted to the following characters: [A-Z, a-z, 0-9, _:@].
  • To use a table or column name with characters not listed above, the name must be quoted using square brackets ([name]) in any SQL statement.
  • Parameter names can optionally start with the @ symbol (e.g., @p1 or @CustomerName) and cannot be quoted.
  • Strings must be quoted using single quotes (e.g., 'John Doe').

CData Cloud

SELECT Statements

A SELECT statement can consist of the following basic clauses.

  • SELECT
  • INTO
  • FROM
  • JOIN
  • WHERE
  • GROUP BY
  • HAVING
  • UNION
  • ORDER BY
  • LIMIT

SELECT Syntax

The following syntax diagram outlines the syntax supported by the SQL engine of the Cloud:

SELECT {
  [ TOP <numeric_literal> | DISTINCT ]
  { 
    * 
    | { 
        <expression> [ [ AS ] <column_reference> ] 
        | { <table_name> | <correlation_name> } .* 
      } [ , ... ] 
  }
  [ INTO csv:// [ filename= ] <file_path> [ ;delimiter=tab ] ]
  { 
    FROM <table_reference> [ [ AS ] <identifier> ] 
  } [ , ... ]
  [ [  
      INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } 
    ] JOIN <table_reference> [ ON <search_condition> ] [ [ AS ] <identifier> ] 
  ] [ ... ] 
  [ WHERE <search_condition> ]
  [ GROUP BY <column_reference> [ , ... ]
  [ HAVING <search_condition> ]
  [ UNION [ ALL ] <select_statement> ]
  [ 
    ORDER BY 
    <column_reference> [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ]
  ]
  [ 
    LIMIT <expression>
    [ 
      { OFFSET | , }
      <expression> 
    ]
  ] 
} | SCOPE_IDENTITY() 

<expression> ::=
  | <column_reference>
  | @ <parameter> 
  | ?
  | COUNT( * | { [ DISTINCT ] <expression> } )
  | { AVG | MAX | MIN | SUM | COUNT } ( <expression> ) 
  | NULLIF ( <expression> , <expression> ) 
  | COALESCE ( <expression> , ... ) 
  | CASE <expression>
      WHEN { <expression> | <search_condition> } THEN { <expression> | NULL } [ ... ]
    [ ELSE { <expression> | NULL } ]
    END 
  | <literal>
  | <sql_function> 

<search_condition> ::= 
  {
    <expression> { = | > | < | >= | <= | <> | != | LIKE | NOT LIKE | IN | NOT IN | IS NULL | IS NOT NULL | AND | OR | CONTAINS | BETWEEN } [ <expression> ]
  } [ { AND | OR } ... ] 

Examples

  1. Return all columns:
    SELECT * FROM Projects
  2. Rename a column:
    SELECT [Name] AS MY_Name FROM Projects
  3. Cast a column's data as a different data type:
    SELECT CAST(AnnualRevenue AS VARCHAR) AS Str_AnnualRevenue FROM Projects
  4. Search data:
    SELECT * FROM Projects WHERE Name =; 'Tax Checker'
  5. Return the number of items matching the query criteria:
    SELECT COUNT(*) AS MyCount FROM Projects 
  6. Return the number of unique items matching the query criteria:
    SELECT COUNT(DISTINCT Name) FROM Projects 
  7. Return the unique items matching the query criteria:
    SELECT DISTINCT Name FROM Projects 
  8. Summarize data:
    SELECT Name, MAX(AnnualRevenue) FROM Projects GROUP BY Name
    See Aggregate Functions for details.
  9. Retrieve data from multiple tables.
    SELECT Customers.ContactName, Orders.OrderDate FROM Customers, Orders WHERE Customers.CustomerID=Orders.CustomerID
    See JOIN Queries for details.
  10. Sort a result set in ascending order:
    SELECT Id, Name FROM Projects  ORDER BY Name ASC
  11. Restrict a result set to the specified number of rows:
    SELECT Id, Name FROM Projects LIMIT 10 
  12. Parameterize a query to pass in inputs at execution time. This enables you to create prepared statements and mitigate SQL injection attacks.
    SELECT * FROM Projects WHERE Name = @param

Pseudo Columns

Some input-only fields are available in SELECT statements. These fields, called pseudo columns, do not appear as regular columns in the results, yet may be specified as part of the WHERE clause. You can use pseudo columns to access additional features from Microsoft Project.

    SELECT * FROM Projects WHERE Pseudo = '@Pseudo'
    

CData Cloud

Aggregate Functions

COUNT

Returns the number of rows matching the query criteria.

SELECT COUNT(*) FROM Projects WHERE Name = 'Tax Checker'

COUNT(DISTINCT)

Returns the number of distinct, non-null field values matching the query criteria.

SELECT COUNT(DISTINCT Id) AS DistinctValues FROM Projects WHERE Name =; 'Tax Checker'

AVG

Returns the average of the column values.

SELECT Name, AVG(AnnualRevenue) FROM Projects WHERE Name =; 'Tax Checker'  GROUP BY Name

MIN

Returns the minimum column value.

SELECT MIN(AnnualRevenue), Name FROM Projects WHERE Name =; 'Tax Checker' GROUP BY Name

MAX

Returns the maximum column value.

SELECT Name, MAX(AnnualRevenue) FROM Projects WHERE Name =; 'Tax Checker' GROUP BY Name

SUM

Returns the total sum of the column values.

SELECT SUM(AnnualRevenue) FROM Projects WHERE Name = 'Tax Checker'

CData Cloud

JOIN Queries

The CData Cloud supports standard SQL joins like the following examples.

Inner Join

An inner join selects only rows from both tables that match the join condition:

SELECT Customers.ContactName, Orders.OrderDate FROM Customers, Orders WHERE Customers.CustomerID=Orders.CustomerID

Left Join

A left join selects all rows in the FROM table and only matching rows in the JOIN table:

SELECT Customers.ContactName, Orders.OrderDate FROM Customers LEFT OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID

CData Cloud

Date Literal Functions

The following date literal functions can be used to filter date fields using relative intervals. Note that while the <, >, and = operators are supported for these functions, <= and >= are not.

L_TODAY()

The current day.

  SELECT * FROM MyTable WHERE MyDateField = L_TODAY()

L_YESTERDAY()

The previous day.

  SELECT * FROM MyTable WHERE MyDateField = L_YESTERDAY()

L_TOMORROW()

The following day.

  SELECT * FROM MyTable WHERE MyDateField = L_TOMORROW()

L_LAST_WEEK()

Every day in the preceding week.

  SELECT * FROM MyTable WHERE MyDateField = L_LAST_WEEK()

L_THIS_WEEK()

Every day in the current week.

  SELECT * FROM MyTable WHERE MyDateField = L_THIS_WEEK()

L_NEXT_WEEK()

Every day in the following week.

  SELECT * FROM MyTable WHERE MyDateField = L_NEXT_WEEK()
Also available:
  • L_LAST/L_THIS/L_NEXT MONTH
  • L_LAST/L_THIS/L_NEXT QUARTER
  • L_LAST/L_THIS/L_NEXT YEAR

L_LAST_N_DAYS(n)

The previous n days, excluding the current day.

  SELECT * FROM MyTable WHERE MyDateField = L_LAST_N_DAYS(3)

L_NEXT_N_DAYS(n)

The following n days, including the current day.

  SELECT * FROM MyTable WHERE MyDateField = L_NEXT_N_DAYS(3)
Also available:
  • L_LAST/L_NEXT_90_DAYS

L_LAST_N_WEEKS(n)

Every day in every week, starting n weeks before current week, and ending in the previous week.

  SELECT * FROM MyTable WHERE MyDateField = L_LAST_N_WEEKS(3)

L_NEXT_N_WEEKS(n)

Every day in every week, starting the following week, and ending n weeks in the future.

  SELECT * FROM MyTable WHERE MyDateField = L_NEXT_N_WEEKS(3)
Also available:
  • L_LAST/L_NEXT_N_MONTHS(n)
  • L_LAST/L_NEXT_N_QUARTERS(n)
  • L_LAST/L_NEXT_N_YEARS(n)

CData Cloud

SELECT INTO Statements

You can use the SELECT INTO statement to export formatted data to a file.

Data Export with an SQL Query

The following query exports data into a file formatted in comma-separated values (CSV):

SELECT Id, Name INTO [csv://Projects.txt] FROM [Projects] WHERE Name = 'Tax Checker'
You can specify other formats in the file URI. The possible delimiters are tab, semicolon, and comma with the default being a comma. The following example exports tab-separated values:
SELECT Id, Name INTO [csv://Projects.txt;delimiter=tab] FROM [Projects] WHERE Name = 'Tax Checker'
You can specify other file formats in the URI. The following example exports tab-separated values:

CData Cloud

SQL Functions

The Cloud provides functions that are similar to those that are available with most standard databases. These functions are implemented in the CData provider engine and thus are available across all data sources with the same consistent API. Three categories of functions are available: string, date, and math.

The Cloud interprets all SQL function inputs as either strings or column identifiers, so you need to escape all literals as strings, with single quotes. For example, contrast the SQL Server syntax and Cloud syntax for the DATENAME function:

  • SQL Server:
    SELECT DATENAME(yy,GETDATE())
  • Cloud:
    SELECT DATENAME('yy',GETDATE())

String Functions

These functions perform string manipulations and return a string value. See STRING Functions for more details.

SELECT CONCAT(firstname, space(4), lastname) FROM Projects WHERE Name =; 'Tax Checker'

Date Functions

These functions perform date and date time manipulations. See DATE Functions for more details.

SELECT CURRENT_TIMESTAMP() FROM Projects

Math Functions

These functions provide mathematical operations. See MATH Functions for more details.

SELECT RAND() FROM Projects

Function Parameters and Nesting SQL Functions

The Cloud supports column names, constants, and results of other functions as parameters to functions. The following are all valid uses of SQL functions:
SELECT CONCAT('Mr.', SPACE(2), firstname, SPACE(4), lastname) FROM Projects

CData Cloud

STRING Functions

ASCII(character_expression)

Returns the ASCII code value of the left-most character of the character expression.

  • character_expression: The character expression.

                      SELECT ASCII('0');
                      --  Result: 48
                    

CHAR(integer_expression)

Converts the integer ASCII code to the corresponding character.

  • integer_expression: The integer from 0 through 255.

                      SELECT CHAR(48);
                      -- Result: '0'
                    

CHARINDEX(expressionToFind ,expressionToSearch [,start_location ])

Returns the starting position of the specified expression in the character string.

  • expressionToFind: The character expression to find.
  • expressionToSearch: The character expression, typically a column, to search.
  • start_location: The optional character position to start searching for expressionToFind in expressionToSearch.

                      SELECT CHARINDEX('456', '0123456');
                      -- Result: 4

                      SELECT CHARINDEX('456', '0123456', 5);
                      -- Result: -1
                    

CHAR_LENGTH(character_expression),

Returns the number of UTF-8 characters present in the expression.

  • character_expression: The set of characters to be be evaluated for length.

				 SELECT CHAR_LENGTH('sample text') FROM Account LIMIT 1
				 -- Result: 11			
				

CONCAT(string_value1, string_value2 [, string_valueN])

Returns the string that is the concatenation of two or more string values.

  • string_value1: The first string to be concatenated.
  • string_value2: The second string to be concatenated.
  • *: The optional additional strings to be concatenated.

                      SELECT CONCAT('Hello, ', 'world!');
                      -- Result: 'Hello, world!'
                    

CONTAINS(expressionToSearch, expressionToFind)

Returns 1 if expressionToFind is found within expressionToSearch; otherwise, 0.

  • expressionToSearch: The character expression, typically a column, to search.
  • expressionToFind: The character expression to find.

                      SELECT CONTAINS('0123456', '456');
                      -- Result: 1

                      SELECT CONTAINS('0123456', 'Not a number');
                      -- Result: 0
                    

ENDSWITH(character_expression, character_suffix)

Returns 1 if character_expression ends with character_suffix; otherwise, 0.

  • character_expression: The character expression.
  • character_suffix: The character suffix to search for.

                      SELECT ENDSWITH('0123456', '456');
                      -- Result: 1

                      SELECT ENDSWITH('0123456', '012');
                      -- Result: 0
                    

FILESIZE(uri)

Returns the number of bytes present in the file at the specified file path.

  • uri: The path of the file to read the size from.

				SELECT FILESIZE('C:/Users/User1/Desktop/myfile.txt');
				-- Result: 23684
				

FORMAT(value [, parseFormat], format )

Returns the value formatted with the specified format.

  • value: The string to format.
  • format: The string specifying the output syntax of the date or numeric format.
  • parseFormat: The string specifying the input syntax of the date value. Not applicable to numeric types.

                      SELECT FORMAT(12.34, '#');
                      -- Result: 12

                      SELECT FORMAT(12.34, '#.###');
                      -- Result: 12.34

                      SELECT FORMAT(1234, '0.000E0');
                      -- Result: 1.234E3
                      
                      SELECT FORMAT('2019/01/01', 'yyyy-MM-dd');
                      -- Result: 2019-01-01
                      
                      SELECT FORMAT('20190101', 'yyyyMMdd', 'yyyy-MM-dd');
                      -- Result: '2019-01-01'
                    

FROM_UNIXTIME(time, issecond)

Returns a representation of the unix_timestamp argument as a value in YYYY-MM-DD HH:MM:SS expressed in the current time zone.

  • time: The time stamp value from epoch time. Milliseconds are accepted.
  • issecond: Indicates the time stamp value is milliseconds to epoch time.

                      SELECT FROM_UNIXTIME(1540495231, 1);
                      -- Result: 2018-10-25 19:20:31

                      SELECT FROM_UNIXTIME(1540495357385, 0);
                      -- Result: 2018-10-25 19:22:37
                    

HASHBYTES(algorithm, value)

Returns the hash of the input value as a byte array using the given algorithm. The supported algorithms are MD5, SHA1, SHA2_256, SHA2_512, SHA3_224, SHA3_256, SHA3_384, and SHA3_512.

  • algorithm: The algorithm to use for hashing. Must be one of MD5, SHA1, SHA2_256, SHA2_512, SHA3_224, SHA3_256, SHA3_384, or SHA3_512.
  • value: The value to hash. Must be either a string or byte array.

                      SELECT HASHBYTES('MD5', 'Test');
                      -- Result (byte array): 0x0CBC6611F5540BD0809A388DC95A615B
                    

INDEXOF(expressionToSearch, expressionToFind [,start_location ])

Returns the starting position of the specified expression in the character string.

  • expressionToSearch: The character expression, typically a column, to search.
  • expressionToFind: The character expression to find.
  • start_location: The optional character position to start searching for expressionToFind in expressionToSearch.

                      SELECT INDEXOF('0123456', '456');
                      -- Result: 4

                      SELECT INDEXOF('0123456', '456', 5);
                      -- Result: -1
                    

ISNULL ( check_expression , replacement_value )

Replaces null with the specified replacement value.

  • check_expression: The expression to be checked for null.
  • replacement_value: The expression to be returned if check_expression is null.

                      SELECT ISNULL(42, 'Was NULL');
                      -- Result: 42

                      SELECT ISNULL(NULL, 'Was NULL');
                      -- Result: 'Was NULL'
                    

JSON_AVG(json, jsonpath)

Computes the average value of a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_AVG('[1,2,3,4,5]', '$[x]');
                      -- Result: 3

                      SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 3

                      SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
                      -- Result: 4.5
                    

JSON_COUNT(json, jsonpath)

Returns the number of elements in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_COUNT('[1,2,3,4,5]', '$[x]');
                      -- Result: 5

                      SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 5

                      SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
                      -- Result: 2
                    

JSON_EXTRACT(json, jsonpath)

Selects any value in a JSON array or object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to extract.
  • jsonpath: The XPath used to select the nodes. The JSONPath must be a string constant. The values of the nodes selected will be returned in a token-separated list.

                      SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test');
                      -- Result: '{"data":1}'

                      SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test.data');
                      -- Result: 1

                      SELECT JSON_EXTRACT('{"test": {"data": [1, 2, 3]}}', '$.test.data[1]');
                      -- Result: 2
                    

JSON_MAX(json, jsonpath)

Gets the maximum value in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_MAX('[1,2,3,4,5]', '$[x]');
                      -- Result: 5

                      SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 5

                      SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[..3]');
                      -- Result: 4
                    

JSON_MIN(json, jsonpath)

Gets the minimum value in a JSON array within a JSON object. The path to the array is specified in the jsonpath argument. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_MIN('[1,2,3,4,5]', '$[x]');
                      -- Result: 1

                      SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 1

                      SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
                      -- Result: 4
                    

JSON_SUM(json, jsonpath)

Computes the summary value in JSON according to the JSONPath expression. Return value is numeric or null.

  • json: The JSON document to compute.
  • jsonpath: The JSONPath used to select the nodes. [x], [2..], [..8], or [1..12] are accepted. [x] selects all nodes.

                      SELECT JSON_SUM('[1,2,3,4,5]', '$[x]');
                      -- Result: 15

                      SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
                      -- Result: 15

                      SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
                      -- Result: 9
                    

LEFT ( character_expression , integer_expression )

Returns the specified number of characters counting from the left of the specified string.

  • character_expression: The character expression.
  • integer_expression: The positive integer that specifies how many characters will be returned counting from the left of character_expression.

                      SELECT LEFT('1234567890', 3);
                      -- Result: '123'
                    

LEN(string_expression)

Returns the number of characters of the specified string expression.

  • string_expression: The string expression.

                      SELECT LEN('12345');
                      -- Result: 5
                    

LOCATE(substring,string)

Returns an integer representing how many characters into the string the substring appears.

  • substring: The substring to find inside larger string.
  • string: The larger string that will be searched for the substring.

				SELECT LOCATE('sample','XXXXXsampleXXXXX');
				-- Result: 6
				

LOWER ( character_expression )

Returns the character expression with the uppercase character data converted to lowercase.

  • character_expression: The character expression.

                      SELECT LOWER('MIXED case');
                      -- Result: 'mixed case'
                    

LTRIM(character_expression)

Returns the character expression with leading blanks removed.

  • character_expression: The character expression.

                      SELECT LTRIM('     trimmed');
                      -- Result: 'trimmed'
                    

MASK(string_expression, mask_character [, start_index [, end_index ]])

Replaces the characters between start_index and end_index with the mask_character within the string.

  • string_expression: The string expression to be searched.
  • mask_character: The character to mask with.
  • start_index: The optional number of characters to leave unmasked at beginning of string. Defaults to 0.
  • end_index: The optional number of characters to leave unmasked at end of string. Defaults to 0.

                        SELECT MASK('1234567890','*',);
                        -- Result: '**********'
                        SELECT MASK('1234567890','*', 4);
                        -- Result: '1234******'
                        SELECT MASK('1234567890','*', 4, 2);
                        -- Result: '1234****90'  
                    

NCHAR(integer_expression)

Returns the Unicode character with the specified integer code as defined by the Unicode standard.

  • integer_expression: The integer from 0 through 255.

OCTET_LENGTH(character_expression),

Returns the number of bytes present in the expression.

  • character_expression: The set of characters to be be evaluated.

				 SELECT OCTET_LENGTH('text') FROM Account LIMIT 1
				 -- Result: 4
				

PATINDEX(pattern, expression)

Returns the starting position of the first occurrence of the pattern in the expression. Returns 0 if the pattern is not found.

  • pattern: The character expression that contains the sequence to be found. The wild-card character % can be used only at the start or end of the expression.
  • expression: The expression, typically a column, to search for the pattern.

                      SELECT PATINDEX('123%', '1234567890');
                      -- Result: 1

                      SELECT PATINDEX('%890', '1234567890');
                      -- Result: 8

                      SELECT PATINDEX('%456%', '1234567890');
                      -- Result: 4
                    

POSITION(expressionToFind IN expressionToSearch)

Returns the starting position of the specified expression in the character string.

  • expressionToFind: The character expression to find.
  • expressionToSearch: The character expression, typically a column, to search.

                      SELECT POSITION('456' IN '123456');
                      -- Result: 4

                      SELECT POSITION('x' IN '123456');
                      -- Result: 0
                    

QUOTENAME(character_string [, quote_character])

Returns a valid SQL Server-delimited identifier by adding the necessary delimiters to the specified Unicode string.

  • character_string: The string of Unicode character data. The string is limited to 128 characters. Inputs greater than 128 characters return null.
  • quote_character: The optional single character to be used as the delimiter. Can be a single quotation mark, a left or right bracket, or a double quotation mark. If quote_character is not specified brackets are used.

                      SELECT QUOTENAME('table_name');
                      -- Result: '[table_name]'

                      SELECT QUOTENAME('table_name', '"');
                      -- Result: '"table_name"'

                      SELECT QUOTENAME('table_name', '[');
                      -- Result: '[table_name]'
                    

REPLACE(string_expression, string_pattern, string_replacement)

Replaces all occurrences of a string with another string.

  • string_expression: The string expression to be searched. Can be a character or binary data type.
  • string_pattern: The substring to be found. Cannot be an empty string.
  • string_replacement: The replacement string.

                      SELECT REPLACE('1234567890', '456', '|');
                      -- Result: '123|7890'

                      SELECT REPLACE('123123123', '123', '.');
                      -- Result: '...'

                      SELECT REPLACE('1234567890', 'a', 'b');
                      -- Result: '1234567890'
                    

REPLICATE ( string_expression ,integer_expression )

Repeats the string value the specified number of times.

  • string_expression: The string to replicate.
  • integer_expression: The repeat count.

                      SELECT REPLACE('x', 5);
                      -- Result: 'xxxxx'
                    

REVERSE ( string_expression )

Returns the reverse order of the string expression.

  • string_expression: The string.

                      SELECT REVERSE('1234567890');
                      -- Result: '0987654321'
                    

RIGHT ( character_expression , integer_expression )

Returns the right part of the string with the specified number of characters.

  • character_expression: The character expression.
  • integer_expression: The positive integer that specifies how many characters of the character expression will be returned.

                      SELECT RIGHT('1234567890', 3);
                      -- Result: '890'
                    

RTRIM(character_expression)

Returns the character expression after it removes trailing blanks.

  • character_expression: The character expression.

                      SELECT RTRIM('trimmed     ');
                      -- Result: 'trimmed'
                    

SOUNDEX(character_expression)

Returns the four-character Soundex code, based on how the string sounds when spoken.

  • character_expression: The alphanumeric expression of character data.

                      SELECT SOUNDEX('smith');
                      -- Result: 'S530'
                    

SPACE(repeatcount)

Returns the string that consists of repeated spaces.

  • repeatcount: The number of spaces.

                      SELECT SPACE(5);
                      -- Result: '     '
                    

SPLIT(string, delimiter, offset)

Returns a section of the string between to delimiters.

  • string: The string to split.
  • delimiter: The character to split the string with.
  • offset: The number of the split to return. Positive numbers are treated as offsets from the left, and negative numbers are treated as offsets from the right.

                      SELECT SPLIT('a/b/c/d', '/', 1);
                      -- Result: 'a'
                      SELECT SPLIT('a/b/c/d', '/', -2);
                      -- Result: 'c'
                    

STARTSWITH(character_expression, character_prefix)

Returns 1 if character_expression starts with character_prefix; otherwise, 0.

  • character_expression: The character expression.
  • character_prefix: The character prefix to search for.

                      SELECT STARTSWITH('0123456', '012');
                      -- Result: 1

                      SELECT STARTSWITH('0123456', '456');
                      -- Result: 0
                    

STR ( float_expression [ , integer_length [ , integer_decimal ] ] )

Returns the character data converted from the numeric data. For example, STR(123.45, 6, 1) returns 123.5.

  • float_expression: The float expression.
  • length: The optional total length to return. This includes decimal point, sign, digits, and spaces. The default is 10.
  • decimal: The optional number of places to the right of the decimal point. The decimal must be less than or equal to 16.

                      SELECT STR('123.456');
                      -- Result: '123'

                      SELECT STR('123.456', 2);
                      -- Result: '**'

                      SELECT STR('123.456', 10, 2);
                      -- Result: '123.46'
                    

STUFF(character_expression , integer_start , integer_length , replaceWith_expression)

Inserts a string into another string. It deletes the specified length of characters in the first string at the start position and then inserts the second string into the first string at the start position.

  • character_expression: The string expression.
  • start: The integer value that specifies the location to start deletion and insertion. If start or length is negative, null is returned. If start is longer than the string to be modified, character_expression, null is returned.
  • length: The integer that specifies the number of characters to delete. If length is longer than character_expression, deletion occurs up to the last character in replaceWith_expression.
  • replaceWith_expression: The expression of character data that will replace length characters of character_expression beginning at the start value.

                      SELECT STUFF('1234567890', 3, 2, 'xx');
                      -- Result: '12xx567890'
                    

SUBSTRING(string_value FROM start FOR length)

Returns the part of the string with the specified length; starts at the specified index.

  • string_value: The character string.
  • start: The positive integer that specifies the start index of characters to return.
  • length: Optional. The positive integer that specifies how many characters will be returned.

                      SELECT SUBSTRING('1234567890' FROM 3 FOR 2);
                      -- Result: '34'

                      SELECT SUBSTRING('1234567890' FROM 3);
                      -- Result: '34567890'
                    

TOSTRING(string_value1)

Converts the value of this instance to its equivalent string representation.

  • string_value1: The string to be converted.

                      SELECT TOSTRING(123);
                      -- Result: '123'

                      SELECT TOSTRING(123.456);
                      -- Result: '123.456'

                      SELECT TOSTRING(null);
                      -- Result: ''
                    

TRIM(trimspec trimchar FROM string_value)

Returns the character expression with leading and/or trailing blanks removed.

  • trimspec: Optional. If included must be one of the keywords BOTH, LEADING or TRAILING.
  • trimchar: Optional. If included should be a one-character string value.
  • string_value: The string value to trim.

                      SELECT TRIM('     trimmed     ');
                      -- Result: 'trimmed'

                      SELECT TRIM(LEADING FROM '     trimmed     ');
                      -- Result: 'trimmed     '

                      SELECT TRIM('-' FROM '-----trimmed-----');
                      -- Result: 'trimmed'

                      SELECT TRIM(BOTH '-' FROM '-----trimmed-----');
                      -- Result: 'trimmed'

                      SELECT TRIM(TRAILING '-' FROM '-----trimmed-----');
                      -- Result: '-----trimmed'
                    

UNICODE(ncharacter_expression)

Returns the integer value defined by the Unicode standard of the first character of the input expression.

  • ncharacter_expression: The Unicode character expression.

UPPER ( character_expression )

Returns the character expression with lowercase character data converted to uppercase.

  • character_expression: The character expression.

                      SELECT UPPER('MIXED case');
                      -- Result: 'MIXED CASE'
                    

XML_EXTRACT(xml, xpath [, separator])

Extracts an XML document using the specified XPath to flatten the XML. A comma is used to separate the outputs by default, but this can be changed by specifying the third parameter.

  • xml: The XML document to extract.
  • xpath: The XPath used to select the nodes. The nodes selected will be returned in a token-separated list.
  • separator: The optional token used to separate the items in the flattened response. If this is not specified, the separator will be a comma.

                      SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch');
                      -- Result: 'a,e,i,o,u'

                      SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch', ';');
                      -- Result: 'a;e;i;o;u'
                    

CData Cloud

DATE Functions

CURRENT_DATE()

Returns the current date value.

                  SELECT CURRENT_DATE();
                  -- Result: 2018-02-01
                

CURRENT_TIMESTAMP()

Returns the current time stamp of the database system as a datetime value. This value is equal to GETDATE and SYSDATETIME, and is always in the local timezone.

                  SELECT CURRENT_TIMESTAMP();
                  -- Result: 2018-02-01 03:04:05
                

DATEADD (datepart , integer_number , date [, dateformat])

Returns the datetime value that results from adding the specified number (a signed integer) to the specified date part of the date.

  • datepart: The part of the date to add the specified number to. The valid values and abbreviations are year (yy, yyyy), quarter (qq, q), month (mm, m), dayofyear (dy, y), day (dd, d), week (wk, ww), weekday (dw), hour (hh), minute (mi, n), second (ss, s), and millisecond (ms).
  • number: The number to be added.
  • date: The expression of the datetime data type.
  • dateformat: The optional output date format.

                  SELECT DATEADD('d', 5, '2018-02-01');
                  -- Result: 2018-02-06

                  SELECT DATEADD('hh', 5, '2018-02-01 00:00:00');
                  -- Result: 2018-02-01 05:00:00
                

DATEDIFF ( datepart , startdate , enddate )

Returns the difference (a signed integer) of the specified time interval between the specified start date and end date.

  • datepart: The part of the date that is the time interval of the difference between the start date and end date. The valid values and abbreviations are day (dd, d), hour (hh), minute (mi, n), second (ss, s), and millisecond (ms).
  • startdate: The datetime expression of the start date.
  • enddate: The datetime expression of the end date.

                  SELECT DATEDIFF('d', '2018-02-01', '2018-02-10');
                  -- Result: 9

                  SELECT DATEDIFF('hh', '2018-02-01 00:00:00', '2018-02-01 12:00:00');
                  -- Result: 12
                

DATEFROMPARTS(integer_year, integer_month, integer_day)

Returns the datetime value for the specified year, month, and day.

  • year: The integer expression specifying the year.
  • month: The integer expression specifying the month.
  • day: The integer expression specifying the day.

                    SELECT DATEFROMPARTS(2018, 2, 1);
                    -- Result: 2018-02-01
                  

DATENAME(datepart , date)

Returns the character string that represents the specified date part of the specified date.

  • datepart: The part of the date to return. The valid values and abbreviations are year (yy, yyyy), quarter (qq, q), month (mm, m), dayofyear (dy, y), day (dd, d), week (wk, ww), weekday (dw), hour (hh), minute (mi, n), second (ss, s), millisecond (ms), microsecond (mcs), nanosecond (ns), and TZoffset (tz).
  • date: The datetime expression.

                     SELECT DATENAME('yy', '2018-02-01');
                     -- Result: '2018'

                     SELECT DATENAME('dw', '2018-02-01');
                     -- Result: 'Thursday'
                   

DATEPART(datepart, date [,integer_datefirst])

Returns a character string that represents the specified date part of the specified date.

  • datepart: The part of the date to return. The valid values and abbreviations are year (yy, yyyy), quarter (qq, q), month (mm, m), dayofyear (dy, y), day (dd, d), week (wk, ww), weekday (dw), hour (hh), minute (mi, n), second (ss, s), millisecond (ms), microsecond (mcs), nanosecond (ns), TZoffset (tz), ISODOW, ISO_WEEK (isoweek, isowk,isoww), and ISOYEAR.
  • date: The datetime string.
  • datefirst: The optional integer representing the first day of the week. The default is 7, Sunday.

                    SELECT DATEPART('yy', '2018-02-01');
                    -- Result: 2018

                    SELECT DATEPART('dw', '2018-02-01');
                    -- Result: 5
                  

DATETIME2FROMPARTS(integer_year, integer_month, integer_day, integer_hour, integer_minute, integer_seconds, integer_fractions, integer_precision)

Returns the datetime value for the specified date parts.

  • year: The integer expression specifying the year.
  • month: The integer expression specifying the month.
  • day: The integer expression specifying the day.
  • hour: The integer expression specifying the hour.
  • minute: The integer expression specifying the minute.
  • seconds: The integer expression specifying the seconds.
  • fractions: The integer expression specifying the fractions of the second.
  • precision: The integer expression specifying the precision of the fraction.

                    SELECT DATETIME2FROMPARTS(2018, 2, 1, 1, 2, 3, 456, 3);
                    -- Result: 2018-02-01 01:02:03.456
                  

DATETIMEFROMPARTS(integer_year, integer_month, integer_day, integer_hour, integer_minute, integer_seconds, integer_milliseconds)

Returns the datetime value for the specified date parts.

  • year: The integer expression specifying the year.
  • month: The integer expression specifying the month.
  • day: The integer expression specifying the day.
  • hour: The integer expression specifying the hour.
  • minute: The integer expression specifying the minute.
  • seconds: The integer expression specifying the seconds.
  • milliseconds: The integer expression specifying the milliseconds.

                    SELECT DATETIMEFROMPARTS(2018, 2, 1, 1, 2, 3, 456);
                    -- Result: 2018-02-01 01:02:03.456
                  

DATE_TRUNC(date, datepart)

Truncates the date to the precision of the given date part. Modeled after the Oracle TRUNC function.

  • date: The datetime string that specifies the date.
  • datepart: Refer to the Oracle documentation for valid datepart syntax.

				    SELECT DATE_TRUNC('05-04-2005', 'YY');
                    -- Result: '1/1/2005'
					
                    SELECT DATE_TRUNC('05-04-2005', 'MM');
                    -- Result: '5/1/2005'                    
                  

DATE_TRUNC2(datepart, date, [weekday])

Truncates the date to the precision of the given date part. Modeled after the PostgreSQL date_trunc function.

  • datepart: One of 'millennium', 'century', 'decade', 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute' or 'second'.
  • date: The datetime string that specifies the date.
  • weekday: The optional day of the week to use as the first day for 'week'. One of 'sunday', 'monday', etc.

                    SELECT DATE_TRUNC2('year', '2020-02-04');
                    -- Result: '2020-01-01'

                    SELECT DATE_TRUNC2('week', '2020-02-04', 'monday');
                    -- Result: '2020-02-02', which is the previous Monday
                  

DAY(date)

Returns the integer that specifies the day component of the specified date.

  • date: The datetime string that specifies the date.

                    SELECT DAY('2018-02-01');
                    -- Result: 1
                  

DAYOFMONTH(date)

Returns the day of the month of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT DAYOFMONTH('04/15/2000');
				  -- Result: 15
				  

DAYOFWEEK(date)

Returns the day of the week of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT DAYOFWEEK('04/15/2000');
				  -- Result: 7
				  

DAYOFYEAR(date)

Returns the day of the year of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT DAYOFYEAR('04/15/2000');
				  -- Result: 106
				  

EOMONTH(date [, integer_month_to_add ]) or LAST_DAY(date)

Returns the last day of the month that contains the specified date with an optional offset.

  • date: The datetime expression specifying the date for which to return the last day of the month.
  • integer_month_to_add: The optional integer expression specifying the number of months to add to the date before calculating the end of the month.

                  SELECT EOMONTH('2018-02-01');
                  -- Result: 2018-02-28
                  
                  SELECT LAST_DAY('2018-02-01');
                  -- Result: 2018-02-28

                  SELECT EOMONTH('2018-02-01', 2);
                  -- Result: 2018-04-30
                

FDWEEK(date)

Returns the first day of the week of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT FDWEEK('02-08-2018');
				  -- Result: 2/4/2018
				  

FDMONTH(date)

Returns the first day of the month of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT FDMONTH('02-08-2018');
				  -- Result: 2/1/2018
				  

FDQUARTER(date)

Returns the first day of the quarter of the given date part.
  • date: The datetime string that specifies the date.

				  SELECT FDQUARTER('05-08-2018');
				  -- Result: 4/1/2018
				  

FILEMODIFIEDTIME(uri)

Returns the time stamp associated with the Date Modified of the relevant file.

  • uri: An absolute path pointing to a file on the local file system.

				 SELECT FILEMODIFIEDTIME('C:/Documents/myfile.txt');
				 -- Result: 6/25/2019 10:06:58 AM
				 

FROM_DAYS(datevalue)

Returns a date derived from the number of days after 1582-10-15 (based upon the Gregorian calendar). This will be equivalent to the MYSQL FROM_DAYS function.

  • datevalue: A integer value representing the number of days since 1582-10-15.

				SELECT FROM_DAYS(736000);
				-- Result: 2/6/2015
				

GETDATE()

Returns the current time stamp of the database system as a datetime value. This value is equal to CURRENT_TIMESTAMP and SYSDATETIME, and is always in the local timezone.

                  SELECT GETDATE();
                  -- Result: 2018-02-01 03:04:05
                

GETUTCDATE()

Returns the current time stamp of the database system formatted as a UTC datetime value. This value is equal to SYSUTCDATETIME.

                  SELECT GETUTCDATE();
                  -- For example, if the local timezone is Eastern European Time (GMT+2)
                  -- Result: 2018-02-01 05:04:05
                

HOUR(date)

Returns the hour component from the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT HOUR('02-02-2020 11:30:00');
				-- Result: 11
				

ISDATE(date, [date_format])

Returns 1 if the value is a valid date, time, or datetime value; otherwise, 0.

  • date: The datetime string.
  • date_format: The optional datetime format.

                      SELECT ISDATE('2018-02-01', 'yyyy-MM-dd');
                      -- Result: 1

                      SELECT ISDATE('Not a date');
                      -- Result: 0
                    

LAST_WEEK()

Returns a time stamp equivalent to exactly one week before the current date.

				SELECT LAST_WEEK();	//Assume the date is 3/17/2020	
				-- Result: 3/10/2020
				

LAST_MONTH()

Returns a time stamp equivalent to exactly one month before the current date.

				SELECT LAST_MONTH(); //Assume the date is 3/17/2020	
				-- Result: 2/17/2020
				

LAST_YEAR()

Returns a time stamp equivalent to exactly one year before the current date.

				SELECT LAST_YEAR();	//Assume the date is 3/17/2020	
				-- Result: 3/10/2019
				

LDWEEK(date)

Returns the last day of the provided week.

  • date: The datetime string.

				SELECT LDWEEK('02-02-2020');
				-- Result: 2/8/2020
				

LDMONTH(date)

Returns the last day of the provided month.

  • date: The datetime string.

				SELECT LDMONTH('02-02-2020');
				-- Result: 2/29/2020
				

LDQUARTER(date)

Returns the last day of the provided quarter.

  • date: The datetime string.

				SELECT LDQUARTER('02-02-2020');
				-- Result: 3/31/2020
				

MAKEDATE(year, days)

Returns a date value from a year and a number of days.

  • year: The year
  • days: The number of days into the year. Value must be greater than 0.

          SELECT MAKEDATE(2020, 1);
          -- Result: 2020-01-01
        

MINUTE(date)

Returns the minute component from the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT MINUTE('02-02-2020 11:15:00');
				-- Result: 15
				

MONTH(date)

Returns the month component from the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT MONTH('02-02-2020');
				-- Result: 2
				

QUARTER(date)

Returns the quarter associated with the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT QUARTER('02-02-2020');
				-- Result: 1
				

SECOND(date)

Returns the second component from the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT SECOND('02-02-2020 11:15:23');
				-- Result: 23
				

SMALLDATETIMEFROMPARTS(integer_year, integer_month, integer_day, integer_hour, integer_minute)

Returns the datetime value for the specified date and time.

  • year: The integer expression specifying the year.
  • month: The integer expression specifying the month.
  • day: The integer expression specifying the day.
  • hour: The integer expression specifying the hour.
  • minute: The integer expression specifying the minute.

                      SELECT SMALLDATETIMEFROMPARTS(2018, 2, 1, 1, 2);
                      -- Result: 2018-02-01 01:02:00
                    

STRTODATE(string,format)

Parses the provided string value and returns the corresponding datetime.

  • string: The string value to be converted to datetime format.
  • format: A format string which describes how to interpret the first string input. A few special formats are available as well, including UNIX, UNIXMILIS, TICKS, and FILETICKS.

				SELECT STRTODATE('03*04*2020','dd*MM*yyyy');
				-- Result: 4/3/2020
				

SYSDATETIME()

Returns the current time stamp as a datetime value of the database system. It is equal to GETDATE and CURRENT_TIMESTAMP, and is always in the local timezone.

                  SELECT SYSDATETIME();
                  -- Result: 2018-02-01 03:04:05
                

SYSUTCDATETIME()

Returns the current system date and time as a UTC datetime value. It is equal to GETUTCDATE.

                  SELECT SYSUTCDATETIME();
                  -- For example, if the local timezone is Eastern European Time (GMT+2)
                  -- Result: 2018-02-01 05:04:05
                

TIMEFROMPARTS(integer_hour, integer_minute, integer_seconds, integer_fractions, integer_precision)

Returns the time value for the specified time and with the specified precision.

  • hour: The integer expression specifying the hour.
  • minute: The integer expression specifying the minute.
  • seconds: The integer expression specifying the seconds.
  • fractions: The integer expression specifying the fractions of the second.
  • precision : The integer expression specifying the precision of the fraction.

                      SELECT TIMEFROMPARTS(1, 2, 3, 456, 3);
                      -- Result: 01:02:03.456
                    

TO_DAYS(date)

Returns the number of days since 0000-00-01. This will only return a value for dates on or after 1582-10-15 (based upon the Gregorian calendar). This will be equivalent to the MYSQL TO_DAYS function.

  • date: The datetime string that specifies the date.

				SELECT TO_DAYS('02-06-2015');
				-- Result: 736000
				

WEEK(date)

Returns the week (of the year) associated with the provided datetime.

  • date: The datetime string that specifies the date.

				SELECT WEEK('02-17-2020 11:15:23');
				-- Result: 8
				

YEAR(date)

Returns the integer that specifies the year of the specified date.

  • date: The datetime string.

                      SELECT YEAR('2018-02-01');
                      -- Result: 2018
                    

CData Cloud

MATH Functions

ABS ( numeric_expression )

Returns the absolute (positive) value of the specified numeric expression.

  • numeric_expression: The expression of an indeterminate numeric data type except for the bit data type.

                      SELECT ABS(15);
                      -- Result: 15

                      SELECT ABS(-15);
                      -- Result: 15
                    

ACOS ( float_expression )

Returns the arc cosine, the angle in radians whose cosine is the specified float expression.

  • float_expression: The float expression that specifies the cosine of the angle to be returned. Values outside the range from -1 to 1 return null.

                      SELECT ACOS(0.5);
                      -- Result: 1.0471975511966
                    

ASIN ( float_expression )

Returns the arc sine, the angle in radians whose sine is the specified float expression.

  • float_expression: The float expression that specifies the sine of the angle to be returned. Values outside the range from -1 to 1 return null.

                      SELECT ASIN(0.5);
                      -- Result: 0.523598775598299
                    

ATAN ( float_expression )

Returns the arc tangent, the angle in radians whose tangent is the specified float expression.

  • float_expression: The float expression that specifies the tangent of the angle to be returned.

                      SELECT ATAN(10);
                      -- Result: 1.47112767430373
                    

ATN2 ( float_expression1 , float_expression2 )

Returns the angle in radians between the positive x-axis and the ray from the origin to the point (y, x) where x and y are the values of the two specified float expressions.

  • float_expression1: The float expression that is the y-coordinate.
  • float_expression2: The float expression that is the x-coordinate.

                      SELECT ATN2(1, 1);
                      -- Result: 0.785398163397448
                    

CEILING ( numeric_expression ) or CEIL( numeric_expression )

Returns the smallest integer greater than or equal to the specified numeric expression.

  • numeric_expression: The expression of an indeterminate numeric data type except for the bit data type.

                      SELECT CEILING(1.3);
                      -- Result: 2

                      SELECT CEILING(1.5);
                      -- Result: 2

                      SELECT CEILING(1.7);
                      -- Result: 2
                    

COS ( float_expression )

Returns the trigonometric cosine of the specified angle in radians in the specified expression.

  • float_expression: The float expression of the specified angle in radians.

                      SELECT COS(1);
                      -- Result: 0.54030230586814
                    

COT ( float_expression )

Returns the trigonometric cotangent of the angle in radians specified by float_expression.

  • float_expression: The float expression of the angle in radians.

                      SELECT COT(1);
                      -- Result: 0.642092615934331
                    

DEGREES ( numeric_expression )

Returns the angle in degrees for the angle specified in radians.

  • numeric_expression: The angle in radians, an expression of an indeterminate numeric data type except for the bit data type.

                      SELECT DEGREES(3.1415926);
                      -- Result: 179.999996929531
                    

EXP ( float_expression )

Returns the exponential value of the specified float expression. For example, EXP(LOG(20)) is 20.

  • float_expression: The float expression.

                      SELECT EXP(2);
                      -- Result: 7.38905609893065
                    

EXPR ( expression )

Evaluates the expression.

  • expression: The expression. Operators allowed are +, -, *, /, ==, !=, >, <, >=, and <=.

                      SELECT EXPR('1 + 2 * 3');
                      -- Result: 7

                      SELECT EXPR('1 + 2 * 3 == 7');
                      -- Result: true
                    

FLOOR ( numeric_expression )

Returns the largest integer less than or equal to the numeric expression.

  • numeric_expression: The expression of an indeterminate numeric data type except for the bit data type.

                      SELECT FLOOR(1.3);
                      -- Result: 1

                      SELECT FLOOR(1.5);
                      -- Result: 1

                      SELECT FLOOR(1.7);
                      -- Result: 1
                    

GREATEST(int1,int2,....)

Returns the greatest of the supplied integers.

				SELECT GREATEST(3,5,8,10,1)
				-- Result: 10			
				

HEX(value)

Returns a the equivalent hex for the input value.

  • value: A string or numerical value to be converted into hex.

				SELECT HEX(866849198);
				-- Result: 33AB11AE
				
				SELECT HEX('Sample Text');
				-- Result: 53616D706C652054657874
				

LEAST(int1,int2,....)

Returns the least of the supplied integers.

				SELECT LEAST(3,5,8,10,1)
				-- Result: 1			
				

LOG ( float_expression [, base ] )

Returns the natural logarithm of the specified float expression.

  • float_expression: The float expression.
  • base: The optional integer argument that sets the base for the logarithm.

                      SELECT LOG(7.3890560);
                      -- Result: 1.99999998661119
                    

LOG10 ( float_expression )

Returns the base-10 logarithm of the specified float expression.

  • float_expression: The expression of type float.

                      SELECT LOG10(10000);
                      -- Result: 4
                    

MOD(dividend,divisor)

Returns the integer value associated with the remainder when dividing the dividend by the divisor.

  • dividend: The number to take the modulus of.
  • divisor: The number to divide the dividend by when determining the modulus.

				SELECT MOD(10,3);
				-- Result: 1
				

NEGATE(real_number)

Returns the opposite to the real number input.

  • real_number: The real number to find the opposite of.

				SELECT NEGATE(10);
				-- Result: -10
				
				SELECT NEGATE(-12.4)
				--Result: 12.4
				

PI ( )

Returns the constant value of pi.

                  SELECT PI()
                  -- Result: 3.14159265358979 
                

POWER ( float_expression , y )

Returns the value of the specified expression raised to the specified power.

  • float_expression: The float expression.
  • y: The power to raise float_expression to.

                      SELECT POWER(2, 10);
                      -- Result: 1024

                      SELECT POWER(2, -2);
                      -- Result: 0.25
                    

RADIANS ( float_expression )

Returns the angle in radians of the angle in degrees.

  • float_expression: The degrees of the angle as a float expression.

                      SELECT RADIANS(180);
                      -- Result: 3.14159265358979
                    

RAND ( [ integer_seed ] )

Returns a pseudorandom float value from 0 through 1, exclusive.

  • seed: The optional integer expression that specifies the seed value. If seed is not specified, a seed value at random will be assigned.

                      SELECT RAND();
                      -- This result may be different, since the seed is randomized
                      -- Result: 0.873159630165044

                      SELECT RAND(1);
                      -- This result will always be the same, since the seed is constant
                      -- Result: 0.248668584157093
                    

ROUND ( numeric_expression [ ,integer_length] [ ,function ] )

Returns the numeric value rounded to the specified length or precision.

  • numeric_expression: The expression of a numeric data type.
  • length: The optional precision to round the numeric expression to. When this is ommitted, the default behavior will be to round to the nearest whole number.
  • function: The optional type of operation to perform. When the function parameter is omitted or has a value of 0 (default), numeric_expression is rounded. When a value other than 0 is specified, numeric_expression is truncated.

                      SELECT ROUND(1.3, 0);
                      -- Result: 1

                      SELECT ROUND(1.55, 1);
                      -- Result: 1.6

                      SELECT ROUND(1.7, 0, 0);
                      -- Result: 2

                      SELECT ROUND(1.7, 0, 1);
                      -- Result: 1
                      
                      SELECT ROUND (1.24);
                      -- Result: 1.0
                    

SIGN ( numeric_expression )

Returns the positive sign (1), 0, or negative sign (-1) of the specified expression.

  • numeric_expression: The expression of an indeterminate data type except for the bit data type.

                      SELECT SIGN(0);
                      -- Result: 0

                      SELECT SIGN(10);
                      -- Result: 1

                      SELECT SIGN(-10);
                      -- Result: -1
                    

SIN ( float_expression )

Returns the trigonometric sine of the angle in radians.

  • float_expression: The float expression specifying the angle in radians.

                     SELECT SIN(1);
                     -- Result: 0.841470984807897
                    

SQRT ( float_expression )

Returns the square root of the specified float value.

  • float_expression: The expression of type float.

                      SELECT SQRT(100);
                      -- Result: 10
                    

SQUARE ( float_expression )

Returns the square of the specified float value.

  • float_expression: The expression of type float.

                      SELECT SQUARE(10);
                      -- Result: 100

                      SELECT SQUARE(-10);
                      -- Result: 100
                    

TAN ( float_expression )

Returns the tangent of the input expression.

  • float_expression: The expression of type float.

                      SELECT TAN(1);
                      -- Result: 1.5574077246549
                    

TRUNC(decimal_number,precision)

Returns the supplied decimal number truncated to have the supplied decimal precision.

  • decimal_number: The decimal value to truncate.
  • precision: The number of decimal places to truncate the decimal number to.

				SELECT TRUNC(10.3423,2);
				-- Result: 10.34
				

CData Cloud

INSERT Statements

To create new records, use INSERT statements.

INSERT Syntax

The INSERT statement specifies the columns to be inserted and the new column values. You can specify the column values in a comma-separated list in the VALUES clause, as shown in the following example:

INSERT INTO <table_name> 
( <column_reference> [ , ... ] )
VALUES 
( { <expression> | NULL } [ , ... ] ) 
  

<expression> ::=
  | @ <parameter> 
  | ?
  | <literal>
The following is an example query:
INSERT INTO Projects (Name) VALUES ('John')

CData Cloud

UPDATE Statements

To modify existing records, use UPDATE statements.

Update Syntax

The UPDATE statement takes as input a comma-separated list of columns and new column values as name-value pairs in the SET clause, as shown in the following example:

UPDATE <table_name> SET { <column_reference> = <expression> } [ , ... ] WHERE { Id = <expression>  } [ { AND | OR } ... ] 

<expression> ::=
  | @ <parameter> 
  | ?
  | <literal>

The following is an example query:

UPDATE Projects SET Name='John' WHERE Id = @myId

CData Cloud

DELETE Statements

To delete information from a table, use DELETE statements.

DELETE Syntax

The DELETE statement requires the table name in the FROM clause and the row's primary key in the WHERE clause, as shown in the following example:

<delete_statement> ::= DELETE FROM <table_name> WHERE { Id = <expression> } [ { AND | OR } ... ]

<expression> ::=
  | @ <parameter> 
  | ?
  | <literal>

The following is an example query:

DELETE FROM Projects WHERE Id = @myId

CData Cloud

CACHE Statements

CData Cloud

EXECUTE Statements

To execute stored procedures, you can use EXECUTE or EXEC statements.

EXEC and EXECUTE assign stored procedure inputs, referenced by name, to values or parameter names.

Stored Procedure Syntax

To execute a stored procedure as an SQL statement, use the following syntax:

 
{ EXECUTE | EXEC } <stored_proc_name> 
{
  [ @ ] <input_name> = <expression>
} [ , ... ]

<expression> ::=
  | @ <parameter> 
  | ?
  | <literal>

Example Statements

Reference stored procedure inputs by name:

EXECUTE my_proc @second = 2, @first = 1, @third = 3;

Execute a parameterized stored procedure statement:

EXECUTE my_proc second = @p1, first = @p2, third = @p3; 

CData Cloud

PIVOT and UNPIVOT

PIVOT and UNPIVOT can be used to change a table-valued expression into another table.

PIVOT

PIVOT rotates a table-value expression by turning unique values from one column into multiple columns in the output. PIVOT can run aggregations where required on any column value.
PIVOT Synax

 
"SELECT 'AverageCost' AS Cost_Sorted_By_Production_Days, [0], [1], [2], [3], [4]
FROM
(
SELECT DaysToManufacture, StandardCost
FROM Production.Product
) AS SourceTable
PIVOT
(
AVG(StandardCost)
FOR DaysToManufacture IN ([0], [1], [2], [3], [4])
) AS PivotTable;"

UNPIVOT

UNPIVOT carries out nearly the opposite to PIVOT by rotating columns of a table-valued expressions into column values.
UNPIVOT Sytax

 
"SELECT VendorID, Employee, Orders
FROM
(SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
FROM pvt) p
UNPIVOT
(Orders FOR Employee IN
(Emp1, Emp2, Emp3, Emp4, Emp5)
)AS unpvt;"

For further information on PIVOT and UNPIVOT, see FROM clause plus JOIN, APPLY, PIVOT (Transact-SQL)

CData Cloud

INSERT INTO SELECT Statements

To perform multiple inserts in a single request to Microsoft Project, use the INSERT INTO SELECT syntax to insert a temporary table of data into Microsoft Project. This works by first populating a temporary table with the data you are going to submit to Microsoft Project. Once you have all of the data you want to insert, the temporary table is then passed into the table in Microsoft Project.

Populate the Temporary Table

The temporary table you are populating is dynamic and is created at run time the first time you insert to it. Temporary tables are denoted by a # appearing in their name. When using a temporary table to insert, the temporary table must be named in the format [TableName]#TEMP, where TableName is the name of the table you will be inserting to. For example:

INSERT INTO Projects#TEMP (Name, MyCustomField__c) VALUES ('New Projects', '9000');
INSERT INTO Projects#TEMP (Name, MyCustomField__c) VALUES ('New Projects 2', '9001');
INSERT INTO Projects#TEMP (Name, MyCustomField__c) VALUES ('New Projects 3', '9002');

This creates a temporary table called Projects#TEMP with two columns and three rows of data. Since type cannot be determined on the temporary table itself, all values are stored in memory as strings. They are later converted to the proper type when they are submitted to the Projects table.

Insert to the Actual Table

Once your temporary table is populated, it is now time to insert to the actual table in Microsoft Project. You can do this by performing an INSERT to the actual table and selecting the input data from the temporary table. For example:

INSERT INTO Projects (Name, MyCustomField__c) SELECT Name, MyCustomField__c FROM Projects#TEMP
In this example, the full contents of the Projects#TEMP table are passed into the Projects table. This results in fewer requests being submitted to Microsoft Project since multiple inserts may be submitted with each request, which is much better for performance if you have many records to insert.

Results

The results of the query are stored in the LastResultInfo#TEMP temporary table. This table is cleared and repopulated the next time data is modified by passing in a temporary table. Please be aware that the LastResultInfo#TEMP table has no predefined schema. You need to check its metadata at run time before reading data.

Temporary Table Life Span

Temporary tables only last as long as the connection remains open. When the connection to Microsoft Project is closed, all temporary tables are cleared, including the LastResultInfo#TEMP table.

CData Cloud

UPDATE SELECT Statements

To perform multiple updates in a single request to Microsoft Project,first use the INSERT INTO syntax to insert a temporary table of data into Microsoft Project. This works by first populating a temporary table with the data you are going to submit to Microsoft Project. Once you have all of the data you want to update, use UPDATE SELECT FROM to pass the temporary table data into the table in Microsoft Project.

Populate the Temporary Table

The temporary table you are populating is dynamic and is created at run time the first time you insert to it. Temporary tables are denoted by a # appearing in their name. When using a temporary table to update, the temporary table must be named in the format [TableName]#TEMP, where TableName is the name of the table you are inserting to. For example:

INSERT INTO Projects#TEMP (Id, Name, MyCustomField__c) VALUES ('AX1000001', 'New Projects', '9000');
INSERT INTO Projects#TEMP (Id, Name, MyCustomField__c) VALUES ('AX1000002', 'New Projects 2', '9001');
INSERT INTO Projects#TEMP (Id, Name, MyCustomField__c) VALUES ('AX1000003', 'New Projects 3', '9002');

This creates a temporary table called Projects#TEMP with three columns and three rows of data. Since type cannot be determined on the temporary table itself, all values are stored in memory as strings. The values are later converted to the proper type when they are submitted to the Projects table.

Update the Actual Table

Once your temporary table is populated, it is now time to update the actual table in Microsoft Project. You can do this by performing an UPDATE to the actual table and selecting the input data from the temporary table. For example:

UPDATE Projects (Id, Name, MyCustomField__c) SELECT Id, Name, MyCustomField__c FROM Projects#TEMP
In this example, the full contents of the Projects#TEMP table are passed into the Projects table. This results in fewer requests being submitted to Microsoft Project since multiple updates may be submitted with each request, which is much better for performance if you have many records to update.

Results

The results of the query are stored in the LastResultInfo#TEMP temporary table. This table is cleared and repopulated the next time data is modified by passing in a temporary table. Please be aware that the LastResultInfo#TEMP table has no predefined schema. You need to check its metadata at run time before reading data.

Temporary Table Life Span

Temporary tables only last as long as the connection remains open. When the connection to Microsoft Project is closed, all temporary tables are cleared, including the LastResultInfo#TEMP table.

CData Cloud

DELETE SELECT Statements

To perform multiple deletes in a single request to Microsoft Project, first use the INSERT INTO syntax to create an in-memory temporary table of data to be deleted. Once you have all of the data you want to delete added to temporary table, use DELETE FROM syntax to delete data from the live table in Microsoft Project. This functionality is also available via the standard Batch Processing API available in JDBC.

Populate the Temporary Table

The temporary table you are populating is dynamic and is created at run time the first time you insert to it. Temporary tables are denoted by a # appearing in their name. When using a temporary table to delete, the temporary table must be named in the format [TableName]#TEMP, where TableName is the name of the table you are inserting to. For example:

INSERT INTO Projects#TEMP (Id) VALUES ('AX1000001');
INSERT INTO Projects#TEMP (Id) VALUES ('AX1000002');
INSERT INTO Projects#TEMP (Id) VALUES ('AX1000003');

This creates a temporary table called Projects#TEMP with one column and three rows of data. Since type cannot be determined on the temporary table itself, all values are stored in memory as strings. They are later converted to the proper type when they are submitted to the Projects table.

Delete from the Actual Table

Once your temporary table is populated, it is now time to insert to the actual table in Microsoft Project. You can do this by performing a DELETE from the actual table and selecting the input data from the temporary table. For example:

DELETE FROM Projects WHERE EXISTS SELECT Id FROM Projects#TEMP

In this example, the full contents of the Projects#TEMP table are passed into the Projects table. This results in fewer requests being submitted to Microsoft Project since multiple deletes may be submitted with each request, which is much better for performance if you have many records to delete.

Results

The results of the query are stored in the LastResultInfo#TEMP temporary table. This table is cleared and repopulated the next time data is modified by passing in a temporary table. Please be aware that the LastResultInfo#TEMP table has no predefined schema. You need to check its metadata at run time before reading data.

Temporary Table Life Span

Temporary tables only last as long as the connection remains opened. When the connection to Microsoft Project is closed, all temporary tables are cleared, including the LastResultInfo#TEMP table.

CData Cloud

Data Model

Overview

The CData Cloud models Microsoft Project objects as relational tables and views. A Microsoft Project object has relationships to other objects; in the tables, these relationships are expressed through foreign keys.

Connecting with the ODataV2 Schema

The ODataV2 Data Model (default) can be used for full CRUD operations. Main columns metadata is dynamically retrieved for each entity, but the schema is fixed and custom fields are not included.

Tables and Views describe a sample the tables available in the ODataV2 API.

Connecting with the ODataV1 Schema

The ODataV1 Data Model can only be used for reading data. Metadata is dynamically retrieved, including the custom fields for this schema.

Views describe a sample the views available in the ODataV1 API.

Key Features

  • The Cloud models Microsoft Project entities as relational tables and views, allowing you to write SQL to query Microsoft Project data.
  • Stored procedures allow you to execute operations to Microsoft Project.
  • Live connectivity to these objects means any changes to your Microsoft Project account are immediately reflected when using the Cloud.

CData Cloud

ODataV2 Data Model

The ODataV2 schema implements the ProjectServer service endpoints, which has support for full CRUD operations.

Tables

Tables are retrieved dynamically from the authenticated Microsoft Project account.

Views

Read-only Views are retrieved dynamically from the authenticated Microsoft Project account.

Stored Procedures

Stored Procedures are function-like interfaces to Microsoft Project. Stored procedures allow you to execute operations to Microsoft Project.

ODataV2 advantages compared to ODataV1

  • Supports write operations (INSERT, UPDATE and DELETE) on the exposed tables.

ODataV2 limitations

  • In order to query some tables and views, such as Assignments, ProjectResources, TaskLinks and Tasks, the ProjectId must be specified either in the query's WHERE clause criteria or via the ProjectId connection property.
  • The custom fields are not exposed.

CData Cloud

Tables

The Cloud models the data in Microsoft Project into a list of tables that can be queried using standard SQL statements.

Generally, querying Microsoft Project tables is the same as querying a table in a relational database. Sometimes there are special cases, for example, including a certain column in the WHERE clause might be required to get data for certain columns in the table. This is typically needed for situations where a separate request must be made for each row to get certain columns. These types of situations are clearly documented at the top of the table page linked below.

CData Cloud - Microsoft Project Tables

Name Description
Assignments Retrieve and modify assignments.
Calendars Retrieve and modify calendars.
EnterpriseResources Retrieve and modify resources.
Phases Retrieve and modify project phases.
ProjectResources Retrieve and modify project resources.
Projects Retrieve and modify projects.
Stages Retrieve and modify project stages.
TaskLinks Retrieve and modify task links.
Tasks Retrieve and modify tasks.
TimeSheetLines Retrieve and modify timesheets.
TimeSheets Retrieve and modify timesheets.

CData Cloud

Assignments

Retrieve and modify assignments.

Table Specific Information

To query this table, the ProjectId must be specified either in the query's WHERE clause criteria or via the ProjectId connection property.

SELECT * FROM Assignments WHERE ProjectId = '99a38309-dc1d-eb11-bf8a-00155d9c6312'

Columns

Name Type ReadOnly References Required Description
Id [KEY] String True False

ActualCostWorkPerformed Double True False

ActualOvertimeCost Double True False

BaselineCost Double True False

BaselineCostPerUse Double True False

BaselineFinish Datetime True False

BaselineStart Datetime True False

BaselineWork String True False

BaselineWorkMilliseconds Int True False

BaselineWorkTimeSpan Time True False

BudgetedCostWorkPerformed Double True False

BudgetedCostWorkScheduled Double True False

CostVariance Double True False

CostVarianceAtCompletion Double True False

Created Datetime True False

CurrentCostVariance Double True False

Finish Datetime True False

FinishVariance String True False

FinishVarianceMilliseconds Int True False

FinishVarianceTimeSpan Time True False

IsConfirmed Bool True False

IsOverAllocated Bool True False

IsPublished Bool True False

IsResponsePending Bool True False

IsUpdateNeeded Bool True False

LevelingDelay String True False

LevelingDelayMilliseconds Int True False

LevelingDelayTimeSpan Time True False

Modified Datetime True False

Notes String True False

OvertimeCost Double True False

RemainingCost Double True False

RemainingOvertimeCost Double True False

Resume Datetime True False

ScheduleCostVariance Double True False

Start Datetime True False

StartVariance String True False

StartVarianceMilliseconds Int True False

StartVarianceTimeSpan Time True False

Stop Datetime True False

WorkContourType Int True False

WorkVariance String True False

WorkVarianceMilliseconds Int True False

WorkVarianceTimeSpan Time True False

LinkedCustomFields String False False

ActualCost Double False False

ActualFinish Datetime False False

ActualOvertimeWork String False False

ActualOvertimeWorkMilliseconds Int False False

ActualOvertimeWorkTimeSpan Time False False

ActualStart Datetime False False

ActualWork String False False

ActualWorkMilliseconds Int False False

ActualWorkTimeSpan Time False False

BudgetedCost Double False False

BudgetedWork String False False

BudgetedWorkMilliseconds Int False False

BudgetedWorkTimeSpan Time False False

Cost Double False False

CostRateTable Int False False

DefaultBookingType Int False False

Delay String False False

DelayMilliseconds Int False False

DelayTimeSpan Time False False

IsLockedByManager Bool False False

IsWorkResource Bool False False

OvertimeWork String False False

OvertimeWorkMilliseconds Int False False

OvertimeWorkTimeSpan Time False False

PercentWorkComplete Int False False

RegularWork String False False

RegularWorkMilliseconds Int False False

RegularWorkTimeSpan Time False False

RemainingOvertimeWork String False False

RemainingOvertimeWorkMilliseconds Int False False

RemainingOvertimeWorkTimeSpan Time False False

RemainingWork String False False

RemainingWorkMilliseconds Int False False

RemainingWorkTimeSpan Time False False

ResourceCapacity Double False False

ResourceId String False False

TaskId String False False

Work String False False

WorkMilliseconds Int False False

WorkTimeSpan Time False False

LinkedOwner String False False

LinkedParent String False False

LinkedResource String False False

LinkedTask String False False

ProjectId [KEY] String True False

Id of the parent.

CData Cloud

Calendars

Retrieve and modify calendars.

Columns

Name Type ReadOnly References Required Description
Id [KEY] String False False

Created Datetime False False

IsStandardCalendar Bool False False

Modified Datetime False False

Name String False False

OriginalId String False False

LinkedBaseCalendarExceptions String False False

CData Cloud

EnterpriseResources

Retrieve and modify resources.

Columns

Name Type ReadOnly References Required Description
Id [KEY] String False False

CanLevel Bool False False

Code String False False

CostAccrual Int False False

CostCenter String False False

Created Datetime False False

DefaultBookingType Int False False

Email String False False

ExternalId String False False

Group String False False

HireDate Datetime False False

HyperlinkName String False False

HyperlinkUrl String False False

Initials String False False

IsActive Bool False False

IsBudget Bool False False

IsCheckedOut Bool False False

IsGeneric Bool False False

IsTeam Bool False False

MaterialLabel String False False

Modified Datetime False False

Name String False False

Phonetics String False False

RequiresEngagements Bool False False

ResourceIdentifier Int False False

ResourceType Int False False

TerminationDate Datetime False False

LinkedAssignments String False False

LinkedBaseCalendar String False False

LinkedCostRateTables String False False

LinkedCustomFields String False False

LinkedDefaultAssignmentOwner String False False

LinkedEngagements String False False

LinkedResourceCalendarExceptions String False False

LinkedSelf String False False

LinkedTimesheetManager String False False

LinkedUser String False False

LinkedUserPermissions String False False

CData Cloud

Phases

Retrieve and modify project phases.

Columns

Name Type ReadOnly References Required Description
Id [KEY] String False False

Description String False False

Name String False False

LinkedStages String False False

CData Cloud

ProjectResources

Retrieve and modify project resources.

Table Specific Information

To query this table, the ProjectId must be specified either in the query's WHERE clause criteria or via the ProjectId connection property.

SELECT * FROM ProjectResources WHERE ProjectId = '99a38309-dc1d-eb11-bf8a-00155d9c6312'

Columns

Name Type ReadOnly References Required Description
Id [KEY] String True False

ActualCost Double True False

ActualCostWorkPerformed String True False

ActualCostWorkPerformedMilliseconds Int True False

ActualCostWorkPerformedTimeSpan Time True False

ActualOvertimeCost Double True False

ActualOvertimeWork String True False

ActualOvertimeWorkMilliseconds Int True False

ActualOvertimeWorkTimeSpan Time True False

ActualWork String True False

ActualWorkMilliseconds Int True False

ActualWorkTimeSpan Time True False

AvailableFrom Datetime True False

AvailableTo Datetime True False

BaselineCost Double True False

BaselineWork String True False

BaselineWorkMilliseconds Int True False

BaselineWorkTimeSpan Time True False

BudetCostWorkPerformed Double True False

BudgetedCost Double True False

BudgetedCostWorkScheduled Double True False

BudgetedWork String True False

BudgetedWorkMilliseconds Int True False

BudgetedWorkTimeSpan Time True False

Cost Double True False

CostVariance Double True False

CostVarianceAtCompletion Double True False

Created Datetime True False

CurrentCostVariance Double True False

Finish Datetime True False

IsBudgeted Bool True False

IsGenericResource Bool True False

IsOverAllocated Bool True False

Modified Datetime True False

Notes String True False

OvertimeCost Double True False

OvertimeWork String True False

OvertimeWorkMilliseconds Int True False

OvertimeWorkTimeSpan Time True False

PeakWork String True False

PeakWorkMilliseconds Int True False

PeakWorkTimeSpan Time True False

PercentWorkComplete Int True False

RegularWork String True False

RegularWorkMilliseconds Int True False

RegularWorkTimeSpan Time True False

RemainingCost Double True False

RemainingOvertimeCost Double True False

RemainingOvertimeWork String True False

RemainingOvertimeWorkMilliseconds Int True False

RemainingOvertimeWorkTimeSpan Time True False

RemainingWork String True False

RemainingWorkMilliseconds Int True False

RemainingWorkTimeSpan Time True False

ScheduleCostVariance Double True False

Start Datetime True False

Work String True False

WorkMilliseconds Int True False

WorkTimeSpan Time True False

WorkVariance String True False

WorkVarianceMilliseconds Int True False

WorkVarianceTimeSpan Time True False

LinkedCustomFields String False False

LinkedEnterpriseResource String False False

CanLevel Bool False False

Code String False False

CostAccrual Int False False

CostCenter String False False

CostPerUse Double False False

DefaultBookingType Int False False

Email String False False

Group String False False

Initials String False False

MaterialLabel String False False

MaximumCapacity Double False False

Name String False False

OvertimeRate Double False False

OvertimeRateUnits Int False False

Phonetics String False False

StandardRate Double False False

StandardRateUnits Int False False

LinkedAssignments String False False

LinkedDefaultAssignmentOwner String False False

ProjectId [KEY] String True False

Id of the parent.

CData Cloud

Projects

Retrieve and modify projects.

Columns

Name Type ReadOnly References Required Description
Id [KEY] String True False

ApprovedEnd Datetime True False

ApprovedStart Datetime True False

CalculateActualCosts Bool True False

CalculatesActualCosts Bool True False

CheckedOutDate Datetime True False

CheckOutDescription String True False

CheckOutId String True False

CreatedDate Datetime True False

CriticalSlackLimit Int True False

DefaultFinishTime Datetime True False

DefaultOvertimeRateUnits Int True False

DefaultStandardRateUnits Int True False

DefaultStartTime Datetime True False

HasMppPendingImport Bool True False

HonorConstraints Bool True False

IsCheckedOut Bool True False

LastPublishedDate Datetime True False

LastSavedDate Datetime True False

ListId String True False

MoveActualIfLater Bool True False

MoveActualToStatus Bool True False

MoveRemainingIfEarlier Bool True False

MoveRemainingToStatus Bool True False

MultipleCriticalPaths Bool True False

OptimizerDecision Int True False

PercentComplete Int True False

PlannerDecision Int True False

ProjectSiteUrl String True False

ProjectType Int True False

SplitInProgress Bool True False

SpreadActualCostsToStatus Bool True False

SpreadPercentCompleteToStatus Bool True False

SummaryTaskId String True False

TaskListId String True False

WebId String True False

LinkedCheckedOutBy String False False

LinkedCustomFields String False False

LinkedEngagements String False False

LinkedEnterpriseProjectType String False False

LinkedPhase String False False

LinkedProjectSummaryTask String False False

LinkedQueueJobs String False False

LinkedStage String False False

LinkedUserPermissions String False False

CurrencyCode String False False

CurrencyDigits Int False False

CurrencyPosition Int False False

CurrencySymbol String False False

CurrentDate Datetime False False

DaysPerMonth Int False False

DefaultEffortDriven Bool False False

DefaultEstimatedDuration Bool False False

DefaultFixedCostAccrual Int False False

DefaultOvertimeRate Double False False

DefaultStandardRate Double False False

DefaultTaskType Int False False

DefaultWorkFormat Int False False

Description String False False

FinishDate Datetime False False

FiscalYearStartMonth Int False False

MinutesPerDay Int False False

MinutesPerWeek Int False False

Name String False False

NewTasksAreManual Bool False False

NumberFiscalYearFromStart Bool False False

OwnerId String False False

ProjectIdentifier String False False

ProtectedActualsSynch Bool False False

ScheduledFromStart Bool False False

ShowEstimatedDurations Bool False False

StartDate Datetime False False

StatusDate Datetime False False

TrackingMode Int False False

UtilizationDate Datetime False False

UtilizationType Int False False

WeekStartDay Int False False

WinprojVersion Decimal False False

LinkedAssignments String False False

LinkedCalendar String False False

LinkedIncludeCustomFields String False False

LinkedOwner String False False

LinkedProjectResources String False False

LinkedTaskLinks String False False

LinkedTasks String False False

CData Cloud

Stages

Retrieve and modify project stages.

Columns

Name Type ReadOnly References Required Description
Id [KEY] String False False

Behavior Int False False

CheckInRequired Bool False False

Description String False False

Name String False False

SubmitDescription String False False

LinkedCustomFields String False False

LinkedPhase String False False

LinkedProjectDetailPages String False False

LinkedWorkflowStatusPage String False False

CData Cloud

TaskLinks

Retrieve and modify task links.

Table Specific Information

To query this table, the ProjectId must be specified either in the query's WHERE clause criteria or via the ProjectId connection property.

SELECT * FROM TaskLinks WHERE ProjectId = '99a38309-dc1d-eb11-bf8a-00155d9c6312'

Columns

Name Type ReadOnly References Required Description
Id [KEY] String True False

DependencyType Int False False

EndId String False False

LinkLagDuration String False False

StartId String False False

LinkedEnd String False False

LinkedStart String False False

ProjectId [KEY] String True False

Id of the parent.

CData Cloud

Tasks

Retrieve and modify tasks.

Table Specific Information

To query this table, the ProjectId must be specified either in the query's WHERE clause criteria or via the ProjectId connection property.

SELECT * FROM Tasks WHERE ProjectId = '99a38309-dc1d-eb11-bf8a-00155d9c6312'

Columns

Name Type ReadOnly References Required Description
Id [KEY] String True False

ActualCostWorkPerformed Double True False

ActualDuration String True False

ActualDurationMilliseconds Int True False

ActualDurationTimeSpan Time True False

ActualOvertimeCost Double True False

ActualOvertimeWork String True False

ActualOvertimeWorkMilliseconds Int True False

ActualOvertimeWorkTimeSpan Time True False

BaselineCost Double True False

BaselineDuration String True False

BaselineDurationMilliseconds Int True False

BaselineDurationTimeSpan Time True False

BaselineFinish Datetime True False

BaselineStart Datetime True False

BaselineWork String True False

BaselineWorkMilliseconds Int True False

BaselineWorkTimeSpan Time True False

BudgetCost Double True False

BudgetedCostWorkPerformed Double True False

BudgetedCostWorkScheduled Double True False

Contact String True False

CostPerformanceIndex Double True False

CostVariance Double True False

CostVarianceAtCompletion Double True False

CostVariancePercentage Int True False

Created Datetime True False

CurrentCostVariance Double True False

DurationVariance String True False

DurationVarianceMilliseconds Int True False

DurationVarianceTimeSpan Time True False

EarliestFinish Datetime True False

EarliestStart Datetime True False

EstimateAtCompletion Double True False

ExternalProjectUid String True False

ExternalTaskUid String True False

FinishSlack String True False

FinishSlackMilliseconds Int True False

FinishSlackTimeSpan Time True False

FinishVariance String True False

FinishVarianceMilliseconds Int True False

FinishVarianceTimeSpan Time True False

FixedCostAccrual Int True False

FreeSlack String True False

FreeSlackMilliseconds Int True False

FreeSlackTimeSpan Time True False

IgnoreResourceCalendar Bool True False

IsCritical Bool True False

IsDurationEstimate Bool True False

IsExternalTask Bool True False

IsOverAllocated Bool True False

IsRecurring Bool True False

IsRecurringSummary Bool True False

IsRolledUp Bool True False

IsSubProject Bool True False

IsSubProjectReadOnly Bool True False

IsSubProjectScheduledFromFinish Bool True False

IsSummary Bool True False

LatestFinish Datetime True False

LatestStart Datetime True False

LevelingDelay String True False

LevelingDelayMilliseconds Int True False

LevelingDelayTimeSpan Time True False

Modified Datetime True False

Notes String True False

OutlinePosition String True False

OvertimeCost Double True False

OvertimeWork String True False

OvertimeWorkMilliseconds Int True False

OvertimeWorkTimeSpan Time True False

PercentWorkComplete Int True False

PreLevelingFinish Datetime True False

PreLevelingStart Datetime True False

RegularWork String True False

RegularWorkMilliseconds Int True False

RegularWorkTimeSpan Time True False

RemainingCost Double True False

RemainingOvertimeCost Double True False

RemainingOvertimeWork String True False

RemainingOvertimeWorkMilliseconds Int True False

RemainingOvertimeWorkTimeSpan Time True False

RemainingWork String True False

RemainingWorkMilliseconds Int True False

RemainingWorkTimeSpan Time True False

Resume Datetime True False

ScheduleCostVariance Double True False

ScheduledDuration String True False

ScheduledDurationMilliseconds Int True False

ScheduledDurationTimeSpan Time True False

ScheduledFinish Datetime True False

ScheduledStart Datetime True False

SchedulePerformanceIndex Double True False

ScheduleVariancePercentage Int True False

StartSlack String True False

StartSlackMilliseconds Int True False

StartSlackTimeSpan Time True False

StartVariance String True False

StartVarianceMilliseconds Int True False

StartVarianceTimeSpan Time True False

Stop Datetime True False

ToCompletePerformanceIndex Double True False

TotalSlack String True False

TotalSlackMilliseconds Int True False

TotalSlackTimeSpan Time True False

WorkBreakdownStructure String True False

WorkVariance String True False

WorkVarianceMilliseconds Int True False

WorkVarianceTimeSpan Time True False

LinkedCustomFields String False False

LinkedSubProject String False False

ActualCost Double False False

ActualFinish Datetime False False

ActualStart Datetime False False

ActualWork String False False

ActualWorkMilliseconds Int False False

ActualWorkTimeSpan Time False False

AddAfterId String False False

BudgetWork String False False

BudgetWorkMilliseconds Int False False

BudgetWorkTimeSpan Time False False

Completion Datetime False False

ConstraintStartEnd Datetime False False

ConstraintType Int False False

Cost Double False False

Deadline Datetime False False

Duration String False False

DurationMilliseconds Int False False

DurationTimeSpan Time False False

Finish Datetime False False

FinishText String False False

FixedCost Double False False

IsActive Bool False False

IsEffortDriven Bool False False

IsLockedByManager Bool False False

IsManual Bool False False

IsMarked Bool False False

IsMilestone Bool False False

LevelingAdjustsAssignments Bool False False

LevelingCanSplit Bool False False

Name String False False

OutlineLevel Int False False

ParentId String False False

PercentComplete Int False False

PercentPhysicalWorkComplete Int False False

Priority Int False False

RemainingDuration String False False

RemainingDurationMilliseconds Int False False

RemainingDurationTimeSpan Time False False

Start Datetime False False

StartText String False False

TaskType Int False False

UsePercentPhysicalWorkComplete Bool False False

Work String False False

WorkMilliseconds Int False False

WorkTimeSpan Time False False

LinkedAssignments String False False

LinkedCalendar String False False

LinkedParent String False False

LinkedPredecessors String False False

LinkedStatusManager String False False

LinkedSuccessors String False False

ProjectId [KEY] String True False

Id of the parent.

CData Cloud

TimeSheetLines

Retrieve and modify timesheets.

Columns

Name Type ReadOnly References Required Description
Id [KEY] String False False

Comment String False False

LineClass Int False False

ProjectName String False False

Status Int False False

TaskName String False False

TotalWork String False False

TotalWorkMilliseconds Int False False

TotalWorkTimeSpan Time False False

ValidationType Int False False

LinkedAssignment String False False

LinkedTimeSheet String False False

LinkedWork String False False

PeriodId [KEY] String True False

Id of the parent.

CData Cloud

TimeSheets

Retrieve and modify timesheets.

Columns

Name Type ReadOnly References Required Description
PeriodId [KEY] String False False

Comments String False False

EntryMode Int False False

IsControlledByOwner Bool False False

IsProcessed Bool False False

Name String False False

Status Int False False

TotalActualWork String False False

TotalActualWorkMilliseconds Int False False

TotalActualWorkTimeSpan Time False False

TotalNonBillableOvertimeWork String False False

TotalNonBillableOvertimeWorkMilliseconds Int False False

TotalNonBillableOvertimeWorkTimeSpan Time False False

TotalNonBillableWork String False False

TotalNonBillableWorkMilliseconds Int False False

TotalNonBillableWorkTimeSpan Time False False

TotalOvertimeWork String False False

TotalOvertimeWorkMilliseconds Int False False

TotalOvertimeWorkTimeSpan Time False False

TotalWork String False False

TotalWorkMilliseconds Int False False

TotalWorkTimeSpan Time False False

WeekStartsOn Int False False

LinkedCreator String False False

LinkedLines String False False

LinkedManager String False False

LinkedPeriod String False False

CData Cloud

Views

Views are composed of columns and pseudo columns. Views are similar to tables in the way that data is represented; however, views do not support updates. Entities that are represented as views are typically read-only entities. Often, a stored procedure is available to update the data if such functionality is applicable to the data source.

Queries can be executed against a view as if it were a normal table, and the data that comes back is similar in that regard.

Dynamic views, such as queries exposed as views, and views for looking up specific combinations of project_team work items are supported.

CData Cloud - Microsoft Project Views

Name Description
Assignment_Resource Retrieve and modify assignments.
Assignment_Task Retrieve and modify assignments.
Events Retrieve events.
ProjectDetailPages Retrieve project details.
StageDetailPages Retrieve project details..
Tasks_Assignments Retrieve and modify assignments.
Tasks_Calendar Retrieve and modify assignments.
TimeSheetPeriods Retrieve timesheet periods.

CData Cloud

Assignment_Resource

Retrieve and modify assignments.

Columns

Name Type References Description
Id [KEY] String The Id of the table.
Name String The name of the association.
ProjectId String The project Id.
AssignmentId String The assignment Id.

CData Cloud

Assignment_Task

Retrieve and modify assignments.

Columns

Name Type References Description
Id [KEY] String The Id of the table.
Name String The name of the association.
ProjectId String The project Id.
AssignmentId String The assignment Id.

CData Cloud

Events

Retrieve events.

Columns

Name Type References Description
Id [KEY] Int
EventName String
SourceName String

CData Cloud

ProjectDetailPages

Retrieve project details.

Columns

Name Type References Description
Id [KEY] String
Name String
PageType Int
LinkedItem String

CData Cloud

StageDetailPages

Retrieve project details..

Columns

Name Type References Description
Id [KEY] String
Name String
PageType Int
LinkedItem String
StageId [KEY] String Id of the parent.

CData Cloud

Tasks_Assignments

Retrieve and modify assignments.

Columns

Name Type References Description
Id [KEY] String The Id of the table.
ProjectId String The project Id.
TaskId String The task Id.

CData Cloud

Tasks_Calendar

Retrieve and modify assignments.

Columns

Name Type References Description
Id [KEY] String The Id of the table.
Name String The name of the association.
ProjectId String The project Id.
TaskId String The task Id.

CData Cloud

TimeSheetPeriods

Retrieve timesheet periods.

Columns

Name Type References Description
Id [KEY] String
End Datetime
Name String
Start Datetime
LinkedTimeSheet String

CData Cloud

Stored Procedures

Stored procedures are function-like interfaces that extend the functionality of the Cloud beyond simple SELECT/INSERT/UPDATE/DELETE operations with Microsoft Project.

Stored procedures accept a list of parameters, perform their intended function, and then return, if applicable, any relevant response data from Microsoft Project, along with an indication of whether the procedure succeeded or failed.

CData Cloud - Microsoft Project Stored Procedures

Name Description
CheckIn Check in the specified project.
CheckOut Check out the specified project.
GetOnlineCookies Retrieves the cookies for authentication with SharePoint Online.
Publish Publish the specified project.
Search Searches OData using the given URL.

CData Cloud

CheckIn

Check in the specified project.

Input

Name Type Description
ProjectId String The Id of the project you are checking in.
Force String Set to true to force check in. Default is false.

Result Set Columns

Name Type Description
Success String The result of the operation.

CData Cloud

CheckOut

Check out the specified project.

Input

Name Type Description
ProjectId String The Id of the project you are checking out.

Result Set Columns

Name Type Description
Success String The result of the operation.

CData Cloud

GetOAuthAccessToken

Gets an authentication token from Microsoft Project.

Input

Name Type Description
Scope String A comma-separated list of permissions to request from the user. Please check the Microsoft Project API for a list of available permissions.
CallbackUrl String The URL the user will be redirected to after authorizing your application. This value must match the Redirect URL you have specified in the Microsoft Project app settings. Only needed when the Authmode parameter is Web.
Verifier String The verifier returned from Microsoft Project after the user has authorized your app to have access to their data. This value will be returned as a parameter to the callback URL.
State String Indicates any state which may be useful to your application upon receipt of the response. Your application receives the same value it sent, as this parameter makes a round-trip to the Microsoft Project authorization server and back. Uses include redirecting the user to the correct resource in your site, nonces, and cross-site-request-forgery mitigations.

Result Set Columns

Name Type Description
OAuthAccessToken String The access token used for communication with Microsoft Project.
OAuthRefreshToken String The OAuth refresh token. This is the same as the access token in the case of Microsoft Project.
ExpiresIn String The remaining lifetime on the access token. A -1 denotes that it will not expire.

CData Cloud

GetOAuthAuthorizationURL

Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps. You will request the OAuthAccessToken from this URL.

Input

Name Type Description
CallbackUrl String The URL the user will be redirected to after authorizing your application. This value must match the Redirect URL in the Microsoft Project app settings.
Scope String A comma-separated list of scopes to request from the user. Please check the Microsoft Project API documentation for a list of available permissions.
State String Indicates any state which may be useful to your application upon receipt of the response. Your application receives the same value it sent, as this parameter makes a round-trip to the Microsoft Project authorization server and back. Uses include redirecting the user to the correct resource in your site, nonces, and cross-site-request-forgery mitigations.

Result Set Columns

Name Type Description
URL String The authorization URL, entered into a Web browser to obtain the verifier token and authorize your app.

CData Cloud

GetOnlineCookies

Retrieves the cookies for authentication with SharePoint Online.

Input

Name Type Description
User String Your SharePoint Online username.
Password String Your SharePoint Online password.
STSURL String Your SharePoint Online STSURL. This only needs to be set if your organization uses a local ADFS server for authentication.

Result Set Columns

Name Type Description
Cookie String The cookies that will need to be entered in the AuthCookie connection string property.

CData Cloud

Publish

Publish the specified project.

Input

Name Type Description
ProjectId String The Id of the project you are publishing.
CheckIn String Set to true to publish the proejct. Default value is false.

Result Set Columns

Name Type Description
Success String The result of the operation.

CData Cloud

RefreshOAuthAccessToken

Refreshes the OAuth access token used for authentication with Microsoft Project.

Input

Name Type Description
OAuthRefreshToken String Set this to the token value that expired.

Result Set Columns

Name Type Description
OAuthAccessToken String The authentication token returned from Microsoft Project. This can be used in subsequent calls to other operations for this particular service.
OAuthRefreshToken String This is the same as the access token.
ExpiresIn String The remaining lifetime on the access token.

CData Cloud

Search

Searches OData using the given URL.

Input

Name Type Description
Url String Full URL to use while searching OData.

Result Set Columns

Name Type Description
* String Output will vary for each entity.

CData Cloud

ODataV1 Data Model

The ODataV1 schema implement the ProjectData service endpoints, which is read-only and can only be used for reporting.

Views

Read-only Views are retrieved dynamically from the authenticated Microsoft Project account.

Stored Procedures

Stored Procedures are function-like interfaces to Microsoft Project. Stored procedures allow you to execute operations to Microsoft Project.

ODataV1 advantages compared to ODataV2

  • The custom fields are exposed as view columns.
  • The ProjectId is not required to query any of the exposed views, since the ProjectData endpoints return data for all the available projects.

ODataV1 limitations

  • No write operation is supported as this schema is read-only.

CData Cloud

Views

Views are composed of columns and pseudo columns. Views are similar to tables in the way that data is represented; however, views do not support updates. Entities that are represented as views are typically read-only entities. Often, a stored procedure is available to update the data if such functionality is applicable to the data source.

Queries can be executed against a view as if it were a normal table, and the data that comes back is similar in that regard.

Dynamic views, such as queries exposed as views, and views for looking up specific combinations of project_team work items are supported.

CData Cloud - Microsoft Project Views

Name Description
AssignmentBaselines Retrieve assignment baselines.
AssignmentBaselineTimephasedDataSet Retrieve assignment baseline timephased dataset.
Assignments Retrieve assignments.
AssignmentTimephasedDataSet Retrieve assignment timephased dataset.
BusinessDriverDepartments Retrieve business driver departments.
BusinessDrivers Retrieve business drivers.
CostConstraintScenarios Retrieve cost constraint scenarios.
CostScenarioProjects Retrieve cost scenario projects.
Deliverables Retrieve deliverables.
Engagements Retrieve engagements.
EngagementsComments Retrieve engagements comments.
EngagementsTimephasedDataSet Retrieve engagements timephased dataset.
FiscalPeriods Retrieve fiscal periods.
Issues Retrieve issues.
IssueTaskAssociations Retrieve issue-task associations.
PortfolioAnalyses Retrieve portfolio analyses.
PortfolioAnalysisProjects Retrieve portfolio analysis projects.
PrioritizationDriverRelations Retrieve prioritization driver relations.
PrioritizationDrivers Retrieve prioritization drivers.
Prioritizations Retrieve prioritizations.
ProjectBaselines Retrieve project baselines.
Projects Retrieve projects.
ProjectWorkflowStageDataSet Retrieve project workflow stage dataset.
ResourceConstraintScenarios Retrieve resource constraint scenarios.
ResourceDemandTimephasedDataSet Retrieve resource demand timephased dataset.
Resources Retrieve resources.
ResourceScenarioProjects Retrieve resource scenario projects.
ResourceTimephasedDataSet Retrieve resource timephased dataset.
Risks Retrieve risks.
RiskTaskAssociations Retrieve risk task associations.
TaskBaselines Retrieve task baselines.
TaskBaselineTimephasedDataSet Retrieve task baseline timephased dataset.
Tasks Retrieve tasks.
TaskTimephasedDataSet Retrieve task timephased dataset.
TimeSet Retrieve timeset.
TimesheetClasses Retrieve timesheet classes.
TimesheetLineActualDataSet Retrieve timesheet line actual dataset.
TimesheetLines Retrieve timesheet lines.
TimesheetPeriods Retrieve timesheet periods.
Timesheets Retrieve timesheets.

CData Cloud

AssignmentBaselines

Retrieve assignment baselines.

Columns

Name Type References Description
AssignmentId [KEY] String
BaselineNumber [KEY] Int
ProjectId [KEY] String
AssignmentBaselineBudgetCost Decimal
AssignmentBaselineBudgetMaterialWork Decimal
AssignmentBaselineBudgetWork Decimal
AssignmentBaselineCost Decimal
AssignmentBaselineFinishDate Datetime
AssignmentBaselineMaterialWork Decimal
AssignmentBaselineModifiedDate Datetime
AssignmentBaselineStartDate Datetime
AssignmentBaselineWork Decimal
AssignmentType Int
ProjectName String
TaskId String
TaskName String
LinkedAssignment String
LinkedAssignmentBaselineTimephasedDataSet String
LinkedProject String
LinkedTask String

CData Cloud

AssignmentBaselineTimephasedDataSet

Retrieve assignment baseline timephased dataset.

Columns

Name Type References Description
AssignmentId [KEY] String
BaselineNumber [KEY] Int
ProjectId [KEY] String
TimeByDay [KEY] Datetime
AssignmentBaselineBudgetCost Decimal
AssignmentBaselineBudgetMaterialWork Decimal
AssignmentBaselineBudgetWork Decimal
AssignmentBaselineCost Decimal
AssignmentBaselineMaterialWork Decimal
AssignmentBaselineModifiedDate Datetime
AssignmentBaselineWork Decimal
FiscalPeriodId String
ProjectName String
ResourceId String
TaskId String
TaskName String
LinkedAssignment String
LinkedBaseline String
LinkedProject String
LinkedTasks String
LinkedTime String

CData Cloud

Assignments

Retrieve assignments.

Columns

Name Type References Description
AssignmentId [KEY] String
ProjectId [KEY] String
AssignmentActualCost Decimal
AssignmentActualFinishDate Datetime
AssignmentActualOvertimeCost Decimal
AssignmentActualOvertimeWork Decimal
AssignmentActualRegularCost Decimal
AssignmentActualRegularWork Decimal
AssignmentActualStartDate Datetime
AssignmentActualWork Decimal
AssignmentACWP Decimal
AssignmentAllUpdatesApplied Bool
AssignmentBCWP Decimal
AssignmentBCWS Decimal
AssignmentBookingDescription String
AssignmentBookingId Int
AssignmentBookingName String
AssignmentBudgetCost Decimal
AssignmentBudgetMaterialWork Decimal
AssignmentBudgetWork Decimal
AssignmentCost Decimal
AssignmentCostVariance Decimal
AssignmentCreatedDate Datetime
AssignmentCreatedRevisionCounter Int
AssignmentCV Decimal
AssignmentDelay Decimal
AssignmentFinishDate Datetime
AssignmentFinishVariance Decimal
AssignmentIsOverallocated Bool
AssignmentIsPublished Bool
AssignmentMaterialActualWork Decimal
AssignmentMaterialWork Decimal
AssignmentModifiedDate Datetime
AssignmentModifiedRevisionCounter Int
AssignmentOvertimeCost Decimal
AssignmentOvertimeWork Decimal
AssignmentPeakUnits Decimal
AssignmentPercentWorkCompleted Int
AssignmentRegularCost Decimal
AssignmentRegularWork Decimal
AssignmentRemainingCost Decimal
AssignmentRemainingOvertimeCost Decimal
AssignmentRemainingOvertimeWork Decimal
AssignmentRemainingRegularCost Decimal
AssignmentRemainingRegularWork Decimal
AssignmentRemainingWork Decimal
AssignmentResourcePlanWork Decimal
AssignmentResourceType Int
AssignmentStartDate Datetime
AssignmentStartVariance Decimal
AssignmentSV Decimal
AssignmentType Int
AssignmentUpdatesAppliedDate Datetime
AssignmentVAC Decimal
AssignmentWork Decimal
AssignmentWorkVariance Decimal
CostType_R String
FlagStatus_T Bool
Health_T String
IsPublic Bool
ProjectName String
RBS_R String
ResourceId String
ResourceName String
TaskId String
TaskIsActive Bool
TaskName String
TimesheetClassId String
TypeDescription String
TypeName String
LinkedBaseline String
LinkedProject String
LinkedResource String
LinkedTask String
LinkedTimephasedData String

CData Cloud

AssignmentTimephasedDataSet

Retrieve assignment timephased dataset.

Columns

Name Type References Description
AssignmentId [KEY] String
ProjectId [KEY] String
TimeByDay [KEY] Datetime
AssignmentActualCost Decimal
AssignmentActualOvertimeCost Decimal
AssignmentActualOvertimeWork Decimal
AssignmentActualRegularCost Decimal
AssignmentActualRegularWork Decimal
AssignmentActualWork Decimal
AssignmentBudgetCost Decimal
AssignmentBudgetMaterialWork Decimal
AssignmentBudgetWork Decimal
AssignmentCombinedWork Decimal
AssignmentCost Decimal
AssignmentMaterialActualWork Decimal
AssignmentMaterialWork Decimal
AssignmentModifiedDate Datetime
AssignmentOvertimeCost Decimal
AssignmentOvertimeWork Decimal
AssignmentRegularCost Decimal
AssignmentRegularWork Decimal
AssignmentRemainingCost Decimal
AssignmentRemainingOvertimeCost Decimal
AssignmentRemainingOvertimeWork Decimal
AssignmentRemainingRegularCost Decimal
AssignmentRemainingRegularWork Decimal
AssignmentRemainingWork Decimal
AssignmentResourcePlanWork Decimal
AssignmentWork Decimal
FiscalPeriodId String
ProjectName String
ResourceId String
TaskId String
TaskIsActive Bool
TaskName String
LinkedAssignment String
LinkedProject String
LinkedTask String
LinkedTime String

CData Cloud

BusinessDriverDepartments

Retrieve business driver departments.

Columns

Name Type References Description
BusinessDriverId [KEY] String
DepartmentId [KEY] String
BusinessDriverName String
DepartmentName String
LinkedBusinessDriver String

CData Cloud

BusinessDrivers

Retrieve business drivers.

Columns

Name Type References Description
BusinessDriverId [KEY] String
BusinessDriverCreatedDate Datetime
BusinessDriverDescription String
BusinessDriverIsActive Bool
BusinessDriverModifiedDate Datetime
BusinessDriverName String
CreatedByResourceId String
CreatedByResourceName String
ImpactDescriptionExtreme String
ImpactDescriptionLow String
ImpactDescriptionModerate String
ImpactDescriptionNone String
ImpactDescriptionStrong String
ModifiedByResourceId String
ModifiedByResourceName String
LinkedCreatedByResource String
LinkedDepartments String
LinkedModifiedByResource String

CData Cloud

CostConstraintScenarios

Retrieve cost constraint scenarios.

Columns

Name Type References Description
ScenarioId [KEY] String
AnalysisId String
AnalysisName String
CreatedByResourceId String
CreatedByResourceName String
CreatedDate Datetime
ModifiedByResourceId String
ModifiedByResourceName String
ModifiedDate Datetime
ScenarioDescription String
ScenarioName String
SelectedProjectsCost Decimal
SelectedProjectsPriority Double
UnselectedProjectsCost Decimal
UnselectedProjectsPriority Double
UseDependencies Bool
LinkedAnalysis String
LinkedCostScenarioProjects String
LinkedCreatedByResource String
LinkedModifiedByResource String
LinkedResourceConstraintScenarios String

CData Cloud

CostScenarioProjects

Retrieve cost scenario projects.

Columns

Name Type References Description
ProjectId [KEY] String
ScenarioId [KEY] String
AbsolutePriority Double
AnalysisId String
AnalysisName String
ForceAliasLookupTableId String
ForceAliasLookupTableName String
ForceStatus Int
HardConstraintValue Decimal
Priority Double
ProjectName String
ScenarioName String
Status Int
LinkedAnalysis String
LinkedCostConstraintScenario String
LinkedProject String

CData Cloud

Deliverables

Retrieve deliverables.

Columns

Name Type References Description
DeliverableId [KEY] String
ProjectId [KEY] String
CreateByResource String
CreatedDate Datetime
Description String
FinishDate Datetime
IsFolder Bool
ItemRelativeUrlPath String
ModifiedByResource String
ModifiedDate Datetime
ProjectName String
StartDate Datetime
Title String
LinkedDependentProjects String
LinkedDependentTasks String
LinkedParentProjects String
LinkedParentTasks String
LinkedProject String

CData Cloud

Engagements

Retrieve engagements.

Columns

Name Type References Description
EngagementId [KEY] String
CommittedFinishDate Datetime
CommittedMaxUnits Decimal
CommittedStartDate Datetime
CommittedWork Decimal
EngagementCreatedDate Datetime
EngagementModifiedDate Datetime
EngagementName String
EngagementReviewedDate Datetime
EngagementStatus Int
EngagementSubmittedDate Datetime
ModifiedByResourceId String
ModifiedByResourceName String
ProjectId String
ProjectName String
ProposedFinishDate Datetime
ProposedMaxUnits Decimal
ProposedStartDate Datetime
ProposedWork Decimal
ResourceId String
ResourceName String
ReviewedByResourceId String
ReviewedByResourceName String
SubmittedByResourceId String
SubmittedByResourceName String
LinkedComment String
LinkedTimephasedInfo String

CData Cloud

EngagementsComments

Retrieve engagements comments.

Columns

Name Type References Description
CommentId [KEY] String
AuthorId String
AuthorName String
CommentCreatedDate Datetime
CommentMessage String
EngagementId String
EngagementName String
LinkedEngagement String

CData Cloud

EngagementsTimephasedDataSet

Retrieve engagements timephased dataset.

Columns

Name Type References Description
EngagementId [KEY] String
TimeByDay [KEY] Datetime
CommittedMaxUnits Decimal
CommittedWork Decimal
EngagementModifiedDate Datetime
EngagementName String
ProjectId String
ProjectName String
ProposedMaxUnits Decimal
ProposedWork Decimal
ResourceId String
ResourceName String
LinkedEngagement String

CData Cloud

FiscalPeriods

Retrieve fiscal periods.

Columns

Name Type References Description
FiscalPeriodId [KEY] String
CreatedDate Datetime
FiscalPeriodFinish Datetime
FiscalPeriodModifiedDate Datetime
FiscalPeriodName String
FiscalPeriodQuarter Int
FiscalPeriodStart Datetime
FiscalPeriodYear Int

CData Cloud

Issues

Retrieve issues.

Columns

Name Type References Description
IssueId [KEY] String
ProjectId [KEY] String
AssignedToResource String
Category String
CreateByResource String
CreatedDate Datetime
Discussion String
DueDate Datetime
IsFolder Bool
ItemRelativeUrlPath String
ModifiedByResource String
ModifiedDate Datetime
NumberOfAttachments Int
Owner String
Priority String
ProjectName String
Resolution String
Status String
Title String
LinkedProject String
LinkedRelatedRisks String
LinkedSubIssues String
LinkedTasks String

CData Cloud

IssueTaskAssociations

Retrieve issue-task associations.

Columns

Name Type References Description
IssueId [KEY] String
ProjectId [KEY] String
RelationshipType [KEY] Int
TaskId [KEY] String
ProjectName String
RelatedProjectId String
RelatedProjectName String
TaskName String
Title String
LinkedIssue String
LinkedProject String
LinkedRelatedProject String
LinkedTask String

CData Cloud

PortfolioAnalyses

Retrieve portfolio analyses.

Columns

Name Type References Description
AnalysisId [KEY] String
AnalysisDescription String
AnalysisName String
AnalysisType Int
BookingType Int
CreatedByResourceId String
CreatedByResourceName String
CreatedDate Datetime
DepartmentId String
DepartmentName String
FilterResourcesByDepartment Bool
FilterResourcesByRBS Bool
FilterResourcesByRBSValueId String
FilterResourcesByRBSValueText String
ForcedInAliasLookupTableId String
ForcedInAliasLookupTableName String
ForcedOutAliasLookupTableId String
ForcedOutAliasLookupTableName String
HardConstraintCustomFieldId String
HardConstraintCustomFieldName String
ModifiedByResourceId String
ModifiedByResourceName String
ModifiedDate Datetime
PlanningHorizonEndDate Datetime
PlanningHorizonStartDate Datetime
PrioritizationId String
PrioritizationName String
PrioritizationType Int
RoleCustomFieldId String
RoleCustomFieldName String
TimeScale Int
UseAlternateProjectDatesForResourcePlans Bool
LinkedAnalysisProjects String
LinkedCostConstraintScenarios String
LinkedCreatedByResource String
LinkedModifiedByResource String
LinkedPrioritization String
LinkedResourceConstraintScenarios String

CData Cloud

PortfolioAnalysisProjects

Retrieve portfolio analysis projects.

Columns

Name Type References Description
AnalysisId [KEY] String
ProjectId [KEY] String
AbsolutePriority Double
AnalysisName String
Duration Decimal
FinishNoLaterThan Datetime
Locked Int
OriginalEndDate Datetime
OriginalStartDate Datetime
Priority Double
ProjectName String
StartDate Datetime
StartNoEarlierThan Datetime
LinkedAnalysis String
LinkedProject String

CData Cloud

PrioritizationDriverRelations

Retrieve prioritization driver relations.

Columns

Name Type References Description
BusinessDriver1Id [KEY] String
BusinessDriver2Id [KEY] String
PrioritizationId [KEY] String
BusinessDriver1Name String
BusinessDriver2Name String
PrioritizationName String
RelationValue String
LinkedBusinessDriver1 String
LinkedBusinessDriver2 String
LinkedPrioritization String

CData Cloud

PrioritizationDrivers

Retrieve prioritization drivers.

Columns

Name Type References Description
BusinessDriverId [KEY] String
PrioritizationId [KEY] String
BusinessDriverName String
BusinessDriverPriority Double
PrioritizationName String
LinkedBusinessDriver String
LinkedPrioritization String

CData Cloud

Prioritizations

Retrieve prioritizations.

Columns

Name Type References Description
PrioritizationId [KEY] String
ConsistencyRatio Double
CreatedByResourceId String
CreatedByResourceName String
DepartmentId String
DepartmentName String
ModifiedByResourceId String
ModifiedByResourceName String
PrioritizationCreatedDate Datetime
PrioritizationDescription String
PrioritizationIsManual Bool
PrioritizationModifiedDate Datetime
PrioritizationName String
LinkedCreatedByResource String
LinkedModifiedByResource String
LinkedPrioritizationDriverRelations String
LinkedPrioritizationDrivers String

CData Cloud

ProjectBaselines

Retrieve project baselines.

Columns

Name Type References Description
BaselineNumber [KEY] Int
ProjectId [KEY] String
ProjectBaselineBudgetCost Decimal
ProjectBaselineBudgetWork Decimal
ProjectBaselineCost Decimal
ProjectBaselineDeliverableFinishDate Datetime
ProjectBaselineDeliverableStartDate Datetime
ProjectBaselineDuration Decimal
ProjectBaselineDurationString String
ProjectBaselineFinishDate Datetime
ProjectBaselineFinishDateString String
ProjectBaselineFixedCost Decimal
ProjectBaselineModifiedDate Datetime
ProjectBaselineStartDate Datetime
ProjectBaselineStartDateString String
ProjectBaselineWork Decimal
ProjectName String
TaskId String
LinkedProject String

CData Cloud

Projects

Retrieve projects.

Columns

Name Type References Description
ProjectId [KEY] String
EnterpriseProjectTypeDescription String
EnterpriseProjectTypeId String
EnterpriseProjectTypeIsDefault Bool
EnterpriseProjectTypeName String
OptimizerCommitDate Datetime
OptimizerDecisionAliasLookupTableId String
OptimizerDecisionAliasLookupTableValueId String
OptimizerDecisionID Int
OptimizerDecisionName String
OptimizerSolutionName String
ParentProjectId String
PlannerCommitDate Datetime
PlannerDecisionAliasLookupTableId String
PlannerDecisionAliasLookupTableValueId String
PlannerDecisionID Int
PlannerDecisionName String
PlannerEndDate Datetime
PlannerSolutionName String
PlannerStartDate Datetime
ProjectActualCost Decimal
ProjectActualDuration Decimal
ProjectActualFinishDate Datetime
ProjectActualOvertimeCost Decimal
ProjectActualOvertimeWork Decimal
ProjectActualRegularCost Decimal
ProjectActualRegularWork Decimal
ProjectActualStartDate Datetime
ProjectActualWork Decimal
ProjectACWP Decimal
ProjectAuthorName String
ProjectBCWP Decimal
ProjectBCWS Decimal
ProjectBudgetCost Decimal
ProjectBudgetWork Decimal
ProjectCalculationsAreStale Bool
ProjectCalendarDuration Int
ProjectCategoryName String
ProjectCompanyName String
ProjectCost Decimal
ProjectCostVariance Decimal
ProjectCPI Decimal
ProjectCreatedDate Datetime
ProjectCurrency String
ProjectCV Decimal
ProjectCVP Decimal
ProjectDepartments String
ProjectDescription String
ProjectDuration Decimal
ProjectDurationVariance Decimal
ProjectEAC Decimal
ProjectEarlyFinish Datetime
ProjectEarlyStart Datetime
ProjectEarnedValueIsStale Bool
ProjectEnterpriseFeatures Bool
ProjectFinishDate Datetime
ProjectFinishVariance Decimal
ProjectFixedCost Decimal
ProjectIdentifier String
ProjectKeywords String
ProjectLastPublishedDate Datetime
ProjectLateFinish Datetime
ProjectLateStart Datetime
ProjectManagerName String
ProjectModifiedDate Datetime
ProjectName String
ProjectOvertimeCost Decimal
ProjectOvertimeWork Decimal
ProjectOwnerId String
ProjectOwnerName String
ProjectPercentCompleted Int
ProjectPercentWorkCompleted Int
ProjectRegularCost Decimal
ProjectRegularWork Decimal
ProjectRemainingCost Decimal
ProjectRemainingDuration Decimal
ProjectRemainingOvertimeCost Decimal
ProjectRemainingOvertimeWork Decimal
ProjectRemainingRegularCost Decimal
ProjectRemainingRegularWork Decimal
ProjectRemainingWork Decimal
ProjectResourcePlanWork Decimal
ProjectSPI Decimal
ProjectStartDate Datetime
ProjectStartVariance Decimal
ProjectStatusDate Datetime
ProjectSubject String
ProjectSV Decimal
ProjectSVP Decimal
ProjectTCPI Decimal
ProjectTimephased String
ProjectTitle String
ProjectType Int
ProjectVAC Decimal
ProjectWork Decimal
ProjectWorkspaceInternalUrl String
ProjectWorkVariance Decimal
ResourcePlanUtilizationDate Datetime
ResourcePlanUtilizationType Int
WorkflowError String
WorkflowErrorResponseCode Int
WorkflowInstanceId String
WorkflowOwnerId String
WorkflowOwnerName String
LinkedAssignmentBaselines String
LinkedAssignments String
LinkedDeliverables String
LinkedDependencies String
LinkedIssues String
LinkedRisks String
LinkedStagesInfo String
LinkedTasks String

CData Cloud

ProjectWorkflowStageDataSet

Retrieve project workflow stage dataset.

Columns

Name Type References Description
ProjectId [KEY] String
StageId [KEY] String
LastModifiedDate Datetime
LCID Int
PhaseDescription String
PhaseName String
ProjectName String
StageCompletionDate Datetime
StageDescription String
StageEntryDate Datetime
StageInformation String
StageLastSubmittedDate Datetime
StageName String
StageOrder Int
StageStateDescription String
StageStatus Int
LinkedProject String

CData Cloud

ResourceConstraintScenarios

Retrieve resource constraint scenarios.

Columns

Name Type References Description
ScenarioId [KEY] String
AllocationThreshold Decimal
AnalysisId String
AnalysisName String
ConstraintType Int
ConstraintValue Decimal
CostConstraintScenarioId String
CostConstraintScenarioName String
CreatedByResourceId String
CreatedByResourceName String
CreatedDate Datetime
EnforceProjectDependencies Bool
EnforceSchedulingConstraints Bool
HiringType Int
ModifiedByResourceId String
ModifiedByResourceName String
ModifiedDate Datetime
RateTable Int
ScenarioDescription String
ScenarioName String
LinkedAnalysis String
LinkedCostConstraintScenario String
LinkedCreatedByResource String
LinkedModifiedByResource String
LinkedResourceScenarioProjects String

CData Cloud

ResourceDemandTimephasedDataSet

Retrieve resource demand timephased dataset.

Columns

Name Type References Description
ProjectId [KEY] String
ResourceId [KEY] String
TimeByDay [KEY] Datetime
FiscalPeriodId String
ProjectName String
ResourceDemand Decimal
ResourceDemandModifiedDate Datetime
ResourceName String
ResourcePlanUtilizationDate Datetime
ResourcePlanUtilizationType Int
LinkedProject String
LinkedResource String
LinkedTime String

CData Cloud

Resources

Retrieve resources.

Columns

Name Type References Description
ResourceId [KEY] String
CostType String
RBS String
ResourceBaseCalendar String
ResourceBookingType Int
ResourceCanLevel Bool
ResourceCode String
ResourceCostCenter String
ResourceCostPerUse Decimal
ResourceCreatedDate Datetime
ResourceDepartments String
ResourceEarliestAvailableFrom Datetime
ResourceEmailAddress String
ResourceGroup String
ResourceHyperlink String
ResourceHyperlinkHref String
ResourceInitials String
ResourceIsActive Bool
ResourceIsGeneric Bool
ResourceIsTeam Bool
ResourceLatestAvailableTo Datetime
ResourceMaterialLabel String
ResourceMaxUnits Decimal
ResourceModifiedDate Datetime
ResourceName String
ResourceNTAccount String
ResourceOvertimeRate Decimal
ResourceStandardRate Decimal
ResourceStatusId String
ResourceStatusName String
ResourceTimesheetManageId String
ResourceType Int
ResourceWorkgroup Int
TypeDescription String
TypeName String
LinkedAssignments String
LinkedResourceDemandTimephasedInfo String
LinkedTimephasedInfoDataSet String

CData Cloud

ResourceScenarioProjects

Retrieve resource scenario projects.

Columns

Name Type References Description
ProjectId [KEY] String
ScenarioId [KEY] String
AbsolutePriority Double
AnalysisId String
AnalysisName String
CostConstraintScenarioId String
CostConstraintScenarioName String
ForceAliasLookupTableId String
ForceAliasLookupTableName String
ForceStatus Int
HardConstraintValue Decimal
NewStartDate Datetime
Priority Double
ProjectName String
ResourceCost Decimal
ResourceWork Decimal
ScenarioName String
Status Int
LinkedAnalysis String
LinkedCostConstraintScenario String
LinkedProject String
LinkedResourceConstraintScenario String

CData Cloud

ResourceTimephasedDataSet

Retrieve resource timephased dataset.

Columns

Name Type References Description
ResourceId [KEY] String
TimeByDay [KEY] Datetime
BaseCapacity Decimal
Capacity Decimal
FiscalPeriodId String
ResourceModifiedDate Datetime
ResourceName String
LinkedResource String
LinkedTime String

CData Cloud

Risks

Retrieve risks.

Columns

Name Type References Description
ProjectId [KEY] String
RiskId [KEY] String
AssignedToResource String
Category String
ContingencyPlan String
Cost Double
CostExposure Double
CreateByResource String
CreatedDate Datetime
Description String
DueDate Datetime
Exposure Double
Impact Double
IsFolder Bool
ItemRelativeUrlPath String
MitigationPlan String
ModifiedByResource String
ModifiedDate Datetime
NumberOfAttachments Int
Owner String
Probability Double
ProjectName String
Status String
Title String
TriggerDescription String
TriggerTask String
LinkedProject String
LinkedRelatedIssues String
LinkedSubRisks String
LinkedTasks String

CData Cloud

RiskTaskAssociations

Retrieve risk task associations.

Columns

Name Type References Description
ProjectId [KEY] String
RelationshipType [KEY] Int
RiskId [KEY] String
TaskId [KEY] String
ProjectName String
RelatedProjectId String
RelatedProjectName String
TaskName String
Title String
LinkedProject String
LinkedRelatedProject String
LinkedRisk String
LinkedTask String

CData Cloud

TaskBaselines

Retrieve task baselines.

Columns

Name Type References Description
BaselineNumber [KEY] Int
ProjectId [KEY] String
TaskId [KEY] String
ProjectName String
TaskBaselineBudgetCost Decimal
TaskBaselineBudgetWork Decimal
TaskBaselineCost Decimal
TaskBaselineDeliverableFinishDate Datetime
TaskBaselineDeliverableStartDate Datetime
TaskBaselineDuration Decimal
TaskBaselineDurationString String
TaskBaselineFinishDate Datetime
TaskBaselineFinishDateString String
TaskBaselineFixedCost Decimal
TaskBaselineModifiedDate Datetime
TaskBaselineStartDate Datetime
TaskBaselineStartDateString String
TaskBaselineWork Decimal
TaskName String
LinkedProject String
LinkedTask String
LinkedTaskBaselineTimephasedDataSet String

CData Cloud

TaskBaselineTimephasedDataSet

Retrieve task baseline timephased dataset.

Columns

Name Type References Description
BaselineNumber [KEY] Int
ProjectId [KEY] String
TaskId [KEY] String
TimeByDay [KEY] Datetime
FiscalPeriodId String
ProjectName String
TaskBaselineBudgetCost Decimal
TaskBaselineBudgetWork Decimal
TaskBaselineCost Decimal
TaskBaselineFixedCost Decimal
TaskBaselineModifiedDate Datetime
TaskBaselineWork Decimal
TaskName String
LinkedProject String
LinkedTask String
LinkedTaskBaselines String
LinkedTime String

CData Cloud

Tasks

Retrieve tasks.

Columns

Name Type References Description
ProjectId [KEY] String
TaskId [KEY] String
FlagStatus Bool
Health String
ParentTaskId String
ParentTaskName String
ProjectName String
TaskActualCost Decimal
TaskActualDuration Decimal
TaskActualFinishDate Datetime
TaskActualFixedCost Decimal
TaskActualOvertimeCost Decimal
TaskActualOvertimeWork Decimal
TaskActualRegularCost Decimal
TaskActualRegularWork Decimal
TaskActualStartDate Datetime
TaskActualWork Decimal
TaskACWP Decimal
TaskBCWP Decimal
TaskBCWS Decimal
TaskBudgetCost Decimal
TaskBudgetWork Decimal
TaskClientUniqueId Int
TaskCost Decimal
TaskCostVariance Decimal
TaskCPI Decimal
TaskCreatedDate Datetime
TaskCreatedRevisionCounter Int
TaskCV Decimal
TaskCVP Decimal
TaskDeadline Datetime
TaskDeliverableFinishDate Datetime
TaskDeliverableStartDate Datetime
TaskDuration Decimal
TaskDurationIsEstimated Bool
TaskDurationString String
TaskDurationVariance Decimal
TaskEAC Decimal
TaskEarlyFinish Datetime
TaskEarlyStart Datetime
TaskFinishDate Datetime
TaskFinishDateString String
TaskFinishVariance Decimal
TaskFixedCost Decimal
TaskFixedCostAssignmentId String
TaskFreeSlack Decimal
TaskHyperLinkAddress String
TaskHyperLinkFriendlyName String
TaskHyperLinkSubAddress String
TaskIgnoresResourceCalendar Bool
TaskIndex Int
TaskIsActive Bool
TaskIsCritical Bool
TaskIsEffortDriven Bool
TaskIsExternal Bool
TaskIsManuallyScheduled Bool
TaskIsMarked Bool
TaskIsMilestone Bool
TaskIsOverallocated Bool
TaskIsProjectSummary Bool
TaskIsRecurring Bool
TaskIsSummary Bool
TaskLateFinish Datetime
TaskLateStart Datetime
TaskLevelingDelay Decimal
TaskModifiedDate Datetime
TaskModifiedRevisionCounter Int
TaskName String
TaskOutlineLevel Int
TaskOutlineNumber String
TaskOvertimeCost Decimal
TaskOvertimeWork Decimal
TaskPercentCompleted Int
TaskPercentWorkCompleted Int
TaskPhysicalPercentCompleted Int
TaskPriority Int
TaskRegularCost Decimal
TaskRegularWork Decimal
TaskRemainingCost Decimal
TaskRemainingDuration Decimal
TaskRemainingOvertimeCost Decimal
TaskRemainingOvertimeWork Decimal
TaskRemainingRegularCost Decimal
TaskRemainingRegularWork Decimal
TaskRemainingWork Decimal
TaskResourcePlanWork Decimal
TaskSPI Decimal
TaskStartDate Datetime
TaskStartDateString String
TaskStartVariance Decimal
TaskStatusManagerUID String
TaskSV Decimal
TaskSVP Decimal
TaskTCPI Decimal
TaskTotalSlack Decimal
TaskVAC Decimal
TaskWBS String
TaskWork Decimal
TaskWorkVariance Decimal
LinkedAssignments String
LinkedAssignmentsBaselines String
LinkedAssignmentsBaselineTimephasedData String
LinkedBaselines String
LinkedBaselinesTimephasedDataSet String
LinkedIssues String
LinkedProject String
LinkedRisks String
LinkedTimephasedInfo String

CData Cloud

TaskTimephasedDataSet

Retrieve task timephased dataset.

Columns

Name Type References Description
ProjectId [KEY] String
TaskId [KEY] String
TimeByDay [KEY] Datetime
FiscalPeriodId String
ProjectName String
TaskActualCost Decimal
TaskActualWork Decimal
TaskBudgetCost Decimal
TaskBudgetWork Decimal
TaskCost Decimal
TaskIsActive Bool
TaskIsProjectSummary Bool
TaskModifiedDate Datetime
TaskName String
TaskOvertimeWork Decimal
TaskResourcePlanWork Decimal
TaskWork Decimal
LinkedProject String
LinkedTask String
LinkedTime String

CData Cloud

TimeSet

Retrieve timeset.

Columns

Name Type References Description
TimeByDay [KEY] Datetime
FiscalPeriodId String
FiscalPeriodModifiedDate Datetime
FiscalPeriodName String
FiscalPeriodStart Datetime
FiscalPeriodYear Int
FiscalQuarter Int
TimeDayOfTheMonth Int
TimeDayOfTheWeek Int
TimeMonthOfTheYear Int
TimeQuarter Int
TimeWeekOfTheYear Int

CData Cloud

TimesheetClasses

Retrieve timesheet classes.

Columns

Name Type References Description
DepartmentId [KEY] String
TimesheetClassId [KEY] String
DepartmentName String
Description String
LCID Int
TimesheetClassName String
TimesheetClassType Int

CData Cloud

TimesheetLineActualDataSet

Retrieve timesheet line actual dataset.

Columns

Name Type References Description
AdjustmentIndex [KEY] Int
TimeByDay [KEY] Datetime
TimesheetLineId [KEY] String
ActualOvertimeWorkBillable Decimal
ActualOvertimeWorkNonBillable Decimal
ActualWorkBillable Decimal
ActualWorkNonBillable Decimal
Comment String
CreatedDate Datetime
LastChangedResourceName String
PlannedWork Decimal
ResourceName String
TimeByDay_DayOfMonth Int
TimeByDay_DayOfWeek Int
TimesheetLineModifiedDate Datetime
LinkedLastChangedByResource String
LinkedTime String
LinkedTimesheetLine String

CData Cloud

TimesheetLines

Retrieve timesheet lines.

Columns

Name Type References Description
TimesheetLineId [KEY] String
ActualOvertimeWorkBillable Decimal
ActualOvertimeWorkNonBillable Decimal
ActualWorkBillable Decimal
ActualWorkNonBillable Decimal
AssignmentId String
CreatedDate Datetime
LastSavedWork Decimal
LCID Int
ModifiedDate Datetime
PeriodEndDate Datetime
PeriodStartDate Datetime
PlannedWork Decimal
ProjectId String
ProjectName String
TaskHierarchy String
TaskId String
TaskName String
TimesheetApproverResourceId String
TimesheetApproverResourceName String
TimesheetClassDescription String
TimesheetClassId String
TimesheetClassName String
TimesheetClassType Int
TimesheetId String
TimesheetLineComment String
TimesheetLineStatus String
TimesheetLineStatusId Int
TimesheetName String
TimesheetOwner String
TimesheetOwnerId String
TimesheetPeriodId String
TimesheetPeriodName String
TimesheetPeriodStatus String
TimesheetPeriodStatusId Int
TimesheetStatus String
TimesheetStatusId Int
LinkedActuals String
LinkedApproverResource String
LinkedTimesheet String
LinkedTimesheetClass String

CData Cloud

TimesheetPeriods

Retrieve timesheet periods.

Columns

Name Type References Description
PeriodId [KEY] String
Description String
EndDate Datetime
LCID Int
PeriodName String
PeriodStatusId Int
StartDate Datetime

CData Cloud

Timesheets

Retrieve timesheets.

Columns

Name Type References Description
TimesheetId [KEY] String
Comment String
Description String
EndDate Datetime
ModifiedDate Datetime
PeriodId String
PeriodName String
PeriodStatusId Int
StartDate Datetime
StatusDescription String
TimesheetName String
TimesheetOwner String
TimesheetOwnerId String
TimesheetStatusId Int
LinkedLines String
LinkedPeriods String

CData Cloud

Stored Procedures

Stored procedures are function-like interfaces that extend the functionality of the Cloud beyond simple SELECT/INSERT/UPDATE/DELETE operations with Microsoft Project.

Stored procedures accept a list of parameters, perform their intended function, and then return, if applicable, any relevant response data from Microsoft Project, along with an indication of whether the procedure succeeded or failed.

CData Cloud - Microsoft Project Stored Procedures

Name Description
GetOnlineCookies Retrieves the cookies for authentication with SharePoint Online.
Search Searches OData using the given URL.

CData Cloud

GetOAuthAccessToken

Gets an authentication token from Microsoft Project.

Input

Name Type Description
Scope String A comma-separated list of permissions to request from the user. Please check the Microsoft Project API for a list of available permissions.
CallbackUrl String The URL the user will be redirected to after authorizing your application. This value must match the Redirect URL you have specified in the Microsoft Project app settings. Only needed when the Authmode parameter is Web.
Verifier String The verifier returned from Microsoft Project after the user has authorized your app to have access to their data. This value will be returned as a parameter to the callback URL.
State String Indicates any state which may be useful to your application upon receipt of the response. Your application receives the same value it sent, as this parameter makes a round-trip to the Microsoft Project authorization server and back. Uses include redirecting the user to the correct resource in your site, nonces, and cross-site-request-forgery mitigations.

Result Set Columns

Name Type Description
OAuthAccessToken String The access token used for communication with Microsoft Project.
OAuthRefreshToken String The OAuth refresh token. This is the same as the access token in the case of Microsoft Project.
ExpiresIn String The remaining lifetime on the access token. A -1 denotes that it will not expire.

CData Cloud

GetOAuthAuthorizationURL

Gets the authorization URL that must be opened separately by the user to grant access to your application. Only needed when developing Web apps. You will request the OAuthAccessToken from this URL.

Input

Name Type Description
CallbackUrl String The URL the user will be redirected to after authorizing your application. This value must match the Redirect URL in the Microsoft Project app settings.
Scope String A comma-separated list of scopes to request from the user. Please check the Microsoft Project API documentation for a list of available permissions.
State String Indicates any state which may be useful to your application upon receipt of the response. Your application receives the same value it sent, as this parameter makes a round-trip to the Microsoft Project authorization server and back. Uses include redirecting the user to the correct resource in your site, nonces, and cross-site-request-forgery mitigations.

Result Set Columns

Name Type Description
URL String The authorization URL, entered into a Web browser to obtain the verifier token and authorize your app.

CData Cloud

GetOnlineCookies

Retrieves the cookies for authentication with SharePoint Online.

Input

Name Type Description
User String Your SharePoint Online username.
Password String Your SharePoint Online password.
STSURL String Your SharePoint Online STSURL. This only needs to be set if your organization uses a local ADFS server for authentication.

Result Set Columns

Name Type Description
Cookie String The cookies that will need to be entered in the AuthCookie connection string property.

CData Cloud

RefreshOAuthAccessToken

Refreshes the OAuth access token used for authentication with Microsoft Project.

Input

Name Type Description
OAuthRefreshToken String Set this to the token value that expired.

Result Set Columns

Name Type Description
OAuthAccessToken String The authentication token returned from Microsoft Project. This can be used in subsequent calls to other operations for this particular service.
OAuthRefreshToken String This is the same as the access token.
ExpiresIn String The remaining lifetime on the access token.

CData Cloud

Search

Searches OData using the given URL.

Input

Name Type Description
Url String Full URL to use while searching OData.

Result Set Columns

Name Type Description
* String Output will vary for each entity.

CData Cloud

System Tables

You can query the system tables described in this section to access schema information, information on data source functionality, and batch operation statistics.

Schema Tables

The following tables return database metadata for Microsoft Project:

  • sys_catalogs: Lists the available databases.
  • sys_schemas: Lists the available schemas.
  • sys_tables: Lists the available tables and views.
  • sys_tablecolumns: Describes the columns of the available tables and views.
  • sys_procedures: Describes the available stored procedures.
  • sys_procedureparameters: Describes stored procedure parameters.
  • sys_keycolumns: Describes the primary and foreign keys.
  • sys_indexes: Describes the available indexes.

Data Source Tables

The following tables return information about how to connect to and query the data source:

  • sys_connection_props: Returns information on the available connection properties.
  • sys_sqlinfo: Describes the SELECT queries that the Cloud can offload to the data source.

Query Information Tables

The following table returns query statistics for data modification queries, including batch operations::

  • sys_identity: Returns information about batch operations or single updates.

CData Cloud

sys_catalogs

Lists the available databases.

The following query retrieves all databases determined by the connection string:

SELECT * FROM sys_catalogs

Columns

Name Type Description
CatalogName String The database name.

CData Cloud

sys_schemas

Lists the available schemas.

The following query retrieves all available schemas:

          SELECT * FROM sys_schemas
          

Columns

Name Type Description
CatalogName String The database name.
SchemaName String The schema name.

CData Cloud

sys_tables

Lists the available tables.

The following query retrieves the available tables and views:

          SELECT * FROM sys_tables
          

Columns

Name Type Description
CatalogName String The database containing the table or view.
SchemaName String The schema containing the table or view.
TableName String The name of the table or view.
TableType String The table type (table or view).
Description String A description of the table or view.
IsUpdateable Boolean Whether the table can be updated.

CData Cloud

sys_tablecolumns

Describes the columns of the available tables and views.

The following query returns the columns and data types for the Projects table:

SELECT ColumnName, DataTypeName FROM sys_tablecolumns WHERE TableName='Projects' 

Columns

Name Type Description
CatalogName String The name of the database containing the table or view.
SchemaName String The schema containing the table or view.
TableName String The name of the table or view containing the column.
ColumnName String The column name.
DataTypeName String The data type name.
DataType Int32 An integer indicating the data type. This value is determined at run time based on the environment.
Length Int32 The storage size of the column.
DisplaySize Int32 The designated column's normal maximum width in characters.
NumericPrecision Int32 The maximum number of digits in numeric data. The column length in characters for character and date-time data.
NumericScale Int32 The column scale or number of digits to the right of the decimal point.
IsNullable Boolean Whether the column can contain null.
Description String A brief description of the column.
Ordinal Int32 The sequence number of the column.
IsAutoIncrement String Whether the column value is assigned in fixed increments.
IsGeneratedColumn String Whether the column is generated.
IsHidden Boolean Whether the column is hidden.
IsArray Boolean Whether the column is an array.

CData Cloud

sys_procedures

Lists the available stored procedures.

The following query retrieves the available stored procedures:

          SELECT * FROM sys_procedures
          

Columns

Name Type Description
CatalogName String The database containing the stored procedure.
SchemaName String The schema containing the stored procedure.
ProcedureName String The name of the stored procedure.
Description String A description of the stored procedure.
ProcedureType String The type of the procedure, such as PROCEDURE or FUNCTION.

CData Cloud

sys_procedureparameters

Describes stored procedure parameters.

The following query returns information about all of the input parameters for the SelectEntries stored procedure:

SELECT * FROM sys_procedureparameters WHERE ProcedureName='SelectEntries' AND Direction=1 OR Direction=2

Columns

Name Type Description
CatalogName String The name of the database containing the stored procedure.
SchemaName String The name of the schema containing the stored procedure.
ProcedureName String The name of the stored procedure containing the parameter.
ColumnName String The name of the stored procedure parameter.
Direction Int32 An integer corresponding to the type of the parameter: input (1), input/output (2), or output(4). input/output type parameters can be both input and output parameters.
DataTypeName String The name of the data type.
DataType Int32 An integer indicating the data type. This value is determined at run time based on the environment.
Length Int32 The number of characters allowed for character data. The number of digits allowed for numeric data.
NumericPrecision Int32 The maximum precision for numeric data. The column length in characters for character and date-time data.
NumericScale Int32 The number of digits to the right of the decimal point in numeric data.
IsNullable Boolean Whether the parameter can contain null.
IsRequired Boolean Whether the parameter is required for execution of the procedure.
IsArray Boolean Whether the parameter is an array.
Description String The description of the parameter.
Ordinal Int32 The index of the parameter.

CData Cloud

sys_keycolumns

Describes the primary and foreign keys.

The following query retrieves the primary key for the Projects table:

         SELECT * FROM sys_keycolumns WHERE IsKey='True' AND TableName='Projects' 
          

Columns

Name Type Description
CatalogName String The name of the database containing the key.
SchemaName String The name of the schema containing the key.
TableName String The name of the table containing the key.
ColumnName String The name of the key column.
IsKey Boolean Whether the column is a primary key in the table referenced in the TableName field.
IsForeignKey Boolean Whether the column is a foreign key referenced in the TableName field.
PrimaryKeyName String The name of the primary key.
ForeignKeyName String The name of the foreign key.
ReferencedCatalogName String The database containing the primary key.
ReferencedSchemaName String The schema containing the primary key.
ReferencedTableName String The table containing the primary key.
ReferencedColumnName String The column name of the primary key.

CData Cloud

sys_foreignkeys

Describes the foreign keys.

The following query retrieves all foreign keys which refer to other tables:

         SELECT * FROM sys_foreignkeys WHERE ForeignKeyType = 'FOREIGNKEY_TYPE_IMPORT'
          

Columns

Name Type Description
CatalogName String The name of the database containing the key.
SchemaName String The name of the schema containing the key.
TableName String The name of the table containing the key.
ColumnName String The name of the key column.
PrimaryKeyName String The name of the primary key.
ForeignKeyName String The name of the foreign key.
ReferencedCatalogName String The database containing the primary key.
ReferencedSchemaName String The schema containing the primary key.
ReferencedTableName String The table containing the primary key.
ReferencedColumnName String The column name of the primary key.
ForeignKeyType String Designates whether the foreign key is an import (points to other tables) or export (referenced from other tables) key.

CData Cloud

sys_indexes

Describes the available indexes. By filtering on indexes, you can write more selective queries with faster query response times.

The following query retrieves all indexes that are not primary keys:

          SELECT * FROM sys_indexes WHERE IsPrimary='false'
          

Columns

Name Type Description
CatalogName String The name of the database containing the index.
SchemaName String The name of the schema containing the index.
TableName String The name of the table containing the index.
IndexName String The index name.
ColumnName String The name of the column associated with the index.
IsUnique Boolean True if the index is unique. False otherwise.
IsPrimary Boolean True if the index is a primary key. False otherwise.
Type Int16 An integer value corresponding to the index type: statistic (0), clustered (1), hashed (2), or other (3).
SortOrder String The sort order: A for ascending or D for descending.
OrdinalPosition Int16 The sequence number of the column in the index.

CData Cloud

sys_connection_props

Returns information on the available connection properties and those set in the connection string.

When querying this table, the config connection string should be used:

jdbc:cdata:microsoftproject:config:

This connection string enables you to query this table without a valid connection.

The following query retrieves all connection properties that have been set in the connection string or set through a default value:

SELECT * FROM sys_connection_props WHERE Value <> ''

Columns

Name Type Description
Name String The name of the connection property.
ShortDescription String A brief description.
Type String The data type of the connection property.
Default String The default value if one is not explicitly set.
Values String A comma-separated list of possible values. A validation error is thrown if another value is specified.
Value String The value you set or a preconfigured default.
Required Boolean Whether the property is required to connect.
Category String The category of the connection property.
IsSessionProperty String Whether the property is a session property, used to save information about the current connection.
Sensitivity String The sensitivity level of the property. This informs whether the property is obfuscated in logging and authentication forms.
PropertyName String A camel-cased truncated form of the connection property name.
Ordinal Int32 The index of the parameter.
CatOrdinal Int32 The index of the parameter category.
Hierarchy String Shows dependent properties associated that need to be set alongside this one.
Visible Boolean Informs whether the property is visible in the connection UI.
ETC String Various miscellaneous information about the property.

CData Cloud

sys_sqlinfo

Describes the SELECT query processing that the Cloud can offload to the data source.

See SQL Compliance for SQL syntax details.

Discovering the Data Source's SELECT Capabilities

Below is an example data set of SQL capabilities. The following result set indicates the SELECT functionality that the Cloud can offload to the data source or process client side. Your data source may support additional SQL syntax. Some aspects of SELECT functionality are returned in a comma-separated list if supported; otherwise, the column contains NO.

NameDescriptionPossible Values
AGGREGATE_FUNCTIONSSupported aggregation functions.AVG, COUNT, MAX, MIN, SUM, DISTINCT
COUNTWhether COUNT function is supported.YES, NO
IDENTIFIER_QUOTE_OPEN_CHARThe opening character used to escape an identifier.[
IDENTIFIER_QUOTE_CLOSE_CHARThe closing character used to escape an identifier.]
SUPPORTED_OPERATORSA list of supported SQL operators.=, >, <, >=, <=, <>, !=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL, AND, OR
GROUP_BYWhether GROUP BY is supported, and, if so, the degree of support.NO, NO_RELATION, EQUALS_SELECT, SQL_GB_COLLATE
OJ_CAPABILITIESThe supported varieties of outer joins supported.NO, LEFT, RIGHT, FULL, INNER, NOT_ORDERED, ALL_COMPARISON_OPS
OUTER_JOINSWhether outer joins are supported.YES, NO
SUBQUERIESWhether subqueries are supported, and, if so, the degree of support.NO, COMPARISON, EXISTS, IN, CORRELATED_SUBQUERIES, QUANTIFIED
STRING_FUNCTIONSSupported string functions.LENGTH, CHAR, LOCATE, REPLACE, SUBSTRING, RTRIM, LTRIM, RIGHT, LEFT, UCASE, SPACE, SOUNDEX, LCASE, CONCAT, ASCII, REPEAT, OCTET, BIT, POSITION, INSERT, TRIM, UPPER, REGEXP, LOWER, DIFFERENCE, CHARACTER, SUBSTR, STR, REVERSE, PLAN, UUIDTOSTR, TRANSLATE, TRAILING, TO, STUFF, STRTOUUID, STRING, SPLIT, SORTKEY, SIMILAR, REPLICATE, PATINDEX, LPAD, LEN, LEADING, KEY, INSTR, INSERTSTR, HTML, GRAPHICAL, CONVERT, COLLATION, CHARINDEX, BYTE
NUMERIC_FUNCTIONSSupported numeric functions.ABS, ACOS, ASIN, ATAN, ATAN2, CEILING, COS, COT, EXP, FLOOR, LOG, MOD, SIGN, SIN, SQRT, TAN, PI, RAND, DEGREES, LOG10, POWER, RADIANS, ROUND, TRUNCATE
TIMEDATE_FUNCTIONSSupported date/time functions.NOW, CURDATE, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, MONTH, QUARTER, WEEK, YEAR, CURTIME, HOUR, MINUTE, SECOND, TIMESTAMPADD, TIMESTAMPDIFF, DAYNAME, MONTHNAME, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, EXTRACT
REPLICATION_SKIP_TABLESIndicates tables skipped during replication.
REPLICATION_TIMECHECK_COLUMNSA string array containing a list of columns which will be used to check for (in the given order) to use as a modified column during replication.
IDENTIFIER_PATTERNString value indicating what string is valid for an identifier.
SUPPORT_TRANSACTIONIndicates if the provider supports transactions such as commit and rollback.YES, NO
DIALECTIndicates the SQL dialect to use.
KEY_PROPERTIESIndicates the properties which identify the uniform database.
SUPPORTS_MULTIPLE_SCHEMASIndicates if multiple schemas may exist for the provider.YES, NO
SUPPORTS_MULTIPLE_CATALOGSIndicates if multiple catalogs may exist for the provider.YES, NO
DATASYNCVERSIONThe CData Data Sync version needed to access this driver.Standard, Starter, Professional, Enterprise
DATASYNCCATEGORYThe CData Data Sync category of this driver.Source, Destination, Cloud Destination
SUPPORTSENHANCEDSQLWhether enhanced SQL functionality beyond what is offered by the API is supported.TRUE, FALSE
SUPPORTS_BATCH_OPERATIONSWhether batch operations are supported.YES, NO
SQL_CAPAll supported SQL capabilities for this driver.SELECT, INSERT, DELETE, UPDATE, TRANSACTIONS, ORDERBY, OAUTH, ASSIGNEDID, LIMIT, LIKE, BULKINSERT, COUNT, BULKDELETE, BULKUPDATE, GROUPBY, HAVING, AGGS, OFFSET, REPLICATE, COUNTDISTINCT, JOINS, DROP, CREATE, DISTINCT, INNERJOINS, SUBQUERIES, ALTER, MULTIPLESCHEMAS, GROUPBYNORELATION, OUTERJOINS, UNIONALL, UNION, UPSERT, GETDELETED, CROSSJOINS, GROUPBYCOLLATE, MULTIPLECATS, FULLOUTERJOIN, MERGE, JSONEXTRACT, BULKUPSERT, SUM, SUBQUERIESFULL, MIN, MAX, JOINSFULL, XMLEXTRACT, AVG, MULTISTATEMENTS, FOREIGNKEYS, CASE, LEFTJOINS, COMMAJOINS, WITH, LITERALS, RENAME, NESTEDTABLES, EXECUTE, BATCH, BASIC, INDEX
PREFERRED_CACHE_OPTIONSA string value specifies the preferred cacheOptions.
ENABLE_EF_ADVANCED_QUERYIndicates if the driver directly supports advanced queries coming from Entity Framework. If not, queries will be handled client side.YES, NO
PSEUDO_COLUMNSA string array indicating the available pseudo columns.
MERGE_ALWAYSIf the value is true, The Merge Mode is forcibly executed in Data Sync.TRUE, FALSE
REPLICATION_MIN_DATE_QUERYA select query to return the replicate start datetime.
REPLICATION_MIN_FUNCTIONAllows a provider to specify the formula name to use for executing a server side min.
REPLICATION_START_DATEAllows a provider to specify a replicate startdate.
REPLICATION_MAX_DATE_QUERYA select query to return the replicate end datetime.
REPLICATION_MAX_FUNCTIONAllows a provider to specify the formula name to use for executing a server side max.
IGNORE_INTERVALS_ON_INITIAL_REPLICATEA list of tables which will skip dividing the replicate into chunks on the initial replicate.
CHECKCACHE_USE_PARENTIDIndicates whether the CheckCache statement should be done against the parent key column.TRUE, FALSE
CREATE_SCHEMA_PROCEDURESIndicates stored procedures that can be used for generating schema files.

The following query retrieves the operators that can be used in the WHERE clause:

SELECT * FROM sys_sqlinfo WHERE Name='SUPPORTED_OPERATORS'
Note that individual tables may have different limitations or requirements on the WHERE clause; refer to the Data Model section for more information.

Columns

Name Type Description
NAME String A component of SQL syntax, or a capability that can be processed on the server.
VALUE String Detail on the supported SQL or SQL syntax.

CData Cloud

sys_identity

Returns information about attempted modifications.

The following query retrieves the Ids of the modified rows in a batch operation:

         SELECT * FROM sys_identity
          

Columns

Name Type Description
Id String The database-generated Id returned from a data modification operation.
Batch String An identifier for the batch. 1 for a single operation.
Operation String The result of the operation in the batch: INSERTED, UPDATED, or DELETED.
Message String SUCCESS or an error message if the update in the batch failed.

CData Cloud

Data Type Mapping

Data Type Mappings

The Cloud maps types from the data source to the corresponding data type available in the schema. The table below documents these mappings.

Microsoft Project (OData V3) CData Schema
Edm.Binary binary
Edm.Boolean bool
Edm.DateTime datetime
Edm.Decimal decimal
Edm.Double double
Edm.Guid guid
Edm.Int32 int
Edm.String string
Edm.TimeOfDay time

CData Cloud

Connection String Options

The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider. Click the links for further details.

Authentication


PropertyDescription
AuthSchemeThe scheme used for authentication. Accepted entries are Auto,OAuth,OKTA,ADFS, and OneLogin.
URLURL to the MS Project Web App. For example, https://MyOrganization.sharepoint.com/sites/pwa/.
UserThe Microsoft Project user account used to authenticate.
PasswordThe password used to authenticate the user.

Connection


PropertyDescription
ProjectIdThe Id of the default project. This Id will be used by default for all the operations which require the project Id. Can be overridden by providing a query specific ProjectId filter.
AuthCookieThe cookie to use for authenticating to the online SharePoint server.

Azure Authentication


PropertyDescription
AzureTenantThe Microsoft Online tenant being used to access data. If not specified, your default tentant will be used.
AzureEnvironmentThe Azure Environment to use when establishing a connection.

SSO


PropertyDescription
SSOLoginURLThe identity provider's login URL.
SSODomainThe domain of the user when using single sign-on (SSO).
SSOPropertiesAdditional properties required to connect to the identity provider in a semicolon-separated list.

OAuth


PropertyDescription
OAuthClientIdThe client Id assigned when you register your application with an OAuth authorization server.
OAuthClientSecretThe client secret assigned when you register your application with an OAuth authorization server.
OAuthAccessTokenThe access token for connecting using OAuth.
CallbackURLThe OAuth callback URL to return to when authenticating. This value must match the callback URL you specify in your app settings.
ScopeThe scopes used for the OAuth or AzureAD flow. Should be separated with a whitespace. For the OAuth flow, it defaults to the following: ProjectAdmin.Manage Projects.Write ProjectResources.Write ProjectReporting.Read. A list of the available scopes and their aliases can be found here: https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/authorization-code-oauth-flow-for-sharepoint-add-ins?redirectedfrom=MSDN#permission-scope-aliases-and-the-oauthauthorizeaspx-page. For the AzureAD flow, it deafults to the following: offline_access https://MyOrganization.sharepoint.com/ProjectWebApp.FullControl https://MyOrganization.sharepoint.com/AllSites.FullControl. A list of the available Azure scopes can be found under API Permissions > SharePoint when customizing any app in the Azure Portal > App Registrations page.
StateOptional value for representing extra OAuth state information.
OAuthVerifierThe verifier code returned from the OAuth authorization URL.
OAuthRefreshTokenThe OAuth refresh token for the corresponding OAuth access token.
OAuthExpiresInThe lifetime in seconds of the OAuth AccessToken.
OAuthTokenTimestampThe Unix epoch timestamp in milliseconds when the current Access Token was created.

SSL


PropertyDescription
SSLServerCertThe certificate to be accepted from the server when connecting using TLS/SSL.

Firewall


PropertyDescription
FirewallTypeThe protocol used by a proxy-based firewall.
FirewallServerThe name or IP address of a proxy-based firewall.
FirewallPortThe TCP port for a proxy-based firewall.
FirewallUserThe user name to use to authenticate with a proxy-based firewall.
FirewallPasswordA password used to authenticate to a proxy-based firewall.

Proxy


PropertyDescription
ProxyAutoDetectThis indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
ProxyServerThe hostname or IP address of a proxy to route HTTP traffic through.
ProxyPortThe TCP port the ProxyServer proxy is running on.
ProxyAuthSchemeThe authentication type to use to authenticate to the ProxyServer proxy.
ProxyUserA user name to be used to authenticate to the ProxyServer proxy.
ProxyPasswordA password to be used to authenticate to the ProxyServer proxy.
ProxySSLTypeThe SSL type to use when connecting to the ProxyServer proxy.
ProxyExceptionsA semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .

Logging


PropertyDescription
LogfileA filepath which designates the name and location of the log file.
VerbosityThe verbosity level that determines the amount of detail included in the log file.
LogModulesCore modules to be included in the log file.
MaxLogFileSizeA string specifying the maximum size in bytes for a log file (for example, 10 MB).
MaxLogFileCountA string specifying the maximum file count of log files.

Schema


PropertyDescription
LocationA path to the directory that contains the schema files defining tables, views, and stored procedures.
BrowsableSchemasThis property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
TablesThis property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.
ViewsRestricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.
SchemaThe type of schema to use: ODataV1 or ODataV2.

Caching


PropertyDescription
AutoCacheAutomatically caches the results of SELECT queries into a cache database specified by either CacheLocation or both of CacheConnection and CacheProvider .
CacheLocationSpecifies the path to the cache when caching to a file.
CacheToleranceThe tolerance for stale data in the cache specified in seconds when using AutoCache .
OfflineUse offline mode to get the data from the cache instead of the live source.
CacheMetadataThis property determines whether or not to cache the table metadata to a file store.

Miscellaneous


PropertyDescription
MaxRowsLimits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
OtherThese hidden properties are used only in specific use cases.
PagesizeThe maximum number of results to return per page from Microsoft Project.
PseudoColumnsThis property indicates whether or not to include pseudo columns as columns to the table.
ReadonlyYou can use this property to enforce read-only access to Microsoft Project from the provider.
RTKThe runtime key used for licensing.
TimeoutThe value in seconds until the timeout error is thrown, canceling the operation.
UserDefinedViewsA filepath pointing to the JSON configuration file containing your custom views.
UseSimpleNamesBoolean determining if simple names should be used for tables and columns.
CData Cloud

Authentication

This section provides a complete list of the Authentication properties you can configure in the connection string for this provider.


PropertyDescription
AuthSchemeThe scheme used for authentication. Accepted entries are Auto,OAuth,OKTA,ADFS, and OneLogin.
URLURL to the MS Project Web App. For example, https://MyOrganization.sharepoint.com/sites/pwa/.
UserThe Microsoft Project user account used to authenticate.
PasswordThe password used to authenticate the user.
CData Cloud

AuthScheme

The scheme used for authentication. Accepted entries are Auto,OAuth,OKTA,ADFS, and OneLogin.

Possible Values

Auto, SharePointOnlineCookies, OAuth, ADFS, OKTA, OneLogin, AzureAD

Data Type

string

Default Value

"Auto"

Remarks

This field is used to authenticate to Microsoft Project. Auto is the default option.

  • Auto: Lets the CData Cloud determine what to do based on other connection properties.
  • SharePointOnlineCookies: Set the User and Password to perform the cookie based authentication to your SharePoint Online server.
  • OAuth: Set this to use OAuth authentication.
  • ADFS: Set this to use Single Sign-On authentication with ADFS.
  • OKTA: Set this to use Single Sign-On authentication with OKTA.
  • OneLogin: Set this to use Single Sign-On authentication with OneLogin.
  • AzureAD: Set this to use Azure Active Directory authentication.

CData Cloud

URL

URL to the MS Project Web App. For example, https://MyOrganization.sharepoint.com/sites/pwa/.

Data Type

string

Default Value

""

Remarks

URL to the MS Project Web App. For example, https://MyOrganization.sharepoint.com/sites/pwa/.

CData Cloud

User

The Microsoft Project user account used to authenticate.

Data Type

string

Default Value

""

Remarks

Together with Password, this field is used to authenticate against the Microsoft Project server.

CData Cloud

Password

The password used to authenticate the user.

Data Type

string

Default Value

""

Remarks

The User and Password are together used to authenticate with the server.

CData Cloud

Connection

This section provides a complete list of the Connection properties you can configure in the connection string for this provider.


PropertyDescription
ProjectIdThe Id of the default project. This Id will be used by default for all the operations which require the project Id. Can be overridden by providing a query specific ProjectId filter.
AuthCookieThe cookie to use for authenticating to the online SharePoint server.
CData Cloud

ProjectId

The Id of the default project. This Id will be used by default for all the operations which require the project Id. Can be overridden by providing a query specific ProjectId filter.

Data Type

string

Default Value

""

Remarks

The Id of the default project. This Id will be used by default for all the operations which require the project Id. Can be overridden by providing a query specific ProjectId filter.

Note: This property is applicable only for the "ODataV2" schema. For the "ODataV1" schema, no table requires the ProjectId to be specified, as the ProjectData endpoints return data for all the available projects.

CData Cloud

AuthCookie

The cookie to use for authenticating to the online SharePoint server.

Data Type

string

Default Value

""

Remarks

After logging in to http://yourdomain.sharepoint.com/TeamSite, the "keep me signed in" setting must be checked in order for the connection to be established.

CData Cloud

Azure Authentication

This section provides a complete list of the Azure Authentication properties you can configure in the connection string for this provider.


PropertyDescription
AzureTenantThe Microsoft Online tenant being used to access data. If not specified, your default tentant will be used.
AzureEnvironmentThe Azure Environment to use when establishing a connection.
CData Cloud

AzureTenant

The Microsoft Online tenant being used to access data. If not specified, your default tentant will be used.

Data Type

string

Default Value

""

Remarks

The Microsoft Online tenant being used to access data. For instance, contoso.onmicrosoft.com. Alternatively, specify the tenant Id. This value is the directory Id in the Azure Portal > Azure Active Directory > Properties.

Typically it is not necessary to specify the Tenant. This can be automatically determined by Microsoft when using the OAuthGrantType set to CODE (default). However, it may fail in the case that the user belongs to multiple tenants. For instance, if an Admin of domain A invites a user of domain B to be a guest user. The user will now belong to both tenants. It is a good practice to specify the Tenant, although in general things should normally work without having to specify it.

The AzureTenant is required when setting OAuthGrantType to CLIENT. When using client credentials, there is no user context. The credentials are taken from the context of the app itself. While Microsoft still allows client credentials to be obtained without specifying which Tenant, it has a much lower probability of picking the specific tenant you want to work with. For this reason, we require AzureTenant to be explicitly stated for all client credentials connections to ensure you get credentials that are applicable for the domain you intend to connect to.

CData Cloud

AzureEnvironment

The Azure Environment to use when establishing a connection.

Possible Values

GLOBAL, CHINA, USGOVT, USGOVTDOD

Data Type

string

Default Value

"GLOBAL"

Remarks

In most cases, leaving the environment set to global will work. However, if your Azure Account has been added to a different environment, the AzureEnvironment may be used to specify which environment. The available values are GLOBAL, CHINA, USGOVT, USGOVTDOD.

CData Cloud

SSO

This section provides a complete list of the SSO properties you can configure in the connection string for this provider.


PropertyDescription
SSOLoginURLThe identity provider's login URL.
SSODomainThe domain of the user when using single sign-on (SSO).
SSOPropertiesAdditional properties required to connect to the identity provider in a semicolon-separated list.
CData Cloud

SSOLoginURL

The identity provider's login URL.

Data Type

string

Default Value

""

Remarks

The identity provider's login URL.

CData Cloud

SSODomain

The domain of the user when using single sign-on (SSO).

Data Type

string

Default Value

""

Remarks

This property is only applicable when using single sign-on (UseSSO is set to true) and if the domain of the User (e.g. [email protected]) is different than the domain configured within the SSO service (e.g. [email protected]).

This property may be required when using the ADFS, OneLogin, or OKTA SSO services.

CData Cloud

SSOProperties

Additional properties required to connect to the identity provider in a semicolon-separated list.

Data Type

string

Default Value

""

Remarks

Additional properties required to connect to the identity provider in a semicolon-separated list. is used in conjunction with the SSOLoginURL.

SSO configuration is discussed further in .

CData Cloud

OAuth

This section provides a complete list of the OAuth properties you can configure in the connection string for this provider.


PropertyDescription
OAuthClientIdThe client Id assigned when you register your application with an OAuth authorization server.
OAuthClientSecretThe client secret assigned when you register your application with an OAuth authorization server.
OAuthAccessTokenThe access token for connecting using OAuth.
CallbackURLThe OAuth callback URL to return to when authenticating. This value must match the callback URL you specify in your app settings.
ScopeThe scopes used for the OAuth or AzureAD flow. Should be separated with a whitespace. For the OAuth flow, it defaults to the following: ProjectAdmin.Manage Projects.Write ProjectResources.Write ProjectReporting.Read. A list of the available scopes and their aliases can be found here: https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/authorization-code-oauth-flow-for-sharepoint-add-ins?redirectedfrom=MSDN#permission-scope-aliases-and-the-oauthauthorizeaspx-page. For the AzureAD flow, it deafults to the following: offline_access https://MyOrganization.sharepoint.com/ProjectWebApp.FullControl https://MyOrganization.sharepoint.com/AllSites.FullControl. A list of the available Azure scopes can be found under API Permissions > SharePoint when customizing any app in the Azure Portal > App Registrations page.
StateOptional value for representing extra OAuth state information.
OAuthVerifierThe verifier code returned from the OAuth authorization URL.
OAuthRefreshTokenThe OAuth refresh token for the corresponding OAuth access token.
OAuthExpiresInThe lifetime in seconds of the OAuth AccessToken.
OAuthTokenTimestampThe Unix epoch timestamp in milliseconds when the current Access Token was created.
CData Cloud

OAuthClientId

The client Id assigned when you register your application with an OAuth authorization server.

Data Type

string

Default Value

""

Remarks

As part of registering an OAuth application, you will receive the OAuthClientId value, sometimes also called a consumer key, and a client secret, the OAuthClientSecret.

CData Cloud

OAuthClientSecret

The client secret assigned when you register your application with an OAuth authorization server.

Data Type

string

Default Value

""

Remarks

As part of registering an OAuth application, you will receive the OAuthClientId, also called a consumer key. You will also receive a client secret, also called a consumer secret. Set the client secret in the OAuthClientSecret property.

CData Cloud

OAuthAccessToken

The access token for connecting using OAuth.

Data Type

string

Default Value

""

Remarks

The OAuthAccessToken property is used to connect using OAuth. The OAuthAccessToken is retrieved from the OAuth server as part of the authentication process. It has a server-dependent timeout and can be reused between requests.

The access token is used in place of your user name and password. The access token protects your credentials by keeping them on the server.

CData Cloud

CallbackURL

The OAuth callback URL to return to when authenticating. This value must match the callback URL you specify in your app settings.

Data Type

string

Default Value

""

Remarks

During the authentication process, the OAuth authorization server redirects the user to this URL. This value must match the callback URL you specify in your app settings.

CData Cloud

Scope

The scopes used for the OAuth or AzureAD flow. Should be separated with a whitespace. For the OAuth flow, it defaults to the following: ProjectAdmin.Manage Projects.Write ProjectResources.Write ProjectReporting.Read. A list of the available scopes and their aliases can be found here: https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/authorization-code-oauth-flow-for-sharepoint-add-ins?redirectedfrom=MSDN#permission-scope-aliases-and-the-oauthauthorizeaspx-page. For the AzureAD flow, it deafults to the following: offline_access https://MyOrganization.sharepoint.com/ProjectWebApp.FullControl https://MyOrganization.sharepoint.com/AllSites.FullControl. A list of the available Azure scopes can be found under API Permissions > SharePoint when customizing any app in the Azure Portal > App Registrations page.

Data Type

string

Default Value

""

Remarks

The scopes used for the OAuth or AzureAD flow. Should be separated with a whitespace. For the OAuth flow, it defaults to the following: ProjectAdmin.Manage Projects.Write ProjectResources.Write. For the AzureAD flow, it deafults to the following: offline_access https://MyOrganization.sharepoint.com/ProjectWebApp.FullControl https://MyOrganization.sharepoint.com/AllSites.FullControl.

CData Cloud

State

Optional value for representing extra OAuth state information.

Data Type

string

Default Value

""

Remarks

Optional value for representing extra OAuth state information.

CData Cloud

OAuthVerifier

The verifier code returned from the OAuth authorization URL.

Data Type

string

Default Value

""

Remarks

The verifier code returned from the OAuth authorization URL. This can be used on systems where a browser cannot be launched such as headless systems.

Authentication on Headless Machines

See to obtain the OAuthVerifier value.

Set OAuthSettingsLocation along with OAuthVerifier. When you connect, the Cloud exchanges the OAuthVerifier for the OAuth authentication tokens and saves them, encrypted, to the specified file.

Once the OAuth settings file has been generated, you can remove OAuthVerifier from the connection properties and connect with OAuthSettingsLocation set.

To automatically refresh the OAuth token values, set OAuthSettingsLocation and additionally set InitiateOAuth to REFRESH.

CData Cloud

OAuthRefreshToken

The OAuth refresh token for the corresponding OAuth access token.

Data Type

string

Default Value

""

Remarks

The OAuthRefreshToken property is used to refresh the OAuthAccessToken when using OAuth authentication.

CData Cloud

OAuthExpiresIn

The lifetime in seconds of the OAuth AccessToken.

Data Type

string

Default Value

""

Remarks

Pair with OAuthTokenTimestamp to determine when the AccessToken will expire.

CData Cloud

OAuthTokenTimestamp

The Unix epoch timestamp in milliseconds when the current Access Token was created.

Data Type

string

Default Value

""

Remarks

Pair with OAuthExpiresIn to determine when the AccessToken will expire.

CData Cloud

SSL

This section provides a complete list of the SSL properties you can configure in the connection string for this provider.


PropertyDescription
SSLServerCertThe certificate to be accepted from the server when connecting using TLS/SSL.
CData Cloud

SSLServerCert

The certificate to be accepted from the server when connecting using TLS/SSL.

Data Type

string

Default Value

""

Remarks

If using a TLS/SSL connection, this property can be used to specify the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine is rejected.

This property can take the following forms:

Description Example
A full PEM Certificate (example shortened for brevity) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
A path to a local file containing the certificate C:\cert.cer
The public key (example shortened for brevity) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
The MD5 Thumbprint (hex values can also be either space or colon separated) ecadbdda5a1529c58a1e9e09828d70e4
The SHA1 Thumbprint (hex values can also be either space or colon separated) 34a929226ae0819f2ec14b4a3d904f801cbb150d

If not specified, any certificate trusted by the machine is accepted.

Use '*' to signify to accept all certificates. Note that this is not recommended due to security concerns.

CData Cloud

Firewall

This section provides a complete list of the Firewall properties you can configure in the connection string for this provider.


PropertyDescription
FirewallTypeThe protocol used by a proxy-based firewall.
FirewallServerThe name or IP address of a proxy-based firewall.
FirewallPortThe TCP port for a proxy-based firewall.
FirewallUserThe user name to use to authenticate with a proxy-based firewall.
FirewallPasswordA password used to authenticate to a proxy-based firewall.
CData Cloud

FirewallType

The protocol used by a proxy-based firewall.

Possible Values

NONE, TUNNEL, SOCKS4, SOCKS5

Data Type

string

Default Value

"NONE"

Remarks

This property specifies the protocol that the Cloud will use to tunnel traffic through the FirewallServer proxy. Note that by default, the Cloud connects to the system proxy; to disable this behavior and connect to one of the following proxy types, set ProxyAutoDetect to false.

Type Default Port Description
TUNNEL 80 When this is set, the Cloud opens a connection to Microsoft Project and traffic flows back and forth through the proxy.
SOCKS4 1080 When this is set, the Cloud sends data through the SOCKS 4 proxy specified by FirewallServer and FirewallPort and passes the FirewallUser value to the proxy, which determines if the connection request should be granted.
SOCKS5 1080 When this is set, the Cloud sends data through the SOCKS 5 proxy specified by FirewallServer and FirewallPort. If your proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes.

To connect to HTTP proxies, use ProxyServer and ProxyPort. To authenticate to HTTP proxies, use ProxyAuthScheme, ProxyUser, and ProxyPassword.

CData Cloud

FirewallServer

The name or IP address of a proxy-based firewall.

Data Type

string

Default Value

""

Remarks

This property specifies the IP address, DNS name, or host name of a proxy allowing traversal of a firewall. The protocol is specified by FirewallType: Use FirewallServer with this property to connect through SOCKS or do tunneling. Use ProxyServer to connect to an HTTP proxy.

Note that the Cloud uses the system proxy by default. To use a different proxy, set ProxyAutoDetect to false.

CData Cloud

FirewallPort

The TCP port for a proxy-based firewall.

Data Type

int

Default Value

0

Remarks

This specifies the TCP port for a proxy allowing traversal of a firewall. Use FirewallServer to specify the name or IP address. Specify the protocol with FirewallType.

CData Cloud

FirewallUser

The user name to use to authenticate with a proxy-based firewall.

Data Type

string

Default Value

""

Remarks

The FirewallUser and FirewallPassword properties are used to authenticate against the proxy specified in FirewallServer and FirewallPort, following the authentication method specified in FirewallType.

CData Cloud

FirewallPassword

A password used to authenticate to a proxy-based firewall.

Data Type

string

Default Value

""

Remarks

This property is passed to the proxy specified by FirewallServer and FirewallPort, following the authentication method specified by FirewallType.

CData Cloud

Proxy

This section provides a complete list of the Proxy properties you can configure in the connection string for this provider.


PropertyDescription
ProxyAutoDetectThis indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
ProxyServerThe hostname or IP address of a proxy to route HTTP traffic through.
ProxyPortThe TCP port the ProxyServer proxy is running on.
ProxyAuthSchemeThe authentication type to use to authenticate to the ProxyServer proxy.
ProxyUserA user name to be used to authenticate to the ProxyServer proxy.
ProxyPasswordA password to be used to authenticate to the ProxyServer proxy.
ProxySSLTypeThe SSL type to use when connecting to the ProxyServer proxy.
ProxyExceptionsA semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .
CData Cloud

ProxyAutoDetect

This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.

Data Type

bool

Default Value

true

Remarks

This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.

To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.

CData Cloud

ProxyServer

The hostname or IP address of a proxy to route HTTP traffic through.

Data Type

string

Default Value

""

Remarks

The hostname or IP address of a proxy to route HTTP traffic through. The Cloud can use the HTTP, Windows (NTLM), or Kerberos authentication types to authenticate to an HTTP proxy.

If you need to connect through a SOCKS proxy or tunnel the connection, see FirewallType.

By default, the Cloud uses the system proxy. If you need to use another proxy, set ProxyAutoDetect to false.

CData Cloud

ProxyPort

The TCP port the ProxyServer proxy is running on.

Data Type

int

Default Value

80

Remarks

The port the HTTP proxy is running on that you want to redirect HTTP traffic through. Specify the HTTP proxy in ProxyServer. For other proxy types, see FirewallType.

CData Cloud

ProxyAuthScheme

The authentication type to use to authenticate to the ProxyServer proxy.

Possible Values

BASIC, DIGEST, NONE, NEGOTIATE, NTLM, PROPRIETARY

Data Type

string

Default Value

"BASIC"

Remarks

This value specifies the authentication type to use to authenticate to the HTTP proxy specified by ProxyServer and ProxyPort.

Note that the Cloud will use the system proxy settings by default, without further configuration needed; if you want to connect to another proxy, you will need to set ProxyAutoDetect to false, in addition to ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.

The authentication type can be one of the following:

  • BASIC: The Cloud performs HTTP BASIC authentication.
  • DIGEST: The Cloud performs HTTP DIGEST authentication.
  • NEGOTIATE: The Cloud retrieves an NTLM or Kerberos token based on the applicable protocol for authentication.
  • PROPRIETARY: The Cloud does not generate an NTLM or Kerberos token. You must supply this token in the Authorization header of the HTTP request.

If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.

CData Cloud

ProxyUser

A user name to be used to authenticate to the ProxyServer proxy.

Data Type

string

Default Value

""

Remarks

The ProxyUser and ProxyPassword options are used to connect and authenticate against the HTTP proxy specified in ProxyServer.

You can select one of the available authentication types in ProxyAuthScheme. If you are using HTTP authentication, set this to the user name of a user recognized by the HTTP proxy. If you are using Windows or Kerberos authentication, set this property to a user name in one of the following formats:

user@domain
domain\user

CData Cloud

ProxyPassword

A password to be used to authenticate to the ProxyServer proxy.

Data Type

string

Default Value

""

Remarks

This property is used to authenticate to an HTTP proxy server that supports NTLM (Windows), Kerberos, or HTTP authentication. To specify the HTTP proxy, you can set ProxyServer and ProxyPort. To specify the authentication type, set ProxyAuthScheme.

If you are using HTTP authentication, additionally set ProxyUser and ProxyPassword to HTTP proxy.

If you are using NTLM authentication, set ProxyUser and ProxyPassword to your Windows password. You may also need these to complete Kerberos authentication.

For SOCKS 5 authentication or tunneling, see FirewallType.

By default, the Cloud uses the system proxy. If you want to connect to another proxy, set ProxyAutoDetect to false.

CData Cloud

ProxySSLType

The SSL type to use when connecting to the ProxyServer proxy.

Possible Values

AUTO, ALWAYS, NEVER, TUNNEL

Data Type

string

Default Value

"AUTO"

Remarks

This property determines when to use SSL for the connection to an HTTP proxy specified by ProxyServer. This value can be AUTO, ALWAYS, NEVER, or TUNNEL. The applicable values are the following:

AUTODefault setting. If the URL is an HTTPS URL, the Cloud will use the TUNNEL option. If the URL is an HTTP URL, the component will use the NEVER option.
ALWAYSThe connection is always SSL enabled.
NEVERThe connection is not SSL enabled.
TUNNELThe connection is through a tunneling proxy. The proxy server opens a connection to the remote host and traffic flows back and forth through the proxy.

CData Cloud

ProxyExceptions

A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .

Data Type

string

Default Value

""

Remarks

The ProxyServer is used for all addresses, except for addresses defined in this property. Use semicolons to separate entries.

Note that the Cloud uses the system proxy settings by default, without further configuration needed; if you want to explicitly configure proxy exceptions for this connection, you need to set ProxyAutoDetect = false, and configure ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.

CData Cloud

Logging

This section provides a complete list of the Logging properties you can configure in the connection string for this provider.


PropertyDescription
LogfileA filepath which designates the name and location of the log file.
VerbosityThe verbosity level that determines the amount of detail included in the log file.
LogModulesCore modules to be included in the log file.
MaxLogFileSizeA string specifying the maximum size in bytes for a log file (for example, 10 MB).
MaxLogFileCountA string specifying the maximum file count of log files.
CData Cloud

Logfile

A filepath which designates the name and location of the log file.

Data Type

string

Default Value

""

Remarks

Once this property is set, the Cloud will populate the log file as it carries out various tasks, such as when authentication is performed or queries are executed. If the specified file doesn't already exist, it will be created.

Connection strings and version information are also logged, though connection properties containing sensitive information are masked automatically.

If a relative filepath is supplied, the location of the log file will be resolved based on the path found in the Location connection property.

For more control over what is written to the log file, you can adjust the Verbosity property.

Log contents are categorized into several modules. You can show/hide individual modules using the LogModules property.

To edit the maximum size of a single logfile before a new one is created, see MaxLogFileSize.

If you would like to place a cap on the number of logfiles generated, use MaxLogFileCount.

CData Cloud

Verbosity

The verbosity level that determines the amount of detail included in the log file.

Data Type

string

Default Value

"1"

Remarks

The verbosity level determines the amount of detail that the Cloud reports to the Logfile. Verbosity levels from 1 to 5 are supported. These are detailed in the Logging page.

CData Cloud

LogModules

Core modules to be included in the log file.

Data Type

string

Default Value

""

Remarks

Only the modules specified (separated by ';') will be included in the log file. By default all modules are included.

See the Logging page for an overview.

CData Cloud

MaxLogFileSize

A string specifying the maximum size in bytes for a log file (for example, 10 MB).

Data Type

string

Default Value

"100MB"

Remarks

When the limit is hit, a new log is created in the same folder with the date and time appended to the end. The default limit is 100 MB. Values lower than 100 kB will use 100 kB as the value instead.

Adjust the maximum number of logfiles generated with MaxLogFileCount.

CData Cloud

MaxLogFileCount

A string specifying the maximum file count of log files.

Data Type

int

Default Value

-1

Remarks

When the limit is hit, a new log is created in the same folder with the date and time appended to the end and the oldest log file will be deleted.

The minimum supported value is 2. A value of 0 or a negative value indicates no limit on the count.

Adjust the maximum size of the logfiles generated with MaxLogFileSize.

CData Cloud

Schema

This section provides a complete list of the Schema properties you can configure in the connection string for this provider.


PropertyDescription
LocationA path to the directory that contains the schema files defining tables, views, and stored procedures.
BrowsableSchemasThis property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
TablesThis property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.
ViewsRestricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.
SchemaThe type of schema to use: ODataV1 or ODataV2.
CData Cloud

Location

A path to the directory that contains the schema files defining tables, views, and stored procedures.

Data Type

string

Default Value

"%APPDATA%\\CData\\MicrosoftProject Data Provider\\Schema"

Remarks

The path to a directory which contains the schema files for the Cloud (.rsd files for tables and views, .rsb files for stored procedures). The folder location can be a relative path from the location of the executable. The Location property is only needed if you want to customize definitions (for example, change a column name, ignore a column, and so on) or extend the data model with new tables, views, or stored procedures.

Note: Given that this Cloud supports multiple schemas, the structure for Microsoft Project custom schema files is as follows:

  • Each schema is given a folder corresponding to that schema name.
  • These schema folders are contained in a parent folder.
  • The parent folder should be set as the Location, not an individual schema's folder.

If left unspecified, the default location is "%APPDATA%\\CData\\MicrosoftProject Data Provider\\Schema" with %APPDATA% being set to the user's configuration directory:

CData Cloud

BrowsableSchemas

This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.

Data Type

string

Default Value

""

Remarks

Listing the schemas from databases can be expensive. Providing a list of schemas in the connection string improves the performance.

CData Cloud

Tables

This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.

Data Type

string

Default Value

""

Remarks

Listing the tables from some databases can be expensive. Providing a list of tables in the connection string improves the performance of the Cloud.

This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.

Specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.

Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.

CData Cloud

Views

Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.

Data Type

string

Default Value

""

Remarks

Listing the views from some databases can be expensive. Providing a list of views in the connection string improves the performance of the Cloud.

This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.

Specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.

Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.

CData Cloud

Schema

The type of schema to use: ODataV1 or ODataV2.

Possible Values

ODataV2, ODataV1

Data Type

string

Default Value

"ODataV2"

Remarks

The schemas available are ODataV2 (MS Project's static schema with full CRUD support) and ODataV1 (MS Project's dynamic schema with read-only capabilities).

  • The ODataV1 schema can only be used to read data, but schemas are read dynamically and the custom fields are exposed.
  • The ODataV2 schema can be used to perform read, insert, update, and delete operations, but schemas are fixed. Main fields are dynamically retrieved, however custom fields are not exposed.

CData Cloud

Caching

This section provides a complete list of the Caching properties you can configure in the connection string for this provider.


PropertyDescription
AutoCacheAutomatically caches the results of SELECT queries into a cache database specified by either CacheLocation or both of CacheConnection and CacheProvider .
CacheLocationSpecifies the path to the cache when caching to a file.
CacheToleranceThe tolerance for stale data in the cache specified in seconds when using AutoCache .
OfflineUse offline mode to get the data from the cache instead of the live source.
CacheMetadataThis property determines whether or not to cache the table metadata to a file store.
CData Cloud

AutoCache

Automatically caches the results of SELECT queries into a cache database specified by either CacheLocation or both of CacheConnection and CacheProvider .

Data Type

bool

Default Value

false

Remarks

When AutoCache = true, the Cloud automatically maintains a cache of your table's data in the database of your choice.

Setting the Caching Database

When AutoCache = true, the Cloud caches to a simple, file-based cache. You can configure its location or cache to a different database with the following properties:

  • CacheLocation: Specifies the path to the file store.
  • CacheProvider and CacheConnection: Specifies a driver to a database and the connection string.

See Also

  • CacheMetadata: This property reduces the amount of metadata that crosses the network by persisting table schemas retrieved from the Microsoft Project metadata. Metadata then needs to be retrieved only once instead of every connection.
  • Explicitly Caching Data: This section provides more examples of using AutoCache in Offline mode.
  • CACHE Statements: You can use the CACHE statement to persist any SELECT query, as well as manage the cache; for example, refreshing schemas.

CData Cloud

CacheLocation

Specifies the path to the cache when caching to a file.

Data Type

string

Default Value

"%APPDATA%\\CData\\MicrosoftProject Data Provider"

Remarks

The CacheLocation is a simple, file-based cache.

If left unspecified, the default location is "%APPDATA%\\CData\\MicrosoftProject Data Provider" with %APPDATA% being set to the user's configuration directory:

See Also

  • AutoCache: Set to implicitly create and maintain a cache for later offline use.
  • CacheMetadata: Set to persist the Microsoft Project catalog in CacheLocation.

CData Cloud

CacheTolerance

The tolerance for stale data in the cache specified in seconds when using AutoCache .

Data Type

int

Default Value

600

Remarks

The tolerance for stale data in the cache specified in seconds. This only applies when AutoCache is used. The Cloud checks with the data source for newer records after the tolerance interval has expired. Otherwise, it returns the data directly from the cache.

CData Cloud

Offline

Use offline mode to get the data from the cache instead of the live source.

Data Type

bool

Default Value

false

Remarks

When Offline = true, all queries execute against the cache as opposed to the live data source. In this mode, certain queries like INSERT, UPDATE, DELETE, and CACHE are not allowed.

CData Cloud

CacheMetadata

This property determines whether or not to cache the table metadata to a file store.

Data Type

bool

Default Value

false

Remarks

As you execute queries with this property set, table metadata in the Microsoft Project catalog are cached to the file store specified by CacheLocation if set or the user's home directory otherwise. A table's metadata will be retrieved only once, when the table is queried for the first time.

When to Use CacheMetadata

The Cloud automatically persists metadata in memory for up to two hours when you first discover the metadata for a table or view and therefore, CacheMetadata is generally not required. CacheMetadata becomes useful when metadata operations are expensive such as when you are working with large amounts of metadata or when you have many short-lived connections.

When Not to Use CacheMetadata

  • When you are working with volatile metadata: Metadata for a table is only retrieved the first time the connection to the table is made. To pick up new, changed, or deleted columns, you would need to delete and rebuild the metadata cache. Therefore, it is best to rely on the in-memory caching for cases where metadata changes often.
  • When you are caching to a database: CacheMetadata can only be used with CacheLocation. If you are caching to another database with the CacheProvider and CacheConnection properties, use AutoCache to cache implicitly. Or, use CACHE Statements to cache explicitly.

CData Cloud

Miscellaneous

This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.


PropertyDescription
MaxRowsLimits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
OtherThese hidden properties are used only in specific use cases.
PagesizeThe maximum number of results to return per page from Microsoft Project.
PseudoColumnsThis property indicates whether or not to include pseudo columns as columns to the table.
ReadonlyYou can use this property to enforce read-only access to Microsoft Project from the provider.
RTKThe runtime key used for licensing.
TimeoutThe value in seconds until the timeout error is thrown, canceling the operation.
UserDefinedViewsA filepath pointing to the JSON configuration file containing your custom views.
UseSimpleNamesBoolean determining if simple names should be used for tables and columns.
CData Cloud

MaxRows

Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.

Data Type

int

Default Value

-1

Remarks

Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.

CData Cloud

Other

These hidden properties are used only in specific use cases.

Data Type

string

Default Value

""

Remarks

The properties listed below are available for specific use cases. Normal driver use cases and functionality should not require these properties.

Specify multiple properties in a semicolon-separated list.

Integration and Formatting

DefaultColumnSizeSets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000.
ConvertDateTimeToGMTDetermines whether to convert date-time values to GMT, instead of the local time of the machine.
RecordToFile=filenameRecords the underlying socket data transfer to the specified file.

CData Cloud

Pagesize

The maximum number of results to return per page from Microsoft Project.

Data Type

int

Default Value

400

Remarks

The Pagesize property affects the maximum number of results to return per page from Microsoft Project. Setting a higher value may result in better performance at the cost of additional memory allocated per page consumed.

CData Cloud

PseudoColumns

This property indicates whether or not to include pseudo columns as columns to the table.

Data Type

string

Default Value

""

Remarks

This setting is particularly helpful in Entity Framework, which does not allow you to set a value for a pseudo column unless it is a table column. The value of this connection setting is of the format "Table1=Column1, Table1=Column2, Table2=Column3". You can use the "*" character to include all tables and all columns; for example, "*=*".

CData Cloud

Readonly

You can use this property to enforce read-only access to Microsoft Project from the provider.

Data Type

bool

Default Value

false

Remarks

If this property is set to true, the Cloud will allow only SELECT queries. INSERT, UPDATE, DELETE, and stored procedure queries will cause an error to be thrown.

CData Cloud

RTK

The runtime key used for licensing.

Data Type

string

Default Value

""

Remarks

The RTK property may be used to license a build.

CData Cloud

Timeout

The value in seconds until the timeout error is thrown, canceling the operation.

Data Type

int

Default Value

60

Remarks

If Timeout = 0, operations do not time out. The operations run until they complete successfully or until they encounter an error condition.

If Timeout expires and the operation is not yet complete, the Cloud throws an exception.

CData Cloud

UserDefinedViews

A filepath pointing to the JSON configuration file containing your custom views.

Data Type

string

Default Value

""

Remarks

User Defined Views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The Cloud automatically detects the views specified in this file.

You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the Cloud.

This User Defined View configuration file is formatted as follows:

  • Each root element defines the name of a view.
  • Each root element contains a child element, called query, which contains the custom SQL query for the view.

For example:

{
	"MyView": {
		"query": "SELECT * FROM Projects WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}
Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"

CData Cloud

UseSimpleNames

Boolean determining if simple names should be used for tables and columns.

Data Type

bool

Default Value

false

Remarks

Microsoft Project tables and columns can use special characters in names that are normally not allowed in standard databases. UseSimpleNames makes the Cloud easier to use with traditional database tools.

Setting UseSimpleNames to true will simplify the names of tables and columns returned. It will enforce a naming scheme such that only alphanumeric characters and the underscore are valid for the displayed table and column names. Any nonalphanumeric characters will be converted to an underscore.

Copyright (c) 2022 CData Software, Inc. - All rights reserved.
Build 22.0.8389