admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
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
Quintiq file version 2.0
#parent: #root
Method ExecuteInbound (
  DSP_ServiceCommitterBase local_committer
)
{
  Description:
  [*
    Execute one or all inbound messages depending on process mode and call OnNeedExecuteInbound to inform client if additional processing is needed.
    This message should be called from a Job on the client dataset that passes the interface (dataset)
  *]
  TextBody:
  [*
    dsp := this.DistributedServiceProviderBase();
    
    // Set some details on the committer
    local_committer.IsDetailedLogging( dsp.IsDetailedLogging() );
    local_committer.NodeId( dsp.MyNodeId() );
    
    // Process the required number of messages as long as execution is succesful
    currentTransactionId := guard( this.InboundMessageQueue().FirstMessage().TransactionId(), "" );
    while (   ( not this.InboundMessageQueue().IsEmpty() )
          and ( this.InboundMessageQueue().FirstMessage().TransactionId() = currentTransactionId )
          and this.ExecuteFirstInboundMessage( local_committer )
          ) {}
    
    // Continue processing inbound items in new transaction
    this.KickInbound();
  *]
}