yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Quintiq file version 2.0
#parent: #root
StaticMethod TriggerMessageSendToSystem (LibDMF_CommunicationChannel channel_i, String messageType_i, String setTypeName_i, 
  String setName, Boolean isNotificationOnly_i, structured_Object data_i, 
  LibDMF_SystemOnChannel soc_i, String sourceKind_i, String sourceName_i, 
  DateTime lastUpdate_i)
{
  TextBody:
  [*
    // The dataset information of the dataset which the job resides
    root        := channel_i.CommunicationChannelRoot();
    globalparam := root.GlobalParameters();
    datasetKind := globalparam.DM_DatasetKind();
    datasetPath := globalparam.DM_DatasetFolder();
    datasetName := globalparam.DM_DatasetName();
    
    mds      := MDSEditor::Editor().LoadedObjectInfo( datasetKind, datasetPath, datasetName );
    haserror := true;
    jobName  := LibDMF_CommunicationChannelRoot::JOB_MESSAGESENDTOSYSTEM();
    
    if( not isnull( mds ) )
    {
      job := Reflection::FindStaticMethod( datasetKind, jobName );
    
      if( not isnull( job ) )
      {
        haserror := false;
    
        job.AddObjectArgument( mds.MDSID() );
        job.AddArgument( channel_i.Name() );
        job.AddArgument( messageType_i );
        job.AddArgument( setTypeName_i );
        job.AddArgument( setName );
        job.AddArgument( isNotificationOnly_i );
        job.AddObjectArgument( data_i );
        job.AddArgument( soc_i.DatasetKind() );
        job.AddArgument( soc_i.DatasetName() );
        job.AddArgument( sourceKind_i );
        job.AddArgument( sourceName_i );
        job.AddArgument( lastUpdate_i );
    
        job.Execute();
      }
    }
    
    if( haserror )
    {
      // Create a "sending" IntegrationEvent to log the error
      event := root.EventCreate( soc_i.DatasetKind(), soc_i.DatasetName(), false );
    
      // Log the error as an activity
      root.EventLogActivityError( event,
                                  'Unable to trigger job "' + datasetKind + '::' + jobName + '".',
                                  'Job "' + datasetKind + '::' + jobName + '" not found. Please check if the job exist.' );
    }
  *]
}