Skip to content

Legacy Environment

The legacy environment consists of

  • Smart BI (a BI product sold by Delaware, a Belgium data company)
  • additional data sources, namely salary statistics

Technically, the solution runs on:

  • a SQL Server 2016 database
  • SSAS
  • SSIS

Unfortunately, it is not easy to inspect a running version of Smart BI. Also, we cannot debug.

This is how we can get a glimpse:

  • look at the tables in SQL Server via SSMS (on KDGERPVS02)
  • look at the code in SSIS (on a local version of VS 2019)

Installation of VS 2019 / SSIS

  1. Install VS 2019 (Pro or Enterprise)

    1. Install "Data Storage and Processing" workload
  2. From Extensions

    1. Install Data Tools (SSDT)
    2. Install Microsoft Analysis Services Projects

Infrastructure

Name Type Description Details
KDGERPVS02 Server WS 2019 This is the server that we can use to get access to the KdG environment. We can use SSMS 2014 to access the legacy pipelines and the SQL server
KDGERPVS01 Server WS 2012 This is a legacy WS 2012 instance. They cannot give us remot access to it.
F&O Web App Sandbox https://kdg-test.sandbox.operations.eu.dynamics.com/ This is the new, target environment. We can log in with our sonical user.
kdgerpbi01 SQL Server 13 Hosts the DWH, SSAS, SSIS, SSRS
SMART_BI_2012_R3_DWH DWH
ReportServer SSRS Only used for financials. Does not need to be migrated
BI SSAS Data Source: SMART BI 2012 DWH Cube with measures (will be done in DAX)

infrastructure-mssm.png

SSIS

These can be found in the solution Git\kdg\legacy\BI\Technical Solution\SSIS 2008 R2\SMART BI\ETL SMART BI.sln.

Staging

These pipelines can be found in the project Load Data in staging

There is one huge pipeline that loads all the data from the source tables into staging. It uses a stored procedure to load the data from AX:

ssis-ax-staging.png

DWH

These pipelines can be found in the project Load Data in DWH

The load from staging to DWH essentially copies, and looks up the IDs of the dimensions.

ssis-stg-dwh.png

DWH Tables

Dimensions

Name Area Fact Tables Description Number of Records
DimAcademiejaar Studies Finance Facts *) Academic year 13
DimActiviteit ? Finance Facts *) Babykunde, Lego, Samenwerken, with an ActivityCode and Id 683
DimAfstudeerrichting Studies Finance Facts *) Field of study 55
DimBudget* Finance GeneralLedgerBudget TODO: understand budget process
DimCommittedCostType CommittedCost TODO: What is this? 12
DimCompany General 2
DimCurrency General 175
DimCustomer General 70'000
DimDeliveryMode Delivery PurchaseOrder, SalesOrder Shipped, Air, etc.
TODO: do they really need this?
6
DimDeliveryTerms Delivery PurchaseOrder, SalesOrder COST AND FREIGHT, etc
TODO: really needed?
14
DimDirectie_OG General Finance Facts Department (HR, IT, etc.) 23
DimDocumentState Finance PurchaseOrder Rejected, Approved, Finalized, etc. 8
DimDocumentType Workflow Workflow Aankooporders, Leveranciersfacturen, Purchase Orders, etc. 8
DimDossiersoort Finance Finance Facts Studiekosten, Psychotherapie
TODO: ?
12
DimEmployee General PurchaseOrder, PurchseRequisition, Workflow 3676
DimExchangeRateType Finance Finance Facts Needed for budgets, e.g. Default average rate, Default budget rate, etc. 9
DimFinancieringsbron Finance Finance Facts Financing Source 62
DimForecastModel Finance FactSalesBudget General, Origina forecast vs budget, Remaining budget 4
DimGLAccount Finance Finance Facts AccountCode, Main / Group / etc. 2218
DimGLAccountHierarchy Finance GL, GeneralLedgerBudget, SalesOrder Assigns accounts to reporting groups and categories (similar to our BC excel) 2582
DimOpleiding Studies Finance Facts Study programme / degree, e.g. Bachelor of Chemistry 132
DimOutstandingPeriod Finance AccountsPayable, AccountsReceivable <0, 0-7, 8-15, 16-30, 31-60, etc. Probably used for DSO and similar 8
DimPaymentTerms Finance PurchaseOrder, SalesOrder 8 days, 30 days, etc. 24
DimProduct General PurchaseOrder, PurchaseRequisition, SalesBudget, SalesOrder Tuition Fees, etc. 10'865
DimProject_Fin Finance Finance Facts Erasmus+, Parental, Ecolight, etc. 534
DimPurchaseCategory Finance PurchaseOrder, PurchaseRequisition Sponsoring, Recruitment, etc. 774
DimPurchaseOrderStatus Finance PurchaseOrder OPEN, RECEIVED, INVOICED, etc. 7
DimRatio Ratio FactRatioTarget linked to FactRatioTarget 22
DimSalesOrderStatus Finance FactSalesOrder Open, Delivered, Invoiced, Canceled 5
DimSamenwerking General Finance Facts Partnerships? 4
DimSourceDocument Workflow FactWorkflow FactWorkflow 170'000
DimSupplier General AccountsPayable, GL, PurchaseOrder, PurchaseRequisition AccountsPayable, PurchaseOrder, G/L 14'000
DimTrackingContext Workflow FactWorkflow Task, Step, Condition, Decision 15
DimTrackingType Workflow FactWorkflow Submission, Activation, Denied 41
DimWorkflowCOnfiguration Workflow FactWorkflow Controle aanvraag tot bestelling 30

*) Finance Facts: FactAccountsPayable, FactAccountsReceivable, FactBudgetPlan, FactGeneralLedger, FactGeneralLedgerBudget, FactPurchaseOrder, FactPurchaseRequisition, FactSalesOrder

Facts

Name Area Dims Description Number of Records
FactAccountsPayable Finance 351'000
FactAccountsReceivable Finance 167'000
FactAccountsReceivable_PaymentPlans Finance 688'000
FactBudgetPlan Finance 135'000
FactGeneralLedger Finance 2'638'000
FactGeneralLedgerBudget Finance 56'000
FactPurchaseInvoice Finance 81'000
FactPurchaseOrder Finance 87'000
FactPurchaseRequisition Finance 89'000
FactRatioTarget Ratio 132
FactSalesBudget Finance 65'000
FactSalesInvoice Finance 65'000
FactSalesOrder Finance 58'000
FactWorkflow Workflow 2'945'232
FactWorkflow_Telling Workflow 2'945'232

You can check out which Dim is used by which Fact by looking at the Cube in SSAS:

ssas-cube.png

SSAS

Cube Structure

The Cube Structure is reflecting the DWH very closely. Aggregations are mostly sums.

ssas-cube-structure.png

There are about 20 measures that actually calculate something:

ssas-cube-measures.png

(Similar to DAX measures in Power BI)

Questions

Question Answer
There is a table called DimRatio. There is also an Excel sheet Git\kdg\legacy\BI\IN\ETL\FinancialRatios.xls. What is this?
There are many entries in FactWorkflow. But we never talked about this. What is it?