{"id":1057,"date":"2023-04-13T19:28:47","date_gmt":"2023-04-13T13:58:47","guid":{"rendered":"https:\/\/www.techandtrain.com\/blog\/?p=1057"},"modified":"2025-10-22T14:53:05","modified_gmt":"2025-10-22T09:23:05","slug":"checklist-for-dms-use-case-in-liferay","status":"publish","type":"post","link":"https:\/\/www.techandtrain.com\/blog\/2023\/04\/checklist-for-dms-use-case-in-liferay\/","title":{"rendered":"Checklist for DMS Use Case in Liferay"},"content":{"rendered":"\n<p>Find below a checklist for Liferay\u2019s DMS (Document Management System) Use Case:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Size your document average size, range of size, number of documents, type, viewers, thumbnail requirements early<\/li>\n\n\n\n<li>Decide the workflow templates for start plus growth per quarter &amp; estimated workflow instances per day \/ week \/ month in advance which will run on your documents<\/li>\n\n\n\n<li>Size your file store and decide on SAN \/ NAS requirements early based on latency \/ size of documents \/ number of folders and so on<\/li>\n\n\n\n<li>Switch to advanced file store early if you have large number of documents &#8211; this is preferrable right from the start<\/li>\n\n\n\n<li>Consider adding multiple repositories in advance if you have multiple file stores and a very large number of documents across repositories<\/li>\n\n\n\n<li>Use case of DMS specific software other than Liferay working alongside Liferay mounted via CMIS protocol should be considered early incase of very large number of documents across repositories<\/li>\n\n\n\n<li>Full text \/ partial \/ multilingual search requirements should be planned early<\/li>\n\n\n\n<li>Scanning integration if needed should be considered<\/li>\n\n\n\n<li>Anti-virus considerations should be considered depending on use case<\/li>\n\n\n\n<li>Response times should be calculated based on network latency for all users<\/li>\n\n\n\n<li>Mobile, responsive, desktop, laptop \/ universal views for documents need to be planned<\/li>\n\n\n\n<li>Cloud deployment use case in terms of blob storage \/ file store considerations should be done early<\/li>\n\n\n\n<li>Separate Elasticsearch should be planned<\/li>\n\n\n\n<li>Access control, confidentiality, digital rights management related planning and requirements should be done as a prerequisite<\/li>\n\n\n\n<li>Liferay file store, Elasticsearch, data folder, filesystem and database should not be directly worked on &#8211; We should work via Liferay UI\/Control Panel\/Groovy\/API and so on. Exceptions are there like reindexing problems, performance tuning and so on but they should be more exceptions than norm.<\/li>\n\n\n\n<li>Include backup\/restore in sync with database. Also in DR.<\/li>\n\n\n\n<li>Leverage Ghostscript and Open Office \/ Libre Office for text extraction and conversion.<\/li>\n\n\n\n<li>Include clam-av for portal-based scans when uploads are supported from external sources.<\/li>\n<\/ul>\n\n\n\n<p>Email me: Neil@HarwaniSystems.in<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Find below a checklist for Liferay\u2019s DMS (Document Management System) Use Case: Email me: Neil@HarwaniSystems.in<\/p>\n","protected":false},"author":2,"featured_media":1058,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[192],"tags":[267,268,269,237,200],"class_list":["post-1057","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-liferay","tag-dms","tag-dms-usecase","tag-document-management-system","tag-dxp","tag-liferay"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/04\/Documents.jpg?fit=1920%2C1280&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7do02-h3","jetpack-related-posts":[{"id":1175,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/11\/liferay-best-practices-part-2\/","url_meta":{"origin":1057,"position":0},"title":"Liferay best practices &#8211; Part 2","author":"Neil Harwani","date":"November 24, 2023","format":false,"excerpt":"Following up with Part 1 of the series here:\u00a0Liferay best practices - Part 1 | LinkedIn -\u00a0Here is part 2 of Liferay best practices: Look out for settings of ORA-1795 error and it's required settings from Liferay Help Center articles if you are using Oracle If you have heavy usage\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Best-Practice.jpg?fit=1200%2C900&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Best-Practice.jpg?fit=1200%2C900&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Best-Practice.jpg?fit=1200%2C900&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Best-Practice.jpg?fit=1200%2C900&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/Best-Practice.jpg?fit=1200%2C900&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1132,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/09\/what-you-should-not-be-doing-in-liferay-part-1\/","url_meta":{"origin":1057,"position":1},"title":"What you should not be doing in Liferay &#8211; Part 1","author":"Neil Harwani","date":"September 30, 2023","format":false,"excerpt":"Here is a list of what you should not be doing in Liferay - Part 1 and also what you should be doing written right next to it in place of the wrong things: Write JDBC calls in portlets. Avoid JDBC calls in portlets. Please explore expando, service builder, dynamic\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":965,"url":"https:\/\/www.techandtrain.com\/blog\/2022\/10\/liferay-best-practices-part-1\/","url_meta":{"origin":1057,"position":2},"title":"Liferay best practices &#8211; Part 1","author":"Neil Harwani","date":"October 11, 2022","format":false,"excerpt":"Developers and managers both struggle at times to pre-plan usage of best practices in projects causing many problems which are best avoided. Providing below some learnings & best practices on using and working with Liferay \u2013 Part 1. Don\u2019t work directly on the Liferay database. Use the groovy script console\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/10\/Web-Design.jpg?fit=1200%2C720&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1001,"url":"https:\/\/www.techandtrain.com\/blog\/2022\/12\/liferay-upgrade-learnings-part-1\/","url_meta":{"origin":1057,"position":3},"title":"Liferay upgrade learnings &#8211; Part 1","author":"Neil Harwani","date":"December 23, 2022","format":false,"excerpt":"Some learnings below from various Liferay upgrades that I have been part of: Upgrades need us to plan various dry runs in advance on non-production environment Divide your upgrade between core \/ database and non-core upgrade Core includes Liferay engine, configurations and database Non-core includes themes, custom code, integrations and\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2022\/12\/Vortex.png?fit=1200%2C1121&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1098,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/07\/liferay-architecture-and-product-areas-beyond-cms-content-management-system-part-1\/","url_meta":{"origin":1057,"position":4},"title":"Liferay architecture and product areas beyond CMS (Content management system) &#8211; Part 1","author":"Neil Harwani","date":"July 15, 2023","format":false,"excerpt":"For anyone who is curious about what all are the areas for Liferay beyond CMS (Content Management System) features in terms of architecture and product, below is a glossary of major terms for the moving components & product areas - Part 1: Liferay DXP Liferay Commerce -\u00a0Commerce - Liferay Learn\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/texture-g8d12780e6_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/texture-g8d12780e6_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/texture-g8d12780e6_1280.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/texture-g8d12780e6_1280.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/texture-g8d12780e6_1280.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1184,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/11\/content-management-system-feature-best-practices-in-liferay-part-1\/","url_meta":{"origin":1057,"position":5},"title":"Content Management System feature best practices in Liferay &#8211; Part 1","author":"Neil Harwani","date":"November 29, 2023","format":false,"excerpt":"Here are some best practices for content management system feature usage in Liferay - Part 1. Separate the technical work of portlet creation, hooks, APIs, integration, themes, master templates and so on from content publishing work. Once technical work is done, setup publications feature on your production environment and publish\u2026","rel":"","context":"In &quot;Content Management&quot;","block_context":{"text":"Content Management","link":"https:\/\/www.techandtrain.com\/blog\/category\/content-management\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/MixedMedia.jpg?fit=1200%2C1019&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/MixedMedia.jpg?fit=1200%2C1019&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/MixedMedia.jpg?fit=1200%2C1019&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/MixedMedia.jpg?fit=1200%2C1019&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/11\/MixedMedia.jpg?fit=1200%2C1019&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/comments?post=1057"}],"version-history":[{"count":1,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1057\/revisions"}],"predecessor-version":[{"id":1059,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1057\/revisions\/1059"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/media\/1058"}],"wp:attachment":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/media?parent=1057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/categories?post=1057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/tags?post=1057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}