Quintiq file version 2.0
|
#parent: #root
|
Method SynchronizeLibSCIScenarioWithScenarioMP (
|
Strings existingscenariosmpdatasetname,
|
Strings existingscenariompnames,
|
Strings assumptions
|
)
|
{
|
Description:
|
[*
|
Synchronize LibSCIScenarios with ScenarioMP given in parameters.
|
It will Create or Update or Delete LibSCIScenarios
|
The goal is to get LibSCIScenario mathcing non IsDeleted Scenario_MP
|
*]
|
TextBody:
|
[*
|
existinglibsciscenarios := this.GetAllLibSCIScenarios();
|
updates := construct( LibSCIScenarios );
|
|
// Introduce index because traversing scenariodatasetname and need to match element index to scenarioname list
|
index := 0;
|
|
traverse( existingscenariosmpdatasetname, Elements, scenariompdataset )
|
{
|
// Get ScenarioName
|
scenarioname := existingscenariompnames.Element( index );
|
assumption := assumptions.Element( index );
|
assumption := assumption.TrimBoth();
|
// Find existing LibSCIScenario
|
objectinstance := LibSCIScenario::FindLibSCIScenarioTypeIndex( scenariompdataset );
|
|
// If no existing LibSCIScenario is found, create one
|
if( isnull( objectinstance ) )
|
{
|
this.CreateScenario( scenarioname, scenariompdataset, assumption );
|
}
|
else
|
{
|
objectinstance.Update( scenarioname, assumption );
|
updates.Add( objectinstance );
|
}
|
index := index + 1;
|
}
|
|
// Get the set of old LibSCIScenarios to be deleted
|
tobedeleted := existinglibsciscenarios.Difference( updates );
|
|
// Traverse the set of LibSCIScenarios to be deleted
|
traverse( tobedeleted, Elements, ele )
|
{
|
ele.Delete();
|
}
|
*]
|
}
|