Quintiq file version 2.0
|
#parent: #root
|
StaticMethod CanSave (KpiMetaDataFactory factory, KpiMetaData original, String name,
|
String displayName, String description, Boolean isMaximize,
|
Boolean isMinimize, String unitOfMeasure) remote as Boolean
|
{
|
Description: 'Checks to see if a KPI with the specified parameters would be valid. Used in preconditions. Sets the FeedbackObject.'
|
TextBody:
|
[*
|
feedback := FeedbackObject::LocalFeedback();
|
isNew := isnull( original );
|
|
// Pre-check if we need to go checking for uniqueness (which does a lookup).
|
if ( isNew or guard( original.Name() <> name, false ) )
|
{
|
// Check uniqueness.
|
if ( not feedback.CheckHard( factory.CanCreateInstance( name ) ) )
|
{
|
feedback.AddHard( Translations::Kpi_MetaData_AlreadyExists( name ) );
|
}
|
}
|
|
// Can't have both IsMaximize and IsMinimize
|
if ( not feedback.CheckHard( not ( isMaximize and isMinimize ) ) )
|
{
|
feedback.AddHard( Translations::Kpi_MetaData_CanHaveBothIsMaximizeAndIsMinimize() );
|
}
|
|
// Name can't be empty
|
if ( not feedback.CheckHard( not name.TrimBoth() = "" ) )
|
{
|
feedback.AddHard( Translations::Kpi_MetaData_NameCantBeEmpty() );
|
}
|
|
// DisplayName can't be empty
|
if ( not feedback.CheckHard( not displayName.TrimBoth() = "" ) )
|
{
|
feedback.AddHard( Translations::Kpi_MetaData_DisplayNameCantBeEmpty() );
|
}
|
|
return feedback.IsAllowed();
|
*]
|
}
|