| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod CreateDataSources ( | 
|   Object sourceObject_i, | 
|   LibSOPImpExp_ImportExportBase owner_i, | 
|   Boolean isIncludeGlobal_i | 
| ) #extension | 
| { | 
|   TextBody: | 
|   [* | 
|     mpsync := sourceObject_i.astype( MPSync ); | 
|      | 
|     // Create all interface group | 
|     group_all := LibSOPImpExp_DataSource::FindCreate( owner_i, Translations::LibSOPImpExp_DataSource_All_Interfaces(), Translations::LibSOPImpExp_DataSource_All_Interfaces() ); | 
|      | 
|     // Create data source groups (based on import profile group) | 
|     // Reason, we need hierarchical structure to display for web import/export dialog | 
|     traverse( mpsync, DefaultImportProfile.ImportObjectGroupInDefaultProfile.ImportObjectGroup, iog, isIncludeGlobal_i or iog.IsGlobal() = isIncludeGlobal_i  ) | 
|     { | 
|       // Ensure we call ImportObjectGroup methods to use translation text | 
|       group := LibSOPImpExp_DataSource::FindCreate( owner_i, group_all, iog.GetDisplayCategory(), iog.GetDisplayCategory() ); | 
|        | 
|       // Data source under the data group | 
|       datasource := LibSOPImpExp_DataSource::FindCreate( owner_i, group, iog.GetDisplayName(), iog.GetDescription() ); | 
|       datasource.LibSOPImpExp_DataSourceFile( relflush ); | 
|        | 
|       // Files associated with each ImportObjectGroup | 
|       traverse( iog.GetMPFileNames(), Elements, filename ) | 
|       { | 
|         brokerName := ImportObjectGroup::GetDirectImportBrokerByFile( mpsync, filename ); | 
|         mpsync_brokername := ImportObjectGroup::GetMPSyncImportBrokerByFile( mpsync, filename ); | 
|         LibSOPImpExp_DataSourceFile::Create( datasource, filename, brokerName, mpsync_brokername ); | 
|       } | 
|     } | 
|   *] | 
| } |