| Quintiq file version 2.0 | 
| #parent: #root | 
| Method ReceiveRequestSyncNotification ( | 
|   String origin_node_id, | 
|   String notification_info | 
| ) | 
| { | 
|   TextBody: | 
|   [* | 
|     slave_node := this.GetSlaveNode( origin_node_id ); | 
|     connector := this.DistributedServiceProviderBase().Connector(); | 
|     dsp := this.DistributedServiceProviderBase(); | 
|      | 
|     dsp.Log( "Received sync request for slave " + origin_node_id + " for state " + notification_info, false ) | 
|     assert( not isnull( slave_node ), "Received request sync notification from unknown slave node" ); | 
|      | 
|     requested_state := [Number] notification_info; | 
|     state_message := select( this, OutboundMasterQueue.Message, msg, msg.StateSeqNr() = requested_state ); | 
|      | 
|     // Currently we always do full sync since sending notification (in the else) won't work | 
|     // while processing this incoming notifification. Might have to do with sync soap calls? | 
|     if ( true or isnull( state_message ) or state_message.istype( DSP_FullSyncMessage ) ) | 
|     { | 
|       // Full sync needed since requested state is not found   | 
|       slave_node.LastSentOperationMessage( relset, this.OutboundMasterQueue().LastMessage() ); | 
|       connector_node := select( connector, Node, node, node.NodeId() = origin_node_id ); | 
|       this.DistributedServiceProviderBase().OnMasterNeedSentFullSync( connector_node ); | 
|       dsp.Log( "Requested full sync or sync state not available -> Requesting full sync", false ); | 
|     } | 
|     else | 
|     { | 
|       // Full sync not needed, can just reset the message to be sent | 
|       connector.SentNotification( origin_node_id | 
|                                 , DSP_DistributedServiceProviderBase::NotificationType_RequestSyncAck() | 
|                                 , "" | 
|                                 ); | 
|                                  | 
|       dsp.Log( "Requested sync state found -> Notified slave.", false);                             | 
|     } | 
|   *] | 
| } |