| 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' } | 
| } |