lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
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
33
34
35
36
37
38
39
40
41
42
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." );
    }
  *]
}