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 );
|
*]
|
}
|