Quintiq file version 2.0 #parent: #root Method CleanUp ( String selectedkb ) id:Method_FormKBManagement_CleanUp { #keys: '[11660.0.301399095]' Body: [* //clean up dlg := construct( DialogNumberOfKBToKeep ); dlg.LabelSelectedKB().Text( selectedkb ); retvalue := dlg.DoModal( this ); if ( retvalue > 0 and not isnull( MacroPlan ) ) { nr := ApplicationLibMacroPlanner.FormatStringToReal( dlg.EditorNr().Text() ); strings := StringListKnowledgeBase.GetSelectedLine().Tokenize( ':'); if ( strings.Size() = 4 and nr >= 0 ) { name := strings.Element( 1 ); editor := CKBEditor::Create(); kb := select( MacroPlan.MDSMacroPlan(), MDSKBs, kb, kb.Name().ToUpper() = ScenarioManager.CompanyKBName().ToUpper() ); kbfullid := KBFullID::Create( kb.Domain(), kb.Name(), kb.Branch(), kb.Version(), kb.ChangeNr() ); infos := editor.GetKBStructure( kbfullid.KBID() ); highestid := max( infos, Elements.KBFullID, i, i.Branch() = name and i.ChangeNr().IsFinite() and i.ChangeNr() > 0, i.ChangeNr() ); if ( highestid.IsFinite() and highestid > 0 ) { toberemoved := highestid - nr; tobedeletedset := selectset ( infos, Elements.KBFullID, i, i.Branch() = name and i.ChangeNr() <= toberemoved, true ) traverse ( tobedeletedset, Elements, el ) { editor.DeleteKBChange( el ); } } } } *] }