diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
index e2f8ab3d6ef52de97670acc099b3147730b70986..71920841472296870af405a3adf402e33117bb8f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
@@ -603,7 +603,7 @@ public abstract class Dict
     public static final String CONFIRM_ROLE_REMOVAL_TITLE = "confirm_role_removal_title";
 
     //
-    // Experiment Registration
+    // Experiment Registration/Update
     //
 
     public static final String EXPERIMENT_REGISTRATION = "experiment_registration";
@@ -613,6 +613,8 @@ public abstract class Dict
     public static final String SAMPLES_LIST = "samples_list";
 
     public static final String EXPERIMENT_IMPORT = "experiment_import";
+    
+    public static final String EXPERIMENT_BATCH_UPDATE = "experiment_batch_update";
 
     //
     // Data Set Edition
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java
index 321ccad3d9a240515e3073a4181e7e16ba91ffea..d1f76d659809ce7bf5f71d926f0b7e4cc854058e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java
@@ -513,6 +513,46 @@ public final class ComponentProvider
             };
     }
 
+    public final AbstractTabItemFactory getExperimentBatchUpdate()
+    {
+        return new AbstractTabItemFactory()
+            {
+                @Override
+                public ITabItem create()
+                {
+                    DatabaseModificationAwareComponent component =
+                        ExperimentBatchRegistrationPanel.create(viewContext, true);
+                    return createRegistrationTab(getTabTitle(), component);
+                }
+
+                @Override
+                public String getId()
+                {
+                    return ExperimentBatchRegistrationPanel.getId(true);
+                }
+
+                @Override
+                public HelpPageIdentifier getHelpPageIdentifier()
+                {
+                    return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT,
+                            HelpPageAction.BATCH_UPDATE);
+                }
+
+                @Override
+                public String getTabTitle()
+                {
+                    return getMessage(Dict.EXPERIMENT_BATCH_UPDATE);
+                }
+
+                @Override
+                public String tryGetLink()
+                {
+                    return null;
+                }
+
+            };
+    }
+
     public final AbstractTabItemFactory getExperimentRegistration()
     {
         return getExperimentRegistration(new ActionContext());
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java
index f5b70219aab2c18526fbabf554bff51e55e1ad35..328612bb57a0c587bcad9c7457d43b60b94e33a2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java
@@ -60,7 +60,8 @@ public class TopMenu extends LayoutContainer
         DATA_SET_MENU_SEARCH, DATA_SET_MENU_TYPES, DATA_SET_MENU_FILE_FORMATS,
         DATA_SET_MENU_UPLOAD, DATA_SET_MENU_MASS_UPDATE,
 
-        EXPERIMENT_MENU_BROWSE, EXPERIMENT_MENU_NEW, EXPERIMENT_MENU_IMPORT, EXPERIMENT_MENU_TYPES,
+        EXPERIMENT_MENU_BROWSE, EXPERIMENT_MENU_NEW, EXPERIMENT_MENU_IMPORT,
+        EXPERIMENT_MENU_MASS_UPDATE, EXPERIMENT_MENU_TYPES,
 
         MATERIAL_MENU_BROWSE, MATERIAL_MENU_IMPORT, MATERIAL_MENU_MASS_UPDATE, MATERIAL_MENU_TYPES,
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/experiment/ExperimentMenu.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/experiment/ExperimentMenu.java
index 7be9709bef91df5fd84bd7250f9ca6d223fa9002..3cb307838d5ff6778da9c19f011d284bac4ea2e4 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/experiment/ExperimentMenu.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/experiment/ExperimentMenu.java
@@ -43,6 +43,8 @@ public class ExperimentMenu extends TopMenuItem
                 componentProvider.getExperimentRegistration()));
         submenu.add(new ActionMenu(TopMenu.ActionMenuKind.EXPERIMENT_MENU_IMPORT, messageProvider,
                 componentProvider.getExperimentBatchRegistration()));
+        submenu.add(new ActionMenu(TopMenu.ActionMenuKind.EXPERIMENT_MENU_MASS_UPDATE, messageProvider,
+                componentProvider.getExperimentBatchUpdate()));
         submenu.add(new ActionMenu(TopMenu.ActionMenuKind.EXPERIMENT_MENU_TYPES, messageProvider,
                 componentProvider.getExperimentTypeBrowser()));
         setMenu(submenu);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
index a0b051b6b7c5405531b6172e6411f34284dbfb87..6c1fd910443a4b3284b8d147c0c6c5bfa0c38e48 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
@@ -1601,6 +1601,10 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt
                 break;
             case EXPERIMENT:
                 columns.add(NewSample.IDENTIFIER_COLUMN);
+                if (operationKind == BatchOperationKind.UPDATE)
+                {
+                    columns.add("project");
+                }
                 addProperties(columns,
                         ((ExperimentTypePE) entityType).getExperimentTypePropertyTypes());
                 break;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
index 1c34c0a57a526543e01e03e379682a08d1d71118..fcd6cd75f10c2431e53274cf486879b0782b37f7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
@@ -53,6 +53,7 @@ import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.dat
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.dataset.GenericDataSetEditForm;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.dataset.GenericDataSetViewer;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentBatchRegistrationForm;
+import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentBatchUpdateForm;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentEditForm;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentRegistrationForm;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentViewer;
@@ -413,6 +414,12 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Gener
             return new GenericExperimentBatchRegistrationForm(getViewContext(), type);
         }
 
+        @Override
+        public Widget createBatchUpdateForEntityType(ExperimentType entityType)
+        {
+            return new GenericExperimentBatchUpdateForm(getViewContext(), entityType);
+        }
+
         @Override
         public AbstractTabItemFactory createEntityEditor(final IIdAndCodeHolder identifiable)
         {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/AbstractExperimentBatchRegistrationForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/AbstractExperimentBatchRegistrationForm.java
index 1546858fdd23c0cabd59cd9b885046fba1d97673..5cfeaac41915e64eacdf1eef22b3135daeb05de8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/AbstractExperimentBatchRegistrationForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/AbstractExperimentBatchRegistrationForm.java
@@ -18,20 +18,34 @@ package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.ex
 
 import static ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareField.wrapUnaware;
 
+import java.util.List;
+
 import com.extjs.gxt.ui.client.Style.Scroll;
+import com.extjs.gxt.ui.client.event.BaseEvent;
 import com.extjs.gxt.ui.client.event.ButtonEvent;
 import com.extjs.gxt.ui.client.event.Events;
+import com.extjs.gxt.ui.client.event.Listener;
 import com.extjs.gxt.ui.client.event.SelectionListener;
 import com.extjs.gxt.ui.client.widget.form.Field;
 import com.extjs.gxt.ui.client.widget.form.FileUploadField;
-import com.extjs.gxt.ui.client.widget.form.FormPanel;
+import com.extjs.gxt.ui.client.widget.form.LabelField;
 import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.Event;
 
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.FormPanelListener;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.UrlParamsHelper;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractRegistrationForm;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.file.BasicFileFieldManager;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WindowUtils;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.BatchRegistrationResult;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BatchOperationKind;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
+import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientServiceAsync;
 
 /**
  * The <i>abstract</i> experiment batch registration panel.
@@ -50,10 +64,20 @@ public abstract class AbstractExperimentBatchRegistrationForm extends AbstractRe
 
     private final String sessionKey;
 
-    public AbstractExperimentBatchRegistrationForm(final IMessageProvider messageProvider,
+    protected final IViewContext<IGenericClientServiceAsync> viewContext;
+
+    protected final ExperimentType type;
+
+    private final BatchOperationKind batchOperationKind;
+
+    public AbstractExperimentBatchRegistrationForm(IViewContext<IGenericClientServiceAsync> viewContext,
+            ExperimentType type, BatchOperationKind batchOperationKind,
             String sessionKey)
     {
-        super(messageProvider, createId(sessionKey));
+        super(viewContext.getCommonViewContext(), createId(sessionKey));
+        this.viewContext = viewContext;
+        this.type = type;
+        this.batchOperationKind = batchOperationKind;
         this.sessionKey = sessionKey;
         fileFieldsManager =
                 new BasicFileFieldManager(sessionKey, DEFAULT_NUMBER_OF_FILES, FIELD_LABEL_TEMPLATE);
@@ -67,12 +91,6 @@ public abstract class AbstractExperimentBatchRegistrationForm extends AbstractRe
      */
     abstract protected void save();
 
-    /**
-     * Adds additional fields to the form panel. File upload field will be added automatically after
-     * specific fields.
-     */
-    protected abstract void addSpecificFormFields(FormPanel form);
-
     /**
      * Returns session key defined for given form.
      */
@@ -107,9 +125,26 @@ public abstract class AbstractExperimentBatchRegistrationForm extends AbstractRe
         return GenericConstants.ID_PREFIX + sessionKey;
     }
 
+    private LabelField createTemplateField()
+    {
+        LabelField result =
+                new LabelField(LinkRenderer.renderAsLink(viewContext
+                        .getMessage(Dict.FILE_TEMPLATE_LABEL)));
+        result.sinkEvents(Event.ONCLICK);
+        result.addListener(Events.OnClick, new Listener<BaseEvent>()
+            {
+                public void handleEvent(BaseEvent be)
+                {
+                    WindowUtils.openWindow(UrlParamsHelper.createTemplateURL(EntityKind.EXPERIMENT,
+                            type, false, false, batchOperationKind));
+                }
+            });
+        return result;
+    }
+
     private final void addFormFields()
     {
-        addSpecificFormFields(formPanel);
+        formPanel.add(createTemplateField());
         for (FileUploadField attachmentField : fileFieldsManager.getFields())
         {
             formPanel.add(wrapUnaware((Field<?>) attachmentField).get());
@@ -154,4 +189,28 @@ public abstract class AbstractExperimentBatchRegistrationForm extends AbstractRe
             });
     }
 
+    final class RegisterExperimentsCallback extends
+            AbstractRegistrationForm.AbstractRegistrationCallback<List<BatchRegistrationResult>>
+    {
+        RegisterExperimentsCallback(final IViewContext<IGenericClientServiceAsync> viewContext)
+        {
+            super(viewContext);
+        }
+
+        @Override
+        protected String createSuccessfullRegistrationInfo(
+                final List<BatchRegistrationResult> result)
+        {
+            final StringBuilder builder = new StringBuilder();
+            for (final BatchRegistrationResult batchRegistrationResult : result)
+            {
+                builder.append("<b>" + batchRegistrationResult.getFileName() + "</b>: ");
+                builder.append(batchRegistrationResult.getMessage());
+                builder.append("<br />");
+            }
+            return builder.toString();
+        }
+
+    }
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentBatchRegistrationForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentBatchRegistrationForm.java
index 55731b7be4703d8d3d295d11ec1936854c79c86f..3f4db895e77d8fd9366ef782821199894214f4a8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentBatchRegistrationForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentBatchRegistrationForm.java
@@ -16,24 +16,8 @@
 
 package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment;
 
-import java.util.List;
-
-import com.extjs.gxt.ui.client.event.BaseEvent;
-import com.extjs.gxt.ui.client.event.Events;
-import com.extjs.gxt.ui.client.event.Listener;
-import com.extjs.gxt.ui.client.widget.form.FormPanel;
-import com.extjs.gxt.ui.client.widget.form.LabelField;
-import com.google.gwt.user.client.Event;
-
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.UrlParamsHelper;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractRegistrationForm;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WindowUtils;
-import ch.systemsx.cisd.openbis.generic.client.web.client.dto.BatchRegistrationResult;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BatchOperationKind;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientServiceAsync;
 
@@ -45,74 +29,20 @@ import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientS
 public final class GenericExperimentBatchRegistrationForm extends
         AbstractExperimentBatchRegistrationForm
 {
-
     private static final String SESSION_KEY = "experiment-batch-registration";
 
-    private final ExperimentType experimentType;
-
-    private final IViewContext<IGenericClientServiceAsync> viewContext;
-
     public GenericExperimentBatchRegistrationForm(
             final IViewContext<IGenericClientServiceAsync> viewContext,
-            final ExperimentType sampleType)
+            final ExperimentType type)
     {
-        super(viewContext.getCommonViewContext(), SESSION_KEY);
-        this.viewContext = viewContext;
-        this.experimentType = sampleType;
+        super(viewContext, type, BatchOperationKind.REGISTRATION, SESSION_KEY);
     }
 
     @Override
     protected void save()
     {
-        viewContext.getService().registerExperiments(experimentType, getSessionKey(),
+        viewContext.getService().registerExperiments(type, getSessionKey(),
                 new RegisterExperimentsCallback(viewContext));
     }
 
-    @Override
-    protected void addSpecificFormFields(FormPanel form)
-    {
-        form.add(createTemplateField());
-    }
-
-    private LabelField createTemplateField()
-    {
-        LabelField result =
-                new LabelField(LinkRenderer.renderAsLink(viewContext
-                        .getMessage(Dict.FILE_TEMPLATE_LABEL)));
-        result.sinkEvents(Event.ONCLICK);
-        result.addListener(Events.OnClick, new Listener<BaseEvent>()
-            {
-                public void handleEvent(BaseEvent be)
-                {
-                    WindowUtils.openWindow(UrlParamsHelper.createTemplateURL(EntityKind.EXPERIMENT,
-                            experimentType, false, false, BatchOperationKind.REGISTRATION));
-                }
-            });
-        return result;
-    }
-
-    private final class RegisterExperimentsCallback extends
-            AbstractRegistrationForm.AbstractRegistrationCallback<List<BatchRegistrationResult>>
-    {
-        RegisterExperimentsCallback(final IViewContext<IGenericClientServiceAsync> viewContext)
-        {
-            super(viewContext);
-        }
-
-        @Override
-        protected String createSuccessfullRegistrationInfo(
-                final List<BatchRegistrationResult> result)
-        {
-            final StringBuilder builder = new StringBuilder();
-            for (final BatchRegistrationResult batchRegistrationResult : result)
-            {
-                builder.append("<b>" + batchRegistrationResult.getFileName() + "</b>: ");
-                builder.append(batchRegistrationResult.getMessage());
-                builder.append("<br />");
-            }
-            return builder.toString();
-        }
-
-    }
-
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentBatchUpdateForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentBatchUpdateForm.java
new file mode 100644
index 0000000000000000000000000000000000000000..a725679983ebc9ff464969d66e165bf62e17733a
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentBatchUpdateForm.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2010 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.openbis.plugin.generic.client.web.client.application.experiment;
+
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BatchOperationKind;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType;
+import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientServiceAsync;
+
+/**
+ * 
+ *
+ * @author Franz-Josef Elmer
+ */
+public class GenericExperimentBatchUpdateForm extends AbstractExperimentBatchRegistrationForm
+{
+    private static final String SESSION_KEY = "experiment-batch-update";
+
+    public GenericExperimentBatchUpdateForm(
+            final IViewContext<IGenericClientServiceAsync> viewContext,
+            final ExperimentType type)
+    {
+        super(viewContext, type, BatchOperationKind.UPDATE, SESSION_KEY);
+    }
+
+    @Override
+    protected void save()
+    {
+        viewContext.getService().updateExperiments(type, getSessionKey(),
+                new RegisterExperimentsCallback(viewContext));
+    }
+}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
index 8a3a4e99e532766719cfad51de29dbd7f4c2f2d0..6d67c78d86a9d4cd0e3ba3f74b2c19fdbe0477fc 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
@@ -307,6 +307,7 @@ var common = {
   EXPERIMENT_MENU_BROWSE: "Browse",
   EXPERIMENT_MENU_NEW: "New",
   EXPERIMENT_MENU_IMPORT: "Batch Import",
+  EXPERIMENT_MENU_MASS_UPDATE: "Batch Update",
   EXPERIMENT_MENU_TYPES: "Types",
   
   menu_material: "Material",
@@ -373,6 +374,7 @@ var common = {
   vocabulary_registration: "Vocabulary Registration",
   sample_batch_registration: "Sample Batch Registration",
   sample_batch_update: "Sample Batch Update",
+  experiment_batch_update: "Experiment Batch Update",
   material_batch_update: "Material Batch Update",
   sample_registration: "Sample Registration",
   sample_broser: "Sample Browser",