{"id":14965,"date":"2021-04-19T00:00:00","date_gmt":"2021-04-19T00:00:00","guid":{"rendered":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/"},"modified":"2025-05-29T22:45:36","modified_gmt":"2025-05-29T22:45:36","slug":"document-tagging-merging-processing-and-searching-with-sharepoint-framework","status":"publish","type":"our_work","link":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/","title":{"rendered":"Document Tagging, Merging, Processing and Searching with SharePoint Framework"},"content":{"rendered":"<p>A client approached DMC to develop a document management system to fit their current business process needs. First, this client requested the ability to upload multiple files of varying types (usually email attachments) to a staging area, where they could then be merged. In addition, this merged file needed to be tagged with metadata, such as office location, so it would be properly organized and easily searchable. Lastly, these files are processed by other team members, so they needed to be able to be filled out with more fields\/tags when needed.<\/p>\r\n\r\n<p>As a <a href=\"\/about\/partners\/microsoft-gold-partner\">Microsoft Gold Partner<\/a> with <a href=\"\/latest-thinking\/case-studies\/category\/104\/sharepoint\">extensive experience and knowledge of SharePoint<\/a>, DMC decided it would be the most appropriate platform for this solution given its vast capabilities with document handling. Additionally, we were able to save the client tens of thousands of dollars by utilizing SharePoint because it was already included in their Office 365 license\u2014as opposed to paying exorbitant licensing fees for a third-party software to achieve the same functionalities.<\/p>\r\n\r\n<p><b>Power Automate and SharePoint Framework<\/b><\/p>\r\n\r\n<p>SharePoint not only has built-in document management, but allows for far greater customizations through <a href=\"https:\/\/docs.microsoft.com\/en-us\/power-automate\/getting-started\" target=\"_blank\">Power Automate<\/a> flows and <a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/sharepoint-framework-overview\" target=\"_blank\">SharePoint Framework<\/a> (SPfX). Power Automate flows automate business processes and even local computer tasks, while SharePoint Framework can utilize custom code to create new list ribbon buttons, web parts, and more. Both tools save time in development and practice without sacrificing customization.<\/p>\r\n\r\n<p>To merge our client\u2019s files in SharePoint, DMC used an SPfX command set extension. This type of SPfX extension allows for custom buttons to be created for list views, so your specific code runs when this button is clicked. Typescript\/javascript code is used for SPfX extensions, but external calls to APIs can be made as well.<\/p>\r\n\r\n<p><strong><figure class=\"wp-block-image\"><img decoding=\"async\" alt=\"custom merge button using sharepoint framework\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165648\/Merge-button.png\"  \/><\/figure><\/strong><\/p>\r\n\r\n<p>When users upload and select documents to merge in SharePoint, our custom button shows up, which initiates the document-merging process when clicked. Users are first presented with a pop-up, in which they can specify various metadata fields on the newly merged document.\u00a0<\/p>\r\n\r\n<p><strong><figure class=\"wp-block-image\"><img decoding=\"async\" alt=\"custom merge form using sharepoint framework\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165648\/Merge-form.png\"  \/><\/figure><\/strong><\/p>\r\n\r\n<p><strong>Merging Process<\/strong><\/p>\r\n\r\n<p>Once the user clicks merge, a request is sent to a .NET API created by DMC and hosted on an Azure app service. This API makes use of the <a href=\"https:\/\/www.e-iceblue.com\/Introduce\/spire-office-for-net.html#.YHXwlOhKhPY\" target=\"_blank\">Spire.Office .NET library<\/a>, which can merge many different Microsoft file types. This Spire.Office library required an initial license purchase, but ultimately saved a great deal of development time\u2014therefore saving money in the long run. Once this file is merged and populated with the metadata selected by the user, it is saved back onto SharePoint.<\/p>\r\n\r\n<p>Once merged, a team member processes the document by filling out more metadata on that SharePoint item, and a Power Automate flow\u00a0runs when those changes are made. When the document is fully processed, it is marked &#8220;completed&#8221; and moved to a final library based on its categorization.<\/p>\r\n\r\n<p>Due to the sheer number of documents needed to be processed, DMC decided to store them in separate libraries, but all within the same site. Since these documents are located in various libraries, we created a custom SPfX web part to make searching and sorting these completed documents seamless and intuitive.<\/p>\r\n\r\n<div>\r\n<p>Pictured below is the custom web part, which allows users to search based on various column values of the documents, as well apply filters to easily see similar and specific documents. DMC created this web part with <a href=\"https:\/\/reactjs.org\/\" target=\"_blank\">React<\/a> and utilized Microsoft&#8217;s <a href=\"https:\/\/developer.microsoft.com\/en-us\/fluentui\" target=\"_blank\">Fluent UI library<\/a> to maintain SharePoint&#8217;s look and feel.\u00a0DMC\u2019s extensive <a href=\"https:\/\/www.dmcinfo.com\/latest-thinking\/case-studies\/view\/id\/559\/employee-management-system-using-react-and-net\">experience with React development<\/a>, as well as the need for Fluent UI components and complex filtering\/sorting logic made React an easy choice for this solution. Additionally, when making search queries, we used <a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/general-development\/using-the-sharepoint-search-query-apis\" target=\"_blank\">SharePoint&#8217;s search API<\/a>.<\/p>\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" alt=\"custom web part for searching on SharePoint\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165648\/SharePoint-web-part-picture.png\"  \/><\/figure>\r\n\r\n<p>DMC&#8217;s extensive technical knowledge of current Microsoft product capabilities and our vast experience implementing these solutions not only saved the client money, but provided them with a comprehensive solution that met all their needs.<\/p>\r\n\r\n<p><strong>Read more about DMC\u2019s <a href=\"\/services\/digital-workplace-solutions\/microsoft-consulting-services\">Microsoft consulting services<\/a> and <a href=\"\/contact\">contact us<\/a> to get started on your next project. <\/strong><\/p>\r\n<\/div>\r\n","protected":false},"excerpt":{"rendered":"<p>A client approached DMC to develop a document management system to fit their current business process needs. First, this client requested the ability to upload multiple files of varying types (usually email attachments) to a staging area, where they could then be merged. In addition, this merged file needed to be tagged with metadata, such [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":14961,"template":"","meta":{"customer":"CBCS","summary":"<p>DMC developed a SharePoint document management solution for our client that supports document merging, metadata tagging, processing, organization, and searching. DMC mitigated costs and development time without sacrificing quality, functionality, or appearance.<\/p>\r\n","description":"","customer_benefits":"<ul>\r\n <li>Saved tens of thousands of dollars in software<\/li>\r\n <li>Document merger process is far more time-effective than if done manually<\/li>\r\n <li>Document tagging makes organization, filtering, and moving files simple<\/li>\r\n <li>Ability to search by variety of document fields<\/li>\r\n <li>Analysis\/KPI on documents<\/li>\r\n <li>Seamless visual integration with SharePoint<\/li>\r\n<\/ul>\r\n","components_used":"<ul>\r\n <li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/sharepoint-framework-overview\" target=\"_blank\">SharePoint Framework<\/a><\/li>\r\n <li><a href=\"https:\/\/www.typescriptlang.org\/\" target=\"_blank\">Typescript<\/a><\/li>\r\n <li><a href=\"https:\/\/jquery.com\/\" target=\"_blank\">JQuery<\/a><\/li>\r\n <li><a href=\"https:\/\/reactjs.org\/\" target=\"_blank\">React<\/a><\/li>\r\n <li><a href=\"https:\/\/developer.microsoft.com\/en-us\/fluentui\" target=\"_blank\">Office UI fabric<\/a><\/li>\r\n <li><a href=\"https:\/\/dotnet.microsoft.com\/apps\/aspnet\/apis\" target=\"_blank\">ASP .NET Web API<\/a><\/li>\r\n <li><a href=\"https:\/\/www.e-iceblue.com\/Introduce\/spire-office-for-net.html#.YHX8IehKhPZ\" target=\"_blank\">Spire.Office<\/a><\/li>\r\n <li><a href=\"https:\/\/docs.microsoft.com\/en-us\/power-automate\/getting-started\" target=\"_blank\">Microsoft Power Automate<\/a><\/li>\r\n<\/ul>\r\n","project":"","author":"Andrew Mahler","notes":""},"work_category":[708,712],"class_list":["post-14965","our_work","type-our_work","status-publish","has-post-thumbnail","hentry","work_category-digital-workplace-solutions","work_category-sharepoint"],"yoast_head":"<title>Document Tagging, Merging, Processing and Searching with SharePoint Framework | DMC, Inc.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Document Tagging, Merging, Processing and Searching with SharePoint Framework\" \/>\n<meta property=\"og:description\" content=\"A client approached DMC to develop a document management system to fit their current business process needs. First, this client requested the ability to upload multiple files of varying types (usually email attachments) to a staging area, where they could then be merged. In addition, this merged file needed to be tagged with metadata, such [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"DMC, Inc.\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-29T22:45:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165649\/unnamed-file-114.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/\",\"url\":\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/\",\"name\":\"Document Tagging, Merging, Processing and Searching with SharePoint Framework | DMC, Inc.\",\"isPartOf\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165649\/unnamed-file-114.png\",\"datePublished\":\"2021-04-19T00:00:00+00:00\",\"dateModified\":\"2025-05-29T22:45:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#primaryimage\",\"url\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165649\/unnamed-file-114.png\",\"contentUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165649\/unnamed-file-114.png\",\"width\":1400,\"height\":500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Work\",\"item\":\"https:\/\/www.dmcinfo.com\/our-work\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Document Tagging, Merging, Processing and Searching with SharePoint Framework\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dmcinfo.com\/#website\",\"url\":\"https:\/\/www.dmcinfo.com\/\",\"name\":\"DMC, Inc.\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dmcinfo.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dmcinfo.com\/#organization\",\"name\":\"DMC, Inc.\",\"url\":\"https:\/\/www.dmcinfo.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png\",\"contentUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png\",\"width\":418,\"height\":167,\"caption\":\"DMC, Inc.\"},\"image\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929\",\"https:\/\/www.instagram.com\/dmcengineering\",\"https:\/\/www.youtube.com\/DMCEngineering\",\"https:\/\/www.linkedin.com\/company\/dmc-engineering\"]}]}<\/script>","yoast_head_json":{"title":"Document Tagging, Merging, Processing and Searching with SharePoint Framework | DMC, Inc.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/","og_locale":"en_US","og_type":"article","og_title":"Document Tagging, Merging, Processing and Searching with SharePoint Framework","og_description":"A client approached DMC to develop a document management system to fit their current business process needs. First, this client requested the ability to upload multiple files of varying types (usually email attachments) to a staging area, where they could then be merged. In addition, this merged file needed to be tagged with metadata, such [&hellip;]","og_url":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/","og_site_name":"DMC, Inc.","article_publisher":"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929","article_modified_time":"2025-05-29T22:45:36+00:00","og_image":[{"width":1400,"height":500,"url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165649\/unnamed-file-114.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/","url":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/","name":"Document Tagging, Merging, Processing and Searching with SharePoint Framework | DMC, Inc.","isPartOf":{"@id":"https:\/\/www.dmcinfo.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#primaryimage"},"image":{"@id":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165649\/unnamed-file-114.png","datePublished":"2021-04-19T00:00:00+00:00","dateModified":"2025-05-29T22:45:36+00:00","breadcrumb":{"@id":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#primaryimage","url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165649\/unnamed-file-114.png","contentUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27165649\/unnamed-file-114.png","width":1400,"height":500},{"@type":"BreadcrumbList","@id":"https:\/\/www.dmcinfo.com\/our-work\/document-tagging-merging-processing-and-searching-with-sharepoint-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Work","item":"https:\/\/www.dmcinfo.com\/our-work\/"},{"@type":"ListItem","position":2,"name":"Document Tagging, Merging, Processing and Searching with SharePoint Framework"}]},{"@type":"WebSite","@id":"https:\/\/www.dmcinfo.com\/#website","url":"https:\/\/www.dmcinfo.com\/","name":"DMC, Inc.","description":"","publisher":{"@id":"https:\/\/www.dmcinfo.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dmcinfo.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dmcinfo.com\/#organization","name":"DMC, Inc.","url":"https:\/\/www.dmcinfo.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png","contentUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png","width":418,"height":167,"caption":"DMC, Inc."},"image":{"@id":"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929","https:\/\/www.instagram.com\/dmcengineering","https:\/\/www.youtube.com\/DMCEngineering","https:\/\/www.linkedin.com\/company\/dmc-engineering"]}]}},"_links":{"self":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/our_work\/14965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/our_work"}],"about":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/types\/our_work"}],"author":[{"embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/users\/8"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/media\/14961"}],"wp:attachment":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/media?parent=14965"}],"wp:term":[{"taxonomy":"work_category","embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/work_category?post=14965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}