Flywheel process - eclipse-efbt/efbt GitHub Wiki

Flywheel process

We provide a repeatable process for creating BIRD content, using only open source tools. Below are the set of steps to extend BIRD with a new report (or part of a report)

  • Choose scope of cells of an EBA report
  • Choose scope of products for testing
  • Create  empty Github repo to store adapted BIRD (private or public) using official BIRD formats (SMCubes and SQLDeveloper)
  • Find the subset of EBA dimensions and members needed for the cells in scope
  • Consider which  columns need to be added to BIRD
  • Add those to the SQLDeveloper LDM model
  • Forward engineer to Input Layer, export to CSV as described here
  • Store SQLDeveloper version (LDM and IL) and its CSV export  in the GitHub repository
  • Get selected BIRD technical export from BIRD website (mostly non reference info about existing templates) as described here
  • Put these files into your GitHub repository
  • Create a joins configuration file (reuse  an existing one such as this one and amend if amendments are needed), put this in the GitHub repository
  • Import the SQLDeveloper and BIRD website artfacts information from github into the FreeBIRD application, by ‘retrieving artefacts’ using the Workflow Dashboard
  • Create the Physicalised Database  for the BIRD Input Layer using the FreeBIRD Application by ‘Setup Database’ using the Workflow Dashboard
  • Create the Core SMCubes information in the FreeBIRD Application, this is task 1 in the workflows, using the Workflow Dashboard
  • Load the  EBA DPM info for the report into BIRD using the FreeBIRD Application, so we have the annotated template in SMCubes format using DPM Operationa
  • For new columns added in SQLDeveloper , add an SDD domain to BIRDs meta data database if there is not a suitable one existing
  • Create any new member hierarchies required with the hierarchy editor in the FreeBIRD Application
  • Create the links between EBA values and SDD values so that we can create the reference annotated template (filters) using the semantic integration creator and/or semantic integration editor
  • Create the reference annotated template (filters) in SMCubes using the FreeBIRD Application according to SDD, for the sub scope using the workflow dashboard This is done In 'Task 2: SMCubes Transformation Rules Creation' in the workflow dashboard
  • Create the Reference output layer from the reference annotated template  using the FreeBIRD Application using the FreeBIRDS Application . This is also done In 'Task 2: SMCubes Transformation Rules Creation' in the Workflow Dashboard when the filters are created
  • Run the gap analysis using the FreeBIRD Application, this automatically creates the draft links between input layer and output layer, This also done In 'Task 2: SMCubes Transformation Rules Creation' in the Workflow Dashboard and described as creating Joins.
  • Refine the cube links using the cube_links editor (see this video demo also)
  • Create the Python code from the reference annotated template and the cube links, This is done In 'Task 3: Python Transformation Rules Creation'  in the Workflow Dashboard (see this video demo also)
  • Update the join conditions in the generated Python code (see this video demo )
  • Create test data according to product scope directly in database or as fixtures run by the FreeBIRD application testing framework, this is done as 'Task4: Full Execution with Test Suite' in the Workflow Dashboard
  • Run the  individual report cells with test data,  using Execute Datapoint Guide
  • Save all your changes back to github as SMCubes CSV files, by creating a review request to be reviewed and then merged into GitHub and so available to all collaborators with access to tha Github repository ,