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