Quintiq file version 2.0
|
#parent: #root
|
Method PostProcessSanityCheckMessage
|
{
|
TextBody:
|
[*
|
// Post-process all created SanityCheckMessages to trim the number of messages
|
// Get the maximum number of messages that can be shown
|
msglimit := this.MacroPlan().GlobalParameters_MP().SanityCheckLimit();
|
|
// Get all SanityCheckMessages
|
allmessages := selectset( this, SanityCheckMessage, msg, true, true );
|
|
shownmessage := construct( SanityCheckMessages );
|
|
currentmsgcount := 0;
|
|
// Traverse all SanityCheckMessages of data issue category and add them to the shownmessage set if the message count hasn't exceeded to limit yet
|
traverse( this, SanityCheckMessage, msg, msg.CategoryLevel() = SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() and currentmsgcount < msglimit )
|
{
|
shownmessage.Add( msg );
|
currentmsgcount++;
|
}
|
|
// Traverse all SanityCheckMessages of data warning category and add them to the shownmessage set if the message count hasn't exceeded to limit yet
|
traverse( this, SanityCheckMessage, msg, msg.CategoryLevel() = SanityCheckCategoryLevel::GetSanityCheckCategoryDataWarning() and currentmsgcount < msglimit )
|
{
|
shownmessage.Add( msg );
|
currentmsgcount++;
|
}
|
|
// Traverse all SanityCheckMessages of planning issue category and add them to the shownmessage set if the message count hasn't exceeded to limit yet
|
traverse( this, SanityCheckMessage, msg, msg.CategoryLevel() = SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningIssue() and currentmsgcount < msglimit )
|
{
|
shownmessage.Add( msg );
|
currentmsgcount++;
|
}
|
|
// Traverse all SanityCheckMessages of planning warning category and add them to the shownmessage set if the message count hasn't exceeded to limit yet
|
traverse( this, SanityCheckMessage, msg, msg.CategoryLevel() = SanityCheckCategoryLevel::GetSanityCheckCategoryPlanningWarning() and currentmsgcount < msglimit )
|
{
|
shownmessage.Add( msg );
|
currentmsgcount++;
|
}
|
|
// Traverse all SanityCheckMessages of unclassified error category and add them to the shownmessage set if the message count hasn't exceeded to limit yet
|
traverse( this, SanityCheckMessage, msg, msg.CategoryLevel() = SanityCheckCategoryLevel::GetSanityCheckCategoryUnclassifiedError() and currentmsgcount < msglimit )
|
{
|
shownmessage.Add( msg );
|
currentmsgcount++;
|
}
|
|
// Get messages to be deleted
|
msgtoclear := allmessages.Difference( shownmessage );
|
|
// Delete the selected set of messages
|
traverse( msgtoclear, Elements, ele )
|
{
|
ele.Delete();
|
}
|
*]
|
}
|