| Quintiq file version 2.0 | 
| #parent: #root | 
| Method SendConfigurationRequestJoinToBootNode | 
| { | 
|   Description: 'Send a request to the BootNode for joining a domain.' | 
|   TextBody: | 
|   [* | 
|     // Jacky CHAN Apr-21-2016 (created) | 
|     // convert localhost to current host name | 
|     bootNodeHost := LibDEF_Util::ConvertLocalhost( LibDEF_Util::GetSettingValueBootNodeHostName() ); | 
|     bootNodePort := LibDEF_Util::GetSettingValueBootNodePortNumber(); | 
|      | 
|     // Create IntegrationEvent | 
|     event := this.EventCreate( bootNodeHost, bootNodePort, false ); | 
|      | 
|     // to join a Domain, you must first have a Channel | 
|     channelMetas := selectset( this, SystemLocal.ChannelMeta, cm, true ); | 
|     if( channelMetas.Size() > 0 ) | 
|     { | 
|       nvt := this.SendConfigurationRequestJoin(); | 
|      | 
|       LibDEF_Util::EventLog( event, "Requesting to join Domain; BootNode: " + LibDEF_Util::FormatCoordinateToString( bootNodeHost, bootNodePort ) ); | 
|      | 
|       // if a BootNode is known, pass the System-GUID for callback | 
|       bootNodeGUID := ""; | 
|       bootNode := this.BootNode(); | 
|       if( not isnull( bootNode ) ) | 
|       { | 
|         bootNodeGUID := bootNode.GUID(); | 
|       } | 
|      | 
|       this.SendMessage( bootNodeGUID, bootNodeHost, bootNodePort, | 
|                         nvt, LibDEF_DataAccessor::KIND_REQUEST(), event ); | 
|     } | 
|     else | 
|     { | 
|       LibDEF_Util::EventLogError( event, | 
|                                   "Failed to send Request to join Domain", | 
|                                   "Request to join Domain is disallowed, due to zero ChannelMetas instantiated." ); | 
|     } | 
|   *] | 
| } |