diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IProcedureAndDataTypeExtractor.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IProcedureAndDataTypeExtractor.java
index 54335f6f82514c62e5ac1b2730b1c2ffaa29a9b8..f4504a4510cd2f6c0c47f47a2b7fc652e92342f2 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IProcedureAndDataTypeExtractor.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IProcedureAndDataTypeExtractor.java
@@ -23,7 +23,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.FileFormatType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProcedureType;
 
 /**
  * Extractor for procedure, data set, file format, and locator type.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ProcedureType.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ProcedureType.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ffac40ce64069e9ee5fee870360ee943f8f6fcb
--- /dev/null
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ProcedureType.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2007 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.etlserver;
+
+import ch.systemsx.cisd.openbis.generic.shared.dto.types.ProcedureTypeCode;
+
+/**
+ * Kind of <i>Java Bean</i> or <i>Value Object</i> which transports through Web Service any
+ * information we would like to know about a procedure type.
+ * 
+ * @author Christian Ribeaud
+ */
+public final class ProcedureType
+{
+    private String code;
+    private boolean dataAcquisition;
+
+    public ProcedureType()
+    {
+    }
+
+    public final String getCode()
+    {
+        return code;
+    }
+
+    public final void setCode(String code)
+    {
+        this.code = code;
+    }
+
+    public ProcedureType(final String code)
+    {
+        ProcedureTypeCode procedureTypeCode = ProcedureTypeCode.getProcedureTypeCode(code);
+        setCode(procedureTypeCode.getCode());
+        setDataAcquisition(procedureTypeCode == ProcedureTypeCode.DATA_ACQUISITION);
+    }
+
+    /**
+     * Returns <code>true</code> if and only if this procedure type represents a data acquisition
+     * (or measurement) rather than a data processing (or derivation) step in a workflow.
+     */
+    public final boolean isDataAcquisition()
+    {
+        return dataAcquisition;
+    }
+
+    /**
+     * Sets the attribute which determines whether this procedure type represents a data acquisition
+     * (or measurement) rather than a data processing (or derivation) step in a workflow.
+     */
+    public final void setDataAcquisition(final boolean dataAcquisition)
+    {
+        this.dataAcquisition = dataAcquisition;
+    }
+}
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/SimpleTypeExtractor.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/SimpleTypeExtractor.java
index 5172d02d6d0b38ad4534bf19990dc6b25709a5c4..7126c24030636c7ee4779566aad6f0e1b089c53c 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/SimpleTypeExtractor.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/SimpleTypeExtractor.java
@@ -27,7 +27,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.FileFormatType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProcedureType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.types.DataSetTypeCode;
 import ch.systemsx.cisd.openbis.generic.shared.dto.types.ProcedureTypeCode;
 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
index a8744d92c8cec7fe484e12c7aff1da889fa57cf9..095202a9477e7ee51c66edb80918c877d128b2f2 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
@@ -138,7 +138,7 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
             final String procedureTypeCode, final ExternalData data)
     {
         service.registerDataSet(sessionToken, dataSetInformation.getSampleIdentifier(),
-                procedureTypeCode, data);
+                data);
     }
 
     private final SamplePropertyPE[] primGetPropertiesOfSampleRegisteredFor(
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/HTMLDirectoryRenderer.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/HTMLDirectoryRenderer.java
index 5b18384ab672d17bba4a312c75d12e4bbb522a75..6c517663dbdd35ff699c6cb777ce56a61273aaa1 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/HTMLDirectoryRenderer.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/HTMLDirectoryRenderer.java
@@ -28,7 +28,6 @@ import ch.systemsx.cisd.common.utilities.Template;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.GroupPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProcedurePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 
 /**
@@ -100,8 +99,7 @@ final class HTMLDirectoryRenderer implements IDirectoryRenderer
     {
         final String datasetCode = dataSet.getCode();
         final String sampleCode = dataSet.getAssociatedSampleCode();
-        final ProcedurePE procedure = dataSet.getProcedure();
-        final ExperimentPE experiment = procedure.getExperiment();
+        final ExperimentPE experiment = dataSet.getExperiment();
         final String experimentCode = experiment.getCode();
         final ProjectPE project = experiment.getProject();
         final String projectCode = project.getCode();
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DefaultStorageProcessorTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DefaultStorageProcessorTest.java
index 8f923973a21665be354ce948eef1cffbb867b5ef..9fbc5f4acb978ae29e7c2a2e5a648d1dbcaea38b 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DefaultStorageProcessorTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DefaultStorageProcessorTest.java
@@ -31,7 +31,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.FileFormatType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProcedureType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.types.ProcedureTypeCode;
 
 /**
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
index fdb2045ac75aa0cd4131c98df0d366c8ec7379ca..9ec81a7c24b782ef307ef207f379e837233a43f5 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
@@ -70,7 +70,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.GroupPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProcedureType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProcessingInstructionDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePropertyPE;
@@ -567,7 +566,6 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
                 {
                     one(limsService).registerDataSet(with(equal(SESSION_TOKEN)),
                             with(equal(dataSetInformation.getSampleIdentifier())),
-                            with(equal(PROCEDURE_TYPE.getCode())),
                             with(new ExternalDataMatcher(targetData1)));
 
                     checkSuccessEmailNotification(this, dataSetInformation, DATA_SET_CODE,
@@ -616,7 +614,6 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
                 {
                     one(limsService).registerDataSet(with(equal(SESSION_TOKEN)),
                             with(equal(dataSetInformation.getSampleIdentifier())),
-                            with(equal(PROCEDURE_TYPE.getCode())),
                             with(new ExternalDataMatcher(targetData1)));
 
                     checkSuccessEmailNotification(this, dataSetInformation, DATA_SET_CODE,
@@ -669,7 +666,6 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
                 {
                     one(limsService).registerDataSet(with(equal(SESSION_TOKEN)),
                             with(equal(dataSetInformation.getSampleIdentifier())),
-                            with(equal(PROCEDURE_TYPE.getCode())),
                             with(new ExternalDataMatcher(targetData1)));
 
                     checkSuccessEmailNotification(this, dataSetInformation, DATA_SET_CODE,
@@ -715,7 +711,6 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
                 {
                     one(limsService).registerDataSet(with(equal(SESSION_TOKEN)),
                             with(equal(dataSetInformation.getSampleIdentifier())),
-                            with(equal(PROCEDURE_TYPE.getCode())),
                             with(new ExternalDataMatcher(targetData1)));
 
                     checkSuccessEmailNotification(this, dataSetInformation, DATA_SET_CODE,
@@ -889,7 +884,6 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
 
                     one(limsService).registerDataSet(with(equal(SESSION_TOKEN)),
                             with(equal(dataSetInformation.getSampleIdentifier())),
-                            with(equal(PROCEDURE_TYPE.getCode())),
                             with(new ExternalDataMatcher(targetData1)));
                     will(throwException(new EnvironmentFailureException(
                             "Could not register data set folder")));
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DatasetDownloadServletTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DatasetDownloadServletTest.java
index 2ddfd0f22b971ec647cfd678efcf93ff5a9e319d..fdce0b982dcaa9741cdb592cdf54f5d306b14151 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DatasetDownloadServletTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DatasetDownloadServletTest.java
@@ -54,7 +54,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.GroupPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.LocatorTypePE;
-import ch.systemsx.cisd.openbis.generic.shared.dto.ProcedurePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
 
@@ -538,13 +537,11 @@ public class DatasetDownloadServletTest
         ProjectPE project = new ProjectPE();
         project.setCode(PROJECT_CODE);
         project.setGroup(group);
-        ProcedurePE procedure = new ProcedurePE();
         ExperimentPE experiment = new ExperimentPE();
         experiment.setCode(EXPERIMENT_CODE);
         experiment.setProject(project);
-        procedure.setExperiment(experiment);
         final ExternalDataPE externalData = new ExternalDataPE();
-        externalData.setProcedure(procedure);
+        externalData.setExperiment(experiment);
         externalData.setCode(EXAMPLE_DATA_SET_CODE);
         SamplePE samplePE = new SamplePE();
         samplePE.setCode(SAMPLE_CODE);
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISServiceTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISServiceTest.java
index 9f5a1ddc0519085a483d614b2b38bb839bf76b13..3dc6d1e81842a9f123b4dc6e1ac95b11bd6f91b0 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISServiceTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISServiceTest.java
@@ -132,7 +132,7 @@ public class EncapsulatedOpenBISServiceTest
             {
                 {
                     one(limsService).registerDataSet("", dataSetInfo.getSampleIdentifier(),
-                            procedureTypeCode.getCode(), data);
+                            data);
                 }
             });
         encapsulatedLimsService.registerDataSet(dataSetInfo, procedureTypeCode.getCode(), data);