Conditional reload of data

    Sometimes we need to reload our data based on one or more conditions. In some cases we need to update some data always and some data only when its necesary.

    This is a very common scenario in many business and since i had to do it for a client, i think it would be nice to share it.

     

    Here you will find an example that may help you to achieve it.

     

    1. Layers architecture

    In able to reload our data based on conditions (and also as a good development practice) we must separate our app in different layers. Each one will do a specific task as follows:

      1. Extract layer
        • Data is extracted directly from data source and saved into QVD files
        • Here will reside all the reload conditions
        • No business logic should be applied to data
        • This layer can also be used as a common extract for various models
      2. Model
        • Data is loaded from QVDs and business logic is applied to data
        • No matter if QVD's where updated or not
        • Better performance when reading from QVD files
      3. UI
        • This layer will only perform a binary load of the model application and display data to user
        • Fastest kind of load
        • This lets us have many different UI's based on one or more models (re use logic)

     

    2. Conditional reload

    The conditional reload logic will reside in the extract layer, the one that updates our reports universe of data.

    Here we will reload data based on conditions and store it in QVD files,

     

    Attached you will find an example of this.

    This is my first document so any correction or comment will be highly aprreaciated.

     

    Hope this helps you.

    Kindest regards,

    Santiago

     

    Note: Data in examples is dummy data added only for the example.