| 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 ); | 
|       } | 
|     } | 
|   *] | 
| } |