Why do we need ILAP Analytics?

Modified on Tue, 12 Aug at 7:48 AM

Table of contents

Schedule Data is not Schedule Information

  • Activity, Start, Finish, Codes…….
  • Safran/Primavera/MS Project use extensive Business Logic to convert schedule data to schedule information
  • A “traditional” BI approach where schedule data is uploaded to the BI-tool fails

ILAP Analytics can

  • Give BI tools access to both schedule data and Business Logic
  • Retain a full historic record a schedule’s development for analytics
  • Compare schedules against each other
  • Build a corporate schedule library for extensive analytics


ILAP Analytics => Reporting tool for ILAP

Implemented features


Collection of schedules

Challenge: ILAP Ontology only caters to a “single point in time” “Report Schedule” allows ILAP Analytics to track “the same” ILAP Schedule over time, thus enabling typical information demand from consumers:

  • Different versions of same schedule (original baseline, baseline, revised, live)
  • Each version over time (e g live schedule for each week)

Tracking of periodic changes and actuals

  • Changes in total scope (planned work hours increased/decreased)
  • Tracking of periodical earned hours and actual hours


Periodization of planned work

  • Total / remaining planned work time-phased and stored periodically based on start/finish, total hours, calendars and profile

Provide data to consumers (such as data lakes)

  • Rest API
  • Graph QL endpoint


IDE supported scheduling software

ILAP Analytics is an IDE supported scheduling software

Supported Host Systems


Features under development

Schedule analysis

  • Metrics
  • Attention factors


API to support delta-load


Features on roadmap


KPI tracking


Semantic representation of schedules to enable reasoning and machine learning


Model

Fields (aka ILAP terms)

  • Define which fields (including ILAP terms) are required
  • Fields of datatype “List” will be provided with a valid list of field values codes with descriptions
Fields

Schedule types

  • Enables grouping of report schedules with common characteristics and similar requirements
  • Allows you to define different content control of diff types of schedules


Report schedules

  • Collection of different versions of the same schedule
  • Subjected to calculations
  • Provides periodization of both actuals and planned values


Component Interactions

Component Interactions
  • The user can use both the desktop client and the ILAP Analytics single page application.
  • Both the desktop client and the analytics ui should be within the organization VNET or should have access to the organization VNET.
  • The desktop client interacts with the processor api and the flow api as part of IDE communication.
  • The desktop app interacts with the analytics api.
  • The analytics api interacts with the flow api (during startup) to fetch the ILAP terms.
  • The analytics api doesn’t directly interact with the background job. It inserts records int othe hangfire database.
  • The background job interacts with the flow api to fetch ILAP terms.
  • The background job interacts with the blob storage to save the ilap file
  • Both the analytics api and the background job interacts with the sql server time to time.


Inbound and out bound ports

  • TCP 443 for all the https calls.
  • TCP 1443 for database interaction.
  • UDP/TCP 53 for Azure DNS


IA-documentation


This document catalogues all parameters defined in main.sample.bicepparam, lists their default values (where provided), and explains how they configure Azure resources and behaviors.


Authentication and Authorization


Entra Id

NameValueDescription
clientId‘analytics_api_client_id_from_step-1’Placeholder for the Entra Id Application (API) client ID. Replace with your API app registration’s client ID
instancehttps://login.microsoftonline.com/The Entra Id authority endpoint. Defaults to the global Microsoft identity platform.
tenantIdyour_tenant_idTenant identifier in Entra Id. Update with your directory (tenant) ID.
audience‘analytics_api_audience_id’The Application ID URI (audience) for token validation. Must match your API’s registered scope.


publicConfigurations

NameValueDescription
analyticsApiUrl‘your-ilapanalytics-api-base-url/api’Base URL of the analytics API used by the UI. Replace with your deployed API endpoint.
authenticationAuthorityhttps://login.microsoftonline.com/your_tenant_id/Entra Id login URL for the UI app.
authenticationClientId‘application client id of UI app registration’Client ID for the UI’s Entra Id app registration.
authenticationScopes‘comma separated scopes from your API app registration’OAuth scopes that the UI will request for API access.
authenticationRedirectUri‘your-ilapanalytics-ui-base-url’Redirect URI configured in the UI app registration.


planningScheduleDeleteConfiguration

NameValueDescription
PlanningScheduleAutomaticDeletionfalseWhether to automatically delete closed planning schedules.
PlanningScheduleRetentionPeriodInDays7Days to keep closed planning schedules before deletion.


reportScheduleArchiveConfiguration

NameValueDescription
EnableReportScheduleAutomaticArchivefalseWhether to archive closed report schedules automatically.
ReportScheduleRetentionPeriodInDays7Days to retain closed report schedules in the live database before moving to archive.
QueryBatchSize3000Number of records to process per batch during archiving. Lower this to reduce load.


Core Infrastructure Parameters

ParameterTypeDefaultDescription
sqlServerParamsobjectsecure, no defaultSettings for Azure SQL Server (e.g., name, admin login, SKU).
databaseParamsobjectsecure, no defaultConfiguration for primary database (name, collation, SKU, etc.).
archiveDatabaseParamsobjectsecure, no defaultConfiguration for archive database (similar schema + settings).
appServicePlanParamsobject[]secure, no defaultArray of App Service Plan definitions (one per hosting tier).
apiAppServicePlanNamestringnoneName of the App Service Plan for the API app (required).
bgAppServicePlanNamestringnoneName of the App Service Plan for background jobs (required).
webAppServicePlanNamestringnoneName of the App Service Plan for the UI (required).
webAppParamsobjectno defaultObject containing configuration for all web apps (API, UI, etc.).
storageAccountParamsobjectno defaultSettings for Azure Storage Account (name, SKU, access tier).
moveIlapFileToBlobStoragestring‘false’Flag (‘true’/‘false’) to enable moving files to blob storage.

API & Job Execution

flowApiBaseUrl: https://dev.ilapdataexchange.promineo.no/api/api
ParameterTypeDefaultDescription
flowApiBaseUrlstringflowApiBaseUrl
Base URL for the Flow API endpoint.
flowApiAccessTokenstring‘eyJhbGciOiJIUzI…’JWT or similar token for authenticating to Flow API.
synchronizeFieldsJobSchedulestring/10  * * *’CRON schedule for the field synchronization job.
enableFieldSyncronizationstringnoneFlag to turn on/off field synchronization logic.
enableApiVersionValidationstringnoneFlag to enable API version checks.
enableFieldImportstringnoneFlag to enable importing of external fields.
SendJobStatusToIDEstringnoneFlag to send job status notifications back to the IDE.


Runtime & Deployment

ParameterTypeDefaultDescription
netFrameworkVersionstring‘v8.0’.NET version for Windows-based App Services (e.g., IIS).
linuxFxVersionstring‘DOTNETCORE|8.0’Linux runtime stack identifier for App Services.
ilapAnalyticsApiCustomDomainstring’’Custom domain for the API (if useAnalyticsApiCustomDomain=true).
useAnalyticsApiCustomDomainboolfalseFlag to switch from default FQDN to custom domain for API.
instanceInformationobjectno defaultMetadata about this deployment instance (e.g., ID, region).
dataValidationConfigurationobjectno defaultSettings for data quality and validation rules.


Note: Parameters without default values (or marked secure) are required at deployment time. Be sure to replace all placeholder strings (e.g., ‘your_tenant_id’) with actual values from your Azure environment.



Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article