Integration Hub
Introduction
The purpose of this document is to provide full details regarding Sensei’s Integration Hub solution. This will include:
What Integration Hub is.
What it is used for.
Full solution architecture details.
Sensei’s approach to integration.
Explanation of support integration methods.
Solution Overview
What is Integration Hub?
Sensei Integration Hub™ is a proprietary application developed by Sensei. It is a cloud-based solution enabling integration between Project Online and Line of Business systems. It is tightly couple with Sensei Reporting Hub™ and can be used to update objects within this database.
What is it used for?
|
What can be updated in Project Online?
The table below articulates what data can be updated in Project Online utilising Sensei Integration Hub:
ProjectsIntegration Hub can be used to update projects in Project Online. Project-level fields can be updated e.g. Program, Budget, Strategic Impact, etc. |
|
---|---|
ResourcesIntegration Hub can be used to update resources in Project Online. Resource-level fields can be updated e.g. Business Unit, Skillset, Manager, etc. |
|
Resource Calendar ExceptionsEach Project Online resource has their own calendar. These calendars can be used to track periods of unavailability (e.g. Annual leave). These are referred to as calendar exceptions. Integration hub can be used to populate these exceptions from Line of Business systems (e.g. corporate HR systems). |
|
Resource Cost RatesEach Project Online resource has up to 5 cost rates. These rates can be used to forecast costs in project schedules. Integration hub can be used to populate these rates from Line of Business systems (e.g. corporate financial systems). |
|
Look Up TablesLook Up tables are utilised to provide selectable values for dropdown fields. These can be updated via Integration Hub, mitigating the need to manage this data in multiple locations. |
|
SharePoint ListsProject Online utilises SharePoint lists to capture data such as Risks, Issues, Change Requests, etc. Items in these lists can be populated/updated using Integration Hub. |
|
Reporting Hub tablesReporting Hub is Sensei’s data warehouse for Project Online. Integration hub can write data to tables within this data warehouse where applicable. |
Integration Approach
Overview
Integration Hub enables bi-directional integration with customer IT systems. This is achieved by import and exporting data from Project Online.
Project Online ExportThis involves data being “exported” from Project Online for upload to a customer’s Line of Business (LOB) systems. |
|
---|---|
Project Online ImportThis involves data being “imported” into Project Online from LOB systems. |
Entity files
The default integration method in Sensei Integration Hub™ utilises entity files (flat files) to enable integration between Project Online and LOB systems. These entity files will contain the required data to be updated. Further details on entity files are articulated in a subsequent section of this document.
Project Online Import
Below is a diagram highlighting how entity files are exported from Project Online via Sensei Integration Hub™:
Project Online Export
Below is a diagram highlighting how entity files are exported from Project Online via Sensei Integration Hub™:
Data Transfers
Overview
The data transfer will be facilitated by utilising flat file (.csv) format. Sensei Integration Hub provides an endpoint for the customer to upload and download the .csv files (Azure Storage Container). Sensei’s Integration Hub will handle the generation of .csv files containing Project Online data and the parsing of .csv files.
Sensei will ensure that the .csv files (for upload to SAP) are made available in the Azure Storage Container for the customer to extract (pull data).
Data Encryption
Data transfers in Office 365 and Project Online
Data transferred as part of the operation of Office 365 and Project Online is transferred over HTTPS with TLS.
Data encryption in Office 365 and Project Online
Data transferred as part of the operation of Office 365 and Project Online is transferred over HTTPS. Microsoft do not disclose the data encryption at rest policy for Project Online other than to specify that NIST 800-88 Guidelines on Media Sanitization are followed, which address the principal concern of ensuring that data is not unintentionally released. These guidelines encompass both electronic and physical sanitization.
Data transfers between Office 365 and Sensei Reporting/Integration Hub
Data Transferred as part of system integration efforts are sent over HTTPS to Azure Storage Blob containers secured by SAS tokens.
Data encryption between Office 365 and Sensei Reporting/Integration Hub
Where possible (contingent on user browsers) Sensei employs HTTPS/TLS 1.2 4096 bit key, with perfect forward secrecy (Diffie-Hellman key exchange) for data in transit. For data at rest, the Transparent Data Encryption SQL Azure feature is enabled for all customer databases that ensures the data is encrypted before it is written to disk.
De-coupling of Integration components
This approach of using the Azure storage blob container enables the customer and Sensei components of the integration to be de-coupled. This approach yields the following benefits:
Benefit | Details |
---|---|
Customer Integration components |
|
Sensei Integration components |
|
Unavailability |
|
Improved Issue Resolution |
|
Postpone |
|
Transient Error Retry |
|
Entity Files
Field Types
The table below provides details regarding the field types that are used in the entity files:
Field Type | Example | Details |
---|---|---|
Text/String | Project Name | Alpha-numeric data. Commas, line breaks and semi-colons must be encapsulated in double-quotes. |
Numeric | 2017 | Whole number integers (e.g. Year). |
Date/Time | 2016-07-15T00:04:58+00:00 | Date information is to be formatted in ISO 8601 standard. |
Decimal | 1232130.56 | Number with decimals and no millions/thousand separators. |
Boolean | TRUE | Flag field (Yes / No). Can be stored as 1 or 0 in some databases. |
CSV Formatting
CSV Element | Details |
---|---|
File |
|
Format |
|
Header |
|
Field Separator |
|
Number Format |
|
Data Format |
|
String Format |
|
Line Breaks |
|
Authentication Renewal
For HTTPS and Azure Storage endpoints, a renewal of the authentication (certificate or SAS token) must be performed annually. SharePoint Online access uses an account which can be setup to change the password.
Azure Storage (HTTPS): |
|
---|---|
SharePoint Online document library (HTTPS): |
|
File Location and File names
Inside the endpoint provided, two locations will exist:
/XXXX-in/ | Files created by the Customer for import to Project Online via Integration Hub. |
---|---|
/XXXX-out/ | Files created by Integration Hub for export to the Customer’s Line of Business systems (e.g. Corporate Financial System, etc.). |
Load Process / Timing
The Sensei Integration Hub picks up the uploaded files to the Azure Storage Blob by the Customer within a ten-minute timeframe.
The Sensei Integration Hub can export a file / files to the Azure Storage Blob hourly or daily.
Automating transfers to and from Azure Storage
Integration Hub supports two key methods for uploading/downloading data from Azure Storage:
Manually.
Automated.
Manual Approach
The manual approach requires a user to login to Sensei Hub to either upload or download files via the user interface. The manual approach for uploading and downloading files is covered off in these sections of the document:
Automated Approach
For regular file uploads or downloads, it is often more convenient to automate the file transfer process. The diagram below articulates the approach at a high-level.
AzCopy
There are many methods to automating the file transfer process of files between the Azure Storage Container and a customer’s environment. One of the available methods that Sensei recommends involves using AzCopy.
What is AzCopy?
AzCopy is a command-line utility that you can use to copy blobs or files to or from an Azure storage account. This utility can be used to upload and download files from the Azure Storage Container linked to Sensei Integration Hub™.
Using AzCopy
The process below articulates the steps involved in setting up AzCopy to upload and download files from the Azure Storage Container.
Getting Started
Download AzCopy.zip to the computer or server:
https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10
Once downloaded, extract all files to a shared location:
Open the folder (where the files have been extracted to) and copy the link (this is required for the PowerShell scripting process):
Example location:
C:\Users\username\folder\AzCopy\azcopy_windows_amd64_10.1.2
Create folders for file upload/download
Create folders for uploading and downloading files. Note – These folders must be in the root where you downloaded the AzCopy components to.
Example folder locations:
Upload | C:\Users\username\folder\AzCopy\CSVsIN |
---|---|
Download | C:\Users\username\folder\AzCopy\CSVsOUT |
Create PowerShell scripts
Before you create the PowerShell scripts you will need to generate a SAS token. Details for how to do this can be found here.
Once you have generated the SAS token (You’ll need one for downloading and one for uploading), you can create the PowerShell scripts.
Below are example scripts – You will need to modify these as per the locations you have setup and the SAS tokens generated.
Import files to Integration Hub
Configure the PowerShell script.
cd "C:\Users\username\AzCopy\azcopy_windows_amd64_10.1.2"
.\azcopy.exe copy "C:\Users\username\AzCopy\CSVsIN"
Export files from Integration Hub
Configure PowerShell script to export files from Integration Hub.
cd "C:\Users\username\AzCopy\azcopy_windows_amd64_10.1.2"
"C:\Users\username\AzCopy\CSVsOUT"--recursive
Once you have created the PowerShell scripts, save them to the same directory as the upload and download folders.
Automating the Process
The final step is to automate the process to run the scripts to upload/download the files. This can be done using a wide variety of scheduling tools. The process below utilises the Windows task scheduler.
Open Task Scheduler (using Search). sensei@powerlinkcomau.onmicrosoft.com PE3WLPT7zo1yZNh1umMq
Select Create Task from the right-hand pane of options:
Give the task a name and check the Run with highest privileges option:
Select the Triggers tab and set a schedule to run the job. Click OK to save changes.
Select the Actions tab, the click New… to add an action:
Add in the following:
Program/Script: Powershell.exe
Add arguments (optional): & ‘Folder location\script.extention’
Example = & 'C:\Users\username\AzCopy\AzCopy-ImportAllFiles.ps1'
Click Ok to create the job.
Click on Task Scheduler Library to find the job
Jobs can be manually run from the list of jobs by selecting them name, then clicking on Run from the Actions pane.
Error Logging
Sensei Reporting Hub™ captures extensive logs for Project Online including details of all Integration Hub jobs. These jobs are stored in the Reporting databases in two tables:
Schema | Table Name | Details |
---|---|---|
Integration | Operation Log |
|
Operation Status |
|
|
dbo | IPMO Import Log |
|
IMPO Import Status |
|
Sensei has notifications setup to provide alerts for job failures. These aren’t sent to customers directly and Sensei’s Customer Care team triages these logs and will notify customers when required to be involved in troubleshooting errors.
Sensei Hub
Overview
|
Report Designer AccountsSensei Hub users can create report designer accounts for themselves or other users. These accounts are required if customer wish to create their own standard reporting using SQL Server Reporting Services (SSRS). |
|
---|---|
Database AccessSensei Hub users can control who has access to the reporting hub database and can nominate IP addresses and IP ranges that have access. This process is more commonly referred to as IP whitelisting. |
|
Configuring Integration Import JobsSensei Hub users can create, edit, and delete import jobs. Details on how these jobs are created is covered off in a subsequent section of this document. |
|
Configuring Integration Export JobsSensei Hub users can create, edit, and delete export jobs. Details on how these jobs are created is covered off in a subsequent section of this document. |
Getting Started
User Account
To access Sensei Hub, log in with your Office 365 user account.
Sensei Hub Address
Sensei Hub can be accessed via the following URL:
User Interface
Once logged into Sensei Hub, you’ll land on the home page. From here you can access your Reporting Hub and Integration Hub instances.
To access, create, and edit Integration Jobs, click on the 'Integration Hub' link in the menu on the left hand-side of the page.
From here you can select the Integration Hub environment you wish to modified jobs in:
Integration Hub Operations
There are two types of Integration Hub jobs that can be created and/or edited via Sensei Hub:
Project Online Export OperationThis involves data being “exported” from Project Online for upload to a customer’s Line of Business (LOB) systems. |
|
---|---|
Project Online Import OperationThis involves data being “imported” into Project Online from LOB systems. |
The subsequent sections provide details on how to configure these two types of jobs using Sensei Hub.
Import Operations
Overview
Import jobs are used to update information in Project Online. However, they can also be used to update information in Reporting Hub. This is useful for integration of data that only needs to be provided for in reporting (e.g. Actual costs from a corporate financial solution). |
Step | Details |
---|---|
Process |
|
Update |
|
Upload |
|
Pre-requisites
CSV File: Prior to configuring an import job in Sensei Hub, a valid .CSV file must be created. This file must be formatted as per the instructions in the CSV Formatting section of this document. It must also contain an identifier so that matching records can be ascertained (e.g. Project Identifier, if projects are to be updated). |
Process
Once you have your CSV file in place, the next step is to configure the step that will process the file once it is uploaded (either manually or via HTTPS).
To do this, select the Add import operation from the process files section.
Once done the New import operation dialog box will open.
Firstly, select choose file to upload the CSV file you want to configure the process job for. Once done click on Analyse example file.
Once done, Sensei Hub will populate the form inputs based on the analysis of the CSV file:
These settings can be left with their default values:
Sensei Hub will name the integration hub table as per the file name. This can be overwritten as required.
The file analysis will generate field names from the CSV file and will analyse the field type. You may need to change these settings. For example, in the above example, the amount contains two decimal places, so the configuration will need to be update.
Import Operation
There are two types of import operation:
The import will overwrite all existing data in the target table.
Data imported will append data already in the SQL table.
The default option is the first one. This caters for batch update operations. The second option can be used when you are performing delta-sync operations. Once you have updated the setings, click on Save to apply the process.
Update
SQL View: For Project Online to be updated, an SQL view is required to be created in the Reporting Hub database. There is a specific nomenclature for the view name and structure depending on which object is being updated. Further details are provided below regarding this. |
To update PPM, click on the Add update PPM icon, then select Project Online.
A dialog box will pop up. Target is the object(s) to update, further details regarding these are provided below.
Frequency can be either hourly or daily.
Update Types
The following object(s) can be updated in PPM via the Sensei Hub interface:
ProjectsIntegration Hub can be used to update projects in Project Online. Any project-level data can be updated e.g. Program, Budget, Strategic Impact, etc. |
|
---|---|
ResourcesIntegration Hub can be used to update resources in Project Online. Any resource-level data can be updated e.g. Business Unit, Skillset, Manager, etc. |
|
Resource Calendar ExceptionsEach Project Online resource has their own calendar. These calendars can be used to track periods of unavailability (e.g. Annual leave). These are referred to as calendar exceptions. Integration hub can be used to populate these exceptions from Line of Business systems (e.g. corporate HR systems). |
|
Resource Cost RatesEach Project Online resource has up to 5 cost rates. These rates can be used to forecast costs in project schedules. Integration hub can be used to populate these rates from Line of Business systems (e.g. corporate financial systems). |
|
Look Up TablesLook Up tables are utilised to provide selectable values for dropdown fields. These can be updated via Integration Hub, mitigating the need to manage this data in multiple locations. |
When you select the required target, the dialog box will change to provide you with specific information regarding the system requirements for the update.
SharePoint lists cannot be populated via the User Interface. If you have a requirement to update a SharePoint list, please contact your customer care team.
The sections below provide details for how to update these objects:
Update Projects
|
Update Resources
|
Update Resource Calendar Exceptions
|
Update Resource Cost Rates
|
Update Look Up Tables
|
Update SharePoint lists
Details for the Reporting Hub view to update SharePoint data.
The SQL must return the following results. Each row is understood by the Integration Hub as a task to create/update or delete a SharePoint item:
- WebId(primary) or WebUrl
- ListId(primary) or ListTitle or fixed config
TargetSharePointListTitle
to target only one list - ItemId - can be
NULL
for a new list item - DeleteItem - flag(bool)
- 0=>Create or Update list item
- 1=>delete this list item
- all other fields to be updated based on the Internal name or title or Guid of the field.
See table [dbo].[IPMO_WssListFieldMetadata]
for the internal name of a field.
Upload
There are two mechanisms for upload files to Integration Hub:
Manual Upload.
Via Azure Storage Container.
Both methods are covered off in the subsequent sections.
Manual Upload
Select Storage Ad hoc Testing:
Select Choose File, select CSV file, then click Upload.
This will then upload the file to Integration hub. The next two steps (Process and Update PPM) are required for the data to be processed in Project Online.
Upload via Azure Storage
This process is recommended for customers who wish to automate the file transfer process between their line of business systems and integration hub.
This transfer mechanism requires a SAS token to be generate. To do this select Storage Primary Policy.
Select Create SAS from the dialog box that pops up.
Once done specific your IP address or the IP range which should have the ability to upload files to the Azure Storage Container. Then click on Create SAS.
Once done, a SAS Access Token will be generated. Make a note of the Full URL and SAS as these will be required for the file transfer method you use to post files to Integration Hub.
Export Operations
Overview
Export jobs are used to extract key data from Project Online and/or Reporting Hub so that the data can used to update a customer’s Line of Business systems (e.g. Project forecasts). |
Step | Details |
---|---|
Generate |
|
Download |
|
Pre-requisites
SQL View / Query: To generate files for export, an SQL view or query must be coded to compile data from Reporting Hub objects (e.g. Tables and Views). Once this is in place, the steps to complete the generate process can be undertaken. |
Generate
Once you have an SQL view of query in place, you can complete the steps to generate the CSV file.
This is done by selecting Add export operation, then selecting CSV file.
Provide a name for the export operation. The file name will automatically inherit the Title. However, this can be overwritten where applicable.
Note
The File Name field can contain date formatting characters to generate filenames based on the export time and date.
e.g.
to produce:
The file formatting can be left with the default settings, unless you have a requirement to change the field separator or date formats.
Export frequency can either by Hourly or Daily.
If daily is selected, you’ll need to specify a time for the file to be generated.
Final step is to populate the SQL query box with either the SQL view name or the T-SQL statement that will generate the data output.
Once done, click on Save. Then select Activate to start generating the file.
Download
Manual Download
Select Choose File, select CSV file, then click Download.
This will then enable you to download the file from Integration hub.
Click on the file name to download it.
Download via Azure Storage
This process is recommended for customers who wish to automate the file transfer process between their line of business systems and integration hub.
This transfer mechanism requires a SAS token to be generate. To do this select Storage Primary Policy.
Select Create SAS from the dialog box that pops up.
Once done specific your IP address or the IP range which should have the ability to download files from the Azure Storage Container. Then click on Create SAS.
Once done, a SAS Access Token will be generated. Make a note of the Full URL and SAS as these will be required for the file transfer method you use to download files from Integration Hub.
Integration Data
Example Import file
Details
Purpose: | The purpose of this entity file is to enable project budgets from the customer’s corporate finance system to be uploaded to Project Online. | ||
---|---|---|---|
Type: | Batch. | Frequency: | Daily. |
Source: | Corporate Finance System. | Target: | Project Online. |
Time: | This job will occur daily between 22:00 and 01:00. | ||
File Format: | Comma Separated Values (CSV). | ||
File Name | ImportProjectBudgets_<date/time>.csv | ||
Conditions: | Nil. |
Field Name | Type | Notes |
---|---|---|
ProjectUid | Text |
|
Project Identifier | Integer |
|
Budget Code | Text |
|
Commitment Item | Integer |
|
Year | Integer |
|
Month | Integer |
|
Amount | Decimal |
|
Example File
Attached below is an example CSV file based on the details above.
Example Export file
Details
Purpose: | The purpose of this entity is to enable project forecasts from Project Online to be downloaded and updated in the customer’s corporate finance system. | ||
---|---|---|---|
Type: | Batch. | Frequency: | Daily. |
Source: | Project Online. | Target: | Corporate Finance System. |
Time: | This job will occur daily between 02:00 and 04:00. | ||
File Format: | Comma Separated Values (CSV). | ||
File Name | ProjectForecasts_<date/time>.csv | ||
Conditions: | Nil. |
Field Name | Type | Notes |
---|---|---|
ProjectUid | Text |
|
Project Identifier | Integer |
|
Year | Integer |
|
January | Decimal |
|
February | Decimal | |
March | Decimal | |
April | Decimal | |
May | Decimal | |
June | Decimal | |
July | Decimal | |
August | Decimal | |
September | Decimal | |
October | Decimal | |
November | Decimal | |
December | Decimal |