lazhen
2025-01-07 b3987122cbbc46c5c59d3173f37fca3170b6dc5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Quintiq file version 2.0
#parent: #root
Method CopyAndSelectKB (
  internal[KBFullID] kbfullid,
  Scenario scenario
) id:Method_ScenarioManager_DialogCreateEditMPScenario_CopyAndSelectKB
{
  #keys: '[11660.0.795884786]'
  Body:
  [*
    //Instantiate knowledge
    Domain.PublishKnowledge();
    editor := CKBEditor::Create();
    modelkb := editor.GetModelKB( kbfullid.KBID() );
    
    //get a copy so we could edit
    saveid := KBFullID::Create( kbfullid.Domain(), kbfullid.Name(), kbfullid.Branch(), kbfullid.Version() );
    saveid.Version( "1.0.0.0" );
    saveid.Branch( EditorBranch.Text() );
    
    //Perform the upgrade if needed
    ckbhandle := editor.LoadKB( kbfullid );
    ckbhandle.CKB().ValidateAll();
    ckbhandle.CKB().Upgrade( modelkb.CKB() );
    
    //Perform the actual saveAs action
    newkb := editor.SaveKBAs( ckbhandle, saveid, '');
    
    //Select the new KB for the MDS
    ApplicationLibMacroPlanner.SelectKB( scenario, newkb );
  *]
}