diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AtomicEntityOperationResult.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AtomicEntityOperationResult.java
index 2eb5c9738bf27503868148f6f81aaa4784395163..1f2208a233469685e70d6ed05d43f80c9ad2c9d4 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AtomicEntityOperationResult.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/AtomicEntityOperationResult.java
@@ -151,4 +151,50 @@ public class AtomicEntityOperationResult implements Serializable
         return vocabulariesUpdatedCount;
     }
 
+    private long getAllOperationsCount()
+    {
+        return spacesCreatedCount + projectsCreatedCount + projectsUpdatedCount + materialsCreatedCount + materialsUpdatedCount
+                + experimentsCreatedCount + experimentsUpdatedCount + samplesCreatedCount + samplesUpdatedCount + dataSetsCreatedCount
+                + dataSetsUpdatedCount + metaprojectsCreatedCount + metaprojectsUpdatedCount + vocabulariesUpdatedCount;
+    }
+
+    @Override
+    public String toString()
+    {
+        if (getAllOperationsCount() == 0)
+        {
+            return "No entities have been created or updated";
+        }
+
+        StringBuilder message = new StringBuilder();
+
+        message.append("Total of " + getAllOperationsCount() + " entities have been created or updated.\n");
+
+        updateMessage(message, spacesCreatedCount, "Spaces created");
+        updateMessage(message, projectsCreatedCount, "Projects created");
+        updateMessage(message, projectsUpdatedCount, "Projects updated");
+        updateMessage(message, materialsCreatedCount, "Materials created");
+        updateMessage(message, materialsUpdatedCount, "Materials updated");
+        updateMessage(message, experimentsCreatedCount, "Experiments created");
+        updateMessage(message, experimentsUpdatedCount, "Experiments updated");
+        updateMessage(message, samplesCreatedCount, "Samples created");
+        updateMessage(message, samplesUpdatedCount, "Samples updated");
+        updateMessage(message, dataSetsCreatedCount, "Data sets created");
+        updateMessage(message, dataSetsUpdatedCount, "Data sets updated");
+        updateMessage(message, metaprojectsCreatedCount, "Metaprojects created");
+        updateMessage(message, metaprojectsUpdatedCount, "Metaprojects updated");
+        updateMessage(message, vocabulariesUpdatedCount, "Vocabularies updated");
+
+        return message.toString();
+
+    }
+
+    private void updateMessage(StringBuilder builder, long count, String msg)
+    {
+        if (count > 0)
+        {
+            builder.append(msg + ": " + count + "\n");
+        }
+    }
+
 }