Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method ChangeKeySystemByGUID (String guid_i, LibDEF_IntegrationEvent event_i) 
 | 
{ 
 | 
  Description: 'Update primary key GUID.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Jacky CHAN Apr-25-2016 (created) 
 | 
    // raise error if not unique 
 | 
    duplicatedGUID := LibDEF_System::FindSystemByGUID( this.DataBroker(), guid_i, this ); 
 | 
     
 | 
    if( not isnull( duplicatedGUID ) ) 
 | 
    { 
 | 
      LibDEF_Util::EventLogError( event_i, 
 | 
                                  "Failed to update System GUID", 
 | 
                                  "LibDEF_System::ChangeKeySystemByGUID fails due to duplicated entry of LibDEF_System " + 
 | 
                                  duplicatedGUID.GetInstanceKeyGUIDAsString() ); 
 | 
    } 
 | 
     
 | 
    this.GUID( guid_i ); 
 | 
     
 | 
    // update references 
 | 
    traverse( this, ChannelMeta, channel ) 
 | 
    { 
 | 
      channel.ChangeKeyChannelMeta( guid_i, 
 | 
                                    channel.Name(), //unchanged keys 
 | 
                                    false, 
 | 
                                    event_i ); 
 | 
    } 
 | 
     
 | 
    traverse( this, SetTypeMeta, st ) 
 | 
    { 
 | 
      st.ChangeKeySetTypeMeta( guid_i,                       // modified keys 
 | 
                               st.ChannelName(), st.Name(),  // unchanged keys 
 | 
                               true, 
 | 
                               event_i ); 
 | 
     
 | 
      traverse( st, SetMeta, set ) 
 | 
      { 
 | 
        set.ChangeKeySetMeta( guid_i,                                             // modified keys 
 | 
                              set.ChannelName(), set.SetTypeName(), set.Name(),   // unchanged keys 
 | 
                              event_i ); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |