| Quintiq file version 2.0 | 
| #parent: #root | 
| Method SelectKBBranch ( | 
|   Scenario scenario | 
| ) id:Method_ApplicationLibMacroPlanner_SelectKBBranch | 
| { | 
|   #keys: '[11122.0.58944127]' | 
|   Body: | 
|   [* | 
|     // Select a kb branch | 
|     dlg := construct( dlgSelectKnowledge ); | 
|     componentmds := ComponentMDS::CreateForLoadedMDSsOnly( Application ); | 
|     mdsinstance := selectobject( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().Equals( scenario.DatasetMDSID() ) ); | 
|     mdshandle := mdsinstance.GetMDSHandle(); | 
|     dlg.dpMDSHandle().Data( mdshandle ); | 
|      | 
|     kbinfo := null( MDSObjectKB ); | 
|     if ( scenario.istype( ScenarioMP ) ) | 
|     { | 
|       kbinfo := select( mdsinstance.GetMDSHandle().AsMacroPlan().MDSMacroPlan(), MDSKBs, kb, kb.Name().ToUpper() = GlobalParameters_MP::GetKBName().ToUpper() ); | 
|     } | 
|      | 
|     if ( not isnull( kbinfo ) ) | 
|     { | 
|       kbfullid := KBFullID::Create( kbinfo.Domain(), kbinfo.Name(), kbinfo.Branch(), kbinfo.Version(), kbinfo.ChangeNr() ); | 
|       dlg.Data( kbfullid ); | 
|      | 
|       result := dlg.DoModal( this ); | 
|      | 
|       if ( result > 0 ) | 
|       { | 
|         ScenarioManager.UpdateScenarioKBInfo( scenario, dlg.dpSelected().Data().Name(), dlg.dpSelected().Data().Branch(), dlg.dpSelected().Data().ChangeNr(), scenario.State(), scenario.KBDescription() ); | 
|       } | 
|     } | 
|   *] | 
| } |