Skip to content

Parts Stock Sync Flow

---
config:
    theme: redux
    title: TIQ Parts Stock
---
graph TD

    Autoline -- Autoline Parts Stock Data --> QlikLoad
    subgraph Source Data Extraction
      QlikLoad@{shape: circle, label: "Qlik Loads Data"} -- Parts Stock Data in Memory --> 
      QlikStore@{shape: circle, label: "Qlik Saves Data"} -- Parts Stock Data CSV -->
      QlikServer@{shape: lin-rect, label: "Qlik Server (azftp/Stock/[Basra|KRG].csv)"} 
    end

    subgraph Sync Files on Azure
      QlikServer -- Parts Stock on Qlik -->
      AzureSync@{shape: circle, label: "Azure Sync Process \n (qlik-sync)"} -- Parts Stock On Azure -->
      AzureStorage@{shape: lin-rect, label: "Azure File Share (tqiplatformac65/qlik-csv/Stock/[Basra|KRG].csv)"}
    end

    subgraph Sync Data Function
      AzureStorage -- New (source) Parts Stock --> 
      CompareCSVFiles@{shape: circle, label: "Compare Source and Destination CSV files \n (tiq-sync-data-functions/\n SyncPartStock_[Basra|KRG]_Timer)"} 
      DestinationCSVFile@{shape: lin-rect, label: "Azure File Share \n (tqiplatformac65/csv-sync/Stock/[Basra|KRG].csv)"} 
        -- Updated Existing (destination) Parts Stock Data --> 
      CompareCSVFiles -- The Difference of Parts Stock Data in Memory -->
      SyncToCosmos@{shape: circle, label: "Sync to \n Cosmos DB"} -- Parts Stock Records -->
      PartsRecordInCompanyDataInCosmos@{shape: lin-rect, label: "Cosmos DB \n [CompanyData/Parts]"} -->
      CheckSyncStatus@{shape: circle, label: "Check Cosmos \n Sync Status"} -- True -->
      OverwriteDestinationCSVFile@{shape: circle, label: "Override \n Destination \n CSV File"}
      OverwriteDestinationCSVFile -- csv --> DestinationCSVFile
      CompareCSVFiles -- New (source) csv --> OverwriteDestinationCSVFile
    end