Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method SynchronizeFromMPSync ( 
 | 
  MPSync mpsync, 
 | 
  Boolean isoverwritemanualconfig, 
 | 
  Boolean importgeneral, 
 | 
  Boolean importglobalparameters, 
 | 
  Boolean importperiods, 
 | 
  Boolean importdisaggregationfactor, 
 | 
  Boolean importinventoryspecifications, 
 | 
  Boolean importinventorysupplies, 
 | 
  Boolean importproducts, 
 | 
  Boolean importforecasts, 
 | 
  Boolean importcampaigns, 
 | 
  Boolean importentities, 
 | 
  Boolean importentitycosts, 
 | 
  Boolean importlanes, 
 | 
  Boolean importroutings, 
 | 
  Boolean importstockingpointcapacities, 
 | 
  Boolean importsupplyspecifications, 
 | 
  Boolean importunitcapacities, 
 | 
  Boolean importrecipes, 
 | 
  Boolean importactualpispip, 
 | 
  Boolean importfeedbacks, 
 | 
  Boolean importactualunitperiod, 
 | 
  Boolean importservicelevels, 
 | 
  Boolean importoptimizerpuzzles, 
 | 
  Boolean importpostponementspecandfulfillmentrestriction, 
 | 
  Boolean importcustomerorder 
 | 
) 
 | 
{ 
 | 
  Description: 'Synchronize data from MPSync dataset' 
 | 
  TextBody: 
 | 
  [* 
 | 
    progress( 'Synchronizing from MPSync...', DateTime::ActualTime() ); 
 | 
    /* ======================================================================================= 
 | 
                      NOTE! The sequence of importing is IMPORTANT 
 | 
    Objects own by MacroPlan and without foreign key reference, therefore will be imported first. 
 | 
    ==========================================================================================*/ 
 | 
    if( importgeneral )               // Currencies, UOMs, Priorities, Shift patterns 
 | 
    { 
 | 
      this.MPSync_ImportGeneral( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importperiods )               // Period specifications, Period definitions, Period parameters 
 | 
    { 
 | 
      this.MPSync_ImportPeriods( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importentities )              // Groups, Units, Stocking points, Sales segments, Stocking point units 
 | 
    { 
 | 
      this.MPSync_ImportEntities( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importproducts )              // Products, Product in stocking points 
 | 
    { 
 | 
      this.MPSync_ImportProducts( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importforecasts )            // Forecasts 
 | 
    { 
 | 
      this.MPSync_ImportForecasts( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importservicelevels ) 
 | 
    { 
 | 
      this.MPSync_ImportServiceLevels( mpsync, isoverwritemanualconfig ); 
 | 
    }  
 | 
     
 | 
    if( importoptimizerpuzzles )      // Optimizer puzzles 
 | 
    { 
 | 
      this.MPSync_ImportOptimizerPuzzles( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importpostponementspecandfulfillmentrestriction )      // Postponement specification and Fulfillment restriction 
 | 
    { 
 | 
      this.MPSync_ImportPostponementSpecificationAndFulfillmentRestriction( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
    /* ======================================================================================= 
 | 
                      NOTE! The sequence of importing is IMPORTANT 
 | 
    Objects own by entities and with foreign key reference, therefore need to be imported after entities had been imported. 
 | 
    ======================================================================================= */ 
 | 
    if( importlanes )                // Lanes 
 | 
    { 
 | 
      this.MPSync_ImportLanes( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importroutings )             // Routings, Routing steps, Operations 
 | 
    { 
 | 
      this.MPSync_ImportRoutings( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    /* ======================================================================================= 
 | 
                      NOTE! The sequence of importing is IMPORTANT 
 | 
    Objects own by Processes (Routing/Lane/LaneLeg/Operation) and with foreign key reference, therefore need to be imported after processes had been imported. 
 | 
    =======================================================================================*/ 
 | 
    if( importcampaigns )             // Campaign types, Campaigns, Operation in campaign types 
 | 
    { 
 | 
      this.MPSync_ImportCampaigns( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    /* ======================================================================================= 
 | 
                      NOTE! The sequence of importing is IMPORTANT 
 | 
    Objects own by product/stocking point/unit and with foreign key reference, therefore need to be imported after entities had been imported. 
 | 
    ============================================================================================ */ 
 | 
    if( importdisaggregationfactor )   // Disaggregation factor 
 | 
    { 
 | 
      this.MPSync_ImportDisaggregationFactor( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importinventoryspecifications )   // Inventory specifications 
 | 
    { 
 | 
      this.MPSync_ImportInventorySpecifications( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importinventorysupplies )         // Inventory supplies and inventory supply cost 
 | 
    { 
 | 
      this.MPSync_ImportInventorySupplies( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importstockingpointcapacities )   // Stocking point capacities 
 | 
    { 
 | 
      this.MPSync_ImportStockingpointCapacities( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importsupplyspecifications )      // Supply specifications 
 | 
    { 
 | 
      this.MPSync_ImportSupplySpecifications( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importentitycosts )             /* Unit costs, Lane costs, Lane leg costs, Operation costs, 
 | 
                                           Stocking point costs, inventory costs , product costs*/ 
 | 
    { 
 | 
      this.MPSync_ImportEntityCosts( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importunitcapacities )        // Unit capacities, Unit availabilities, Unit calendar elements. 
 | 
    { 
 | 
      this.MPSync_ImportUnitCapacities( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importrecipes )                   // Recipes 
 | 
    { 
 | 
      this.MPSync_ImportRecipes( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importactualpispip )          // Actual product in stocking in period 
 | 
    { 
 | 
      this.MPSync_ImportActualPISPIP( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importactualunitperiod )          // Actual unit periods 
 | 
    { 
 | 
      this.MPSync_ImportActualUnitPeriod( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importcustomerorder )          // customer order 
 | 
    { 
 | 
      this.MPSync_ImportCustomerOrder( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    this.InitializeNonEntitiesDataAfterImport( importforecasts, importcustomerorder, importproducts, importentities, importroutings, importperiods ); 
 | 
     
 | 
    if( importglobalparameters ) 
 | 
    { 
 | 
      this.MPSync_ImportGlobalParameters( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    if( importentitycosts ) 
 | 
    { 
 | 
     this.InitializeEntityCostsAfterImport(); 
 | 
    } 
 | 
     
 | 
    if( importfeedbacks )          // Feedbacks 
 | 
    { 
 | 
     this.MPSync_ImportFeedbacks( mpsync, isoverwritemanualconfig ); 
 | 
    } 
 | 
     
 | 
    // Update changes, Calculate KPI score 
 | 
    this.CalculateKPIScore( false ); 
 | 
     
 | 
    // Create MPSync sanity check objects 
 | 
    databaseerrors := selectset( mpsync, DatabaseSyncErrorMPSync, err, true, true  ); 
 | 
    this.MPSyncDatabaseSyncError( databaseerrors ); 
 | 
     
 | 
    //post processing 
 | 
    if( importunitcapacities ) 
 | 
    { 
 | 
      this.InitializeShiftPatternsAfterImport(); 
 | 
    } 
 | 
     
 | 
    if( importperiods ) 
 | 
    { 
 | 
      this.InitializePeriodsAfterImport(); 
 | 
    } 
 | 
     
 | 
    if( importroutings ) 
 | 
    { 
 | 
      this.InitializeRoutingsAfterImport(); 
 | 
    } 
 | 
     
 | 
    if( importinventorysupplies ) 
 | 
    { 
 | 
      this.InitializeInventorySuppliesAfterImport(); 
 | 
    } 
 | 
                  
 | 
    if( importfeedbacks ) 
 | 
    { 
 | 
      this.InitializeFeedbackAfterImport(); 
 | 
    } 
 | 
     
 | 
    if( importentities or importunitcapacities or importperiods ) 
 | 
    { 
 | 
      this.UpdateUnitCalendar(); 
 | 
    } 
 | 
     
 | 
    // Set indicator values 
 | 
    this.SynchronizationStatus( Translations::MPSync_Synchronization_Complete() ); 
 | 
    this.IsImporting( false ); 
 | 
  *] 
 | 
} 
 |