Quintiq file version 2.0
|
#parent: #root
|
StaticMethod CreateOperationOutputMessages (
|
MacroPlan macroplan
|
)
|
{
|
Description: 'create sanitycheck message'
|
TextBody:
|
[*
|
// desmondt Oct-3-2014 (created)
|
messagelimit := macroplan.GlobalParameters_MP().SanityCheckLimit();
|
|
// collect the InvalidOperationOutput object, sorted on the most severe sanity check
|
invalidobjects := selectsortedset( macroplan,
|
SanityCheckGroupData.InvalidOperationOutput,
|
invalidobject,
|
true,
|
invalidobject.SanityCheckDataMostSevere() );
|
|
// traverse each InvalidOperationOutput object untill the message limit has been reached
|
objcount := 0;
|
traverse( invalidobjects,
|
Elements,
|
invalidobject,
|
objcount <= messagelimit )
|
{
|
objcount := objcount + 1;
|
|
feedbacks := construct( Strings );
|
sanitycheckfeedbacks := construct( Strings );
|
|
invalidobject.DoSanityCheckData( feedbacks, sanitycheckfeedbacks );
|
|
// collect the sanity check feedback
|
i := 0;
|
traverse( feedbacks, Elements, fb )
|
{
|
if( not exists( invalidobject, SanityCheckMessageData, msg, msg.Description() = fb ) )
|
{
|
//tokenize msg to retrieve category level and seperate the actual feedback
|
sanitycheckmessage := SanityCheckMessageData::Create( invalidobject.SanityCheckGroupData(),
|
fb,
|
true,
|
sanitycheckfeedbacks.Element( i ) );
|
// Operation output is instatiated decleratively, the realation will set to OperationLink
|
sanitycheckmessage.AsSanityCheckMsgForOperationOutput( relset, invalidobject.AsLeadOperationOutput() );
|
}
|
i := i + 1;
|
}
|
}
|
*]
|
}
|