diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
index 43877b3dcb2727f4c7b17607c57ed63b848e41a4..60ea516b87461d73fbd216f449d0cdc78e65c7a2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
@@ -505,11 +505,12 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET
     public List<ExternalData> listDataSetsByExperimentID(String sessionToken, TechId experimentID)
             throws UserFailureException
     {
-        final Session session = getSession(sessionToken);
-
-        IExternalDataTable dataSetTable = businessObjectFactory.createExternalDataTable(session);
-        dataSetTable.loadByExperimentTechId(experimentID);
-        return ExternalDataTranslator.translate(dataSetTable.getExternalData(), "", "");
+        Session session = getSession(sessionToken);
+        IDatasetLister datasetLister = createDatasetLister(session);
+        List<TechId> experimentTechIDs = Collections.singletonList(experimentID);
+        List<ExternalData> datasets = datasetLister.listByExperimentTechIds(experimentTechIDs);
+        Collections.sort(datasets);
+        return datasets;
     }
 
     public List<ExternalData> listDataSetsBySampleID(final String sessionToken,