Quintiq file version 2.0
|
#parent: #root
|
Method Rollback (
|
const RealVector kpi_pre,
|
const RealVector kpi_post,
|
LibOpt_Task task
|
)
|
{
|
Description:
|
[*
|
Rollback the current transaction.
|
|
This is done by throwing an error that is not logged in the server log by default.
|
A config utility setting `libopt.logoptimizerrollbackaserror` when set to `true` will log rollbacks as an error.
|
*]
|
TextBody:
|
[*
|
diff_index := LibOpt_RollbackKPI::GetDiffIndex( kpi_post, kpi_pre );
|
|
message := '';
|
if( diff_index = -1 )
|
{
|
message := Translations::LibOpt_Rollback();
|
}
|
else
|
{
|
message := Translations::LibOpt_Suboptimizer_Rollback( diff_index,
|
kpi_pre.Get( diff_index ),
|
kpi_post.Get( diff_index ),
|
this.RollbackKPI().IsMinimize( diff_index ) );
|
}
|
|
err := construct( LibOpt_Error );
|
err.Code( Transaction::RollbackErrorNr() );
|
err.GeneralInformation( message );
|
err.DeveloperInformation( Quill::CallStack() );
|
task.RollbackCurrentTransaction( message, err, LibOpt_ConfigurationSettings::GetSetting_LogOptimizerRollbacksAsError() );
|
*]
|
}
|