Quintiq file version 2.0
|
#parent: #root
|
Method ExecuteUserImportProfiles (
|
MacroPlan macroplan,
|
BaseImportProfiles importprofiles,
|
BaseImportObjectGroupInProfiles uniqueimportobjectgroupinprofiles,
|
Boolean isrefreshfromsource,
|
Boolean isoverwritemanualconfig,
|
BinaryValues binarydatas,
|
Strings brokers
|
)
|
{
|
Description: 'Execute user import profiles'
|
TextBody:
|
[*
|
progress( 'Executing import profiles...', DateTime::ActualTime() );
|
// Initialize synchronization status and reset error message
|
if( not isnull( macroplan ) )
|
{
|
macroplan.InitializeSynchronizationStatus();
|
}
|
|
// Establish relationship for last executed user import profiles
|
this.SetLastExecutedUserImportProfiles( importprofiles );
|
// Clean up all selected import profile's error message before we start executing the profiles
|
this.ClearAllUserImportProfilesErrorMessages();
|
|
dsspaceExec := this->AsVoid()->GroupAll();
|
|
if( isrefreshfromsource )
|
{
|
// Execute the brokers for the selected set of uniqueimportobjectgroupinprofiles and non-messsage based integration
|
traverse( uniqueimportobjectgroupinprofiles, Elements, e,
|
not e.IsMessage()
|
)
|
{
|
if( e.IsExcel() or e.IsDatabase() )
|
{
|
e.Execute( binarydatas, brokers );
|
}
|
}
|
//required to refresh the IsValid attribute calculation after db import.
|
Transaction::Transaction().Propagate();
|
|
//moved into this if statement because we only need to refresh DB error when the external data changes.
|
this.CreateDatabaseSyncErrorObjects();
|
}
|
|
dsspaceExec->( exec )
|
{
|
if( not isnull( macroplan ) )
|
{
|
this.UpdateSalesDemoDataYear();
|
// Switch to macroplan.MPSyncStartSynchronize to run sync in asynchronous way
|
macroplan.MPSyncStartSynchronize( isoverwritemanualconfig,
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_SupplyChainParameters() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_GlobalParameters() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Periods() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Products() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_InventorySpecifications() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_InventorySupplies() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Products() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Forecast() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Campaigns() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Entities() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Costs() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Lanes() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Routings() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Capacities() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_SupplySpecifications() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Capacities() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Recipes() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Actuals() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Feedback() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_Actuals() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_ServiceLevels() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_OptimizerPuzzle() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_PostponementSpecAndFulfillmentRestriction() ),
|
MPSync::GetImportObjectGroupInProfileIncludeExclude( uniqueimportobjectgroupinprofiles, MPSyncUtility::ID_ObjectGroup_CustomerOrder() ) );
|
|
progress( 'Post-processing import from MPSync...', DateTime::ActualTime() );
|
|
if ( isrefreshfromsource )
|
{
|
this.LastImportTime( DateTime::Now() );
|
}
|
// Update the last refreshed and or executed time for each import profiles
|
traverse( importprofiles, Elements, e )
|
{
|
if( isrefreshfromsource )
|
{
|
e.LastRefreshed( DateTime::Now() );
|
}
|
e.LastExecuted( DateTime::Now() );
|
}
|
}
|
}
|
|
// Handle exception
|
dsspaceExec->Exception()->( ex )
|
{
|
macroplan.UpdateSynchronizationErrorStatus( ex );
|
}
|
*]
|
}
|