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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Quintiq file version 2.0
#parent: #root
Method RequestSetDataByName (Key planningDatasetMDSID_i, String planningDatasetType_i, Key planningDatasetDTD_i, 
  String channelName_i, String setTypeName_i, Strings setNames_i)
{
  TextBody:
  [*
    // select the applicable SetType
    setTypeMeta := select( this, System.SetTypeMeta, setTypeMeta,
                           setTypeMeta.Name()        = setTypeName_i and
                           setTypeMeta.ChannelName() = channelName_i );
    
    if( not isnull( setTypeMeta ) )
    {
      setMetas := construct( LibDEF_SetMetas );
      
      // select the applicable set
      traverse( setNames_i, Elements, setName )
      {
        setMeta := this.FindSetByName( setTypeMeta, setName );
        
        if( not isnull( setMeta ) )
        {
          setMetas.Add( setMeta );
        }
      }
      
      // request locally if set exists in local system
      if( setTypeMeta.System().IsLocalSystem() )
      {
        setGUIDs         := selectvalues( setMetas, Elements, setMeta, true, setMeta.GUID() );
        isAutoForwarding := false;
        dataRepository   := LibDEF_DataRepository::GetDataset();
        
        dataRepository->ForwardSetData( planningDatasetMDSID_i,
                                        planningDatasetType_i,
                                        planningDatasetDTD_i,
                                        setTypeName_i,
                                        setGUIDs,
                                        isAutoForwarding );                                               
      }
      else // else, request set from external system
      {
        this.RequestSetData( planningDatasetMDSID_i, planningDatasetType_i, planningDatasetDTD_i, setTypeMeta.System(), setMetas );
      }  
    }
    else
    {
      event := this.EventCreate( this.SystemLocal(), false );
      LibDEF_Util::EventLogError( event, "Request Set Data", "SetType not found (channel, set type): " + channelName_i + ", " + setTypeName_i );
    }
  *]
  InterfaceProperties { Accessibility: 'Module' }
}