Quintiq file version 2.0
|
#parent: #root
|
Method SynchronizeSolverSettings
|
{
|
Description: 'Synchronizes the SolverSetting of all SolverSettingGroup based on the KT'
|
TextBody:
|
[*
|
// Martijn van Elzakker Jul-21-2015 (created)
|
// Sets all current solversettings to not be in the KT
|
// then it traverses the KT and for each SolverSettingGroup it checks if a solversetting with the ParameterNumber from the KT exists
|
// if it does not, it creates a new SolverSetting
|
// if it does exist, it updates that solversetting
|
// in both cases it flags the solversetting as being part of the KT
|
// at the end of the method all solversetting that are still flagged as not part of the KT are deleted
|
|
traverse( this, SolverSettingGroup.SolverSetting, solversetting )
|
{
|
solversetting.IsInKnowledgeTable( false );
|
}
|
|
solversettingstable := SolverSettingsTable::Table();
|
|
traverse( solversettingstable, Rows, row )
|
{
|
owner := select( this,
|
SolverSettingGroup,
|
solversettinggroup,
|
solversettinggroup.Name() = row.Name() );
|
|
if( not isnull( owner ) )
|
{
|
setting := select( owner,
|
SolverSetting,
|
solversetting,
|
solversetting.ParameterNumber() = row.ParameterNumber() );
|
|
if( isnull( setting ) )
|
{
|
setting := SolverSetting::Create( owner, row.ParameterNumber(), row.ParameterValue(), row.IsNumberParameter(), row.Notes() );
|
}
|
else
|
{
|
setting.Update( row.ParameterNumber(), row.ParameterValue(), row.IsNumberParameter(), row.Notes() );
|
}
|
setting.IsInKnowledgeTable( true );
|
}
|
}
|
|
traverse( this, SolverSettingGroup.SolverSetting, solversetting, not solversetting.IsInKnowledgeTable() )
|
{
|
solversetting.Delete()
|
}
|
*]
|
}
|