| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetSetType (String datasetKind_i, String datasetName_i, String setTypeName_i) as LibDMF_SetType | 
| { | 
|   Description: 'Retrieve the SetType based on dataset kind, dataset name and settype name' | 
|   TextBody: | 
|   [* | 
|     // Jacky C Aug-28-2015 (created) | 
|     setType := null( LibDMF_SetType ); | 
|     systemOnChannel := this.GetSystemOnChannel( datasetKind_i, datasetName_i ); | 
|      | 
|     if( not isnull( systemOnChannel ) ) | 
|     { | 
|       setType := LibDMF_SetType::FindSetType( setTypeName_i ); | 
|       root    := this.CommunicationChannelRoot(); | 
|      | 
|       // Retrieve IntegrationEvent. | 
|       event := root.EventGetLast( datasetKind_i, datasetName_i ); | 
|      | 
|       // Error logging | 
|       if( isnull( setType ) ) | 
|       { | 
|         root.EventLogActivityError( event, | 
|                                     "SetType '" + setTypeName_i + "' not found", | 
|                                     "SetType '" + setTypeName_i + "' not found; Channel = " + this.Name() + ", QProduct = " + systemOnChannel.QProductName() + ", System = " + systemOnChannel.SystemName()  ); | 
|       } | 
|       else | 
|       { | 
|         // checks if the set type belongs to the SOC | 
|         if( not setType.SystemOnChannel() = systemOnChannel ) | 
|         { | 
|           root.EventLogActivityError( event, | 
|                                       "SetType '" + setTypeName_i + "' not owned by System on Channel", | 
|                                       "SetType '" + setTypeName_i + "' not owned by System on Channel = " + this.Name() + ", QProduct = " + systemOnChannel.QProductName() + ", System = " + systemOnChannel.SystemName()  ); | 
|         } | 
|       } | 
|     } | 
|      | 
|     return setType; | 
|   *] | 
| } |