• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
TSB Alfresco Cobrand White tagline

Technology Services Group

  • Home
  • Products
    • Alfresco Enterprise Viewer
    • OpenContent Search
    • OpenContent Case
    • OpenContent Forms
    • OpenMigrate
    • OpenContent Web Services
    • OpenCapture
    • OpenOverlay
  • Solutions
    • Alfresco Content Accelerator for Claims Management
      • Claims Demo Series
    • Alfresco Content Accelerator for Policy & Procedure Management
      • Compliance Demo Series
    • OpenContent Accounts Payable
    • OpenContent Contract Management
    • OpenContent Batch Records
    • OpenContent Government
    • OpenContent Corporate Forms
    • OpenContent Construction Management
    • OpenContent Digital Archive
    • OpenContent Human Resources
    • OpenContent Patient Records
  • Platforms
    • Alfresco Consulting
      • Alfresco Case Study – Canadian Museum of Human Rights
      • Alfresco Case Study – New York Philharmonic
      • Alfresco Case Study – New York Property Insurance Underwriting Association
      • Alfresco Case Study – American Society for Clinical Pathology
      • Alfresco Case Study – American Association of Insurance Services
      • Alfresco Case Study – United Cerebral Palsy
    • HBase
    • DynamoDB
    • OpenText & Documentum Consulting
      • Upgrades – A Well Documented Approach
      • Life Science Solutions
        • Life Sciences Project Sampling
    • Veeva Consulting
    • Ephesoft
    • Workshare
  • Case Studies
    • White Papers
    • 11 Billion Document Migration
    • Learning Zone
    • Digital Asset Collection – Canadian Museum of Human Rights
    • Digital Archive and Retrieval – ASCP
    • Digital Archives – New York Philharmonic
    • Insurance Claim Processing – New York Property Insurance
    • Policy Forms Management with Machine Learning – AAIS
    • Liferay and Alfresco Portal – United Cerebral Palsy of Greater Chicago
  • About
    • Contact Us
  • Blog

Alfresco – Building a Search Interface – ADF vs. OpenContent Management Suite

You are here: Home / Alfresco / ADF / Alfresco – Building a Search Interface – ADF vs. OpenContent Management Suite

October 26, 2018

In previous posts, we looked at comparing the Alfresco Development Framework (ADF) to OpenContent Management Suite (OCMS), specifically the search, contributor, and folder interfaces.  For this post, we are going to turn our attention to building an application on each of these platforms.  Specifically, we’ll look at how clients can build an Alfresco search interface.

Building a Search Interface with ADF

Being a development framework, there are a number of routes to take in order to build a search interface.  We could start completely from scratch, building an AngularJS application and utilizing ADF components from where needed.  Or, we could clone one of the provided demo applications and start modifying it as needed.  At the time of this writing, there are two demo applications provided by Alfresco.  One is the demo shell application that is part of the core ADF “Alfresco NG2 Components” codebase.  This application is more of a developer resource vs. a user-focused application, so developers that start here will likely need to modify a great deal.  Another application available is the Alfresco Example Content Application, which doesn’t have as many features as the demo shell application but is much more user focused.  We would predict that Alfresco will add features to the example content application as time goes on.

ADF Demo Application:

Example Content Application:

Given that most organizations want to start with “out of the box”, we would anticipate that most ADF applications will start by simply cloning one of these examples.  Both the demo shell and the content application put the primary search focus on the “Google” style header search bar.  As previously mentioned in our ADF Search comparison and  Share search comparison posts, this type of search isn’t very practical for most ECM use cases.

For clients that want to have a search that’s targeted to a particular object type and allows users to narrow down results based on metadata, a developer would need to build a search interface from scratch utilizing ADF components.  Fortunately, the demo shell application has a very simple example that the developer can start from.  In the left hand navigation bar, there’s a section titled “Extended Search”.  An ADF application developer could use this section to guide in building the search interface.  In the Extended Search view, a single textbox allows for the user to enter search criteria:

The field consists of the following html, from search-extended.component.html:

<div id="container-for-custom-input" class="search-extended-input-containers">
    <mat-form-field>
        <label>{{'APP_LAYOUT.WORD_TO_SEARCH' | translate}}</label>
        <input type="text" matInput
                id="custom-input" [(ngModel)]="searchedWord" [searchAutocomplete]="auto">
    </mat-form-field>
</div>

While the demo shell application only provides for one input, the developer could utilize this code to build other fields for the user to enter multiple pieces of metadata.

Once the user hits enter, TypeScript code in search-extended.component.ts kicks off the search:

generateQueryBody(searchTerm: string): QueryBody {
	if (this.useServiceApproach) {
		return null;
	} else {
		return {
			query: {
				query: searchTerm ? `${searchTerm}* OR name:${searchTerm}*` : searchTerm
			},
			include: ['path', 'allowableOperations'],
			filterQueries: [
				/*tslint:disable-next-line */
				{ query: "TYPE:'cm:folder' OR TYPE:'cm:content'" },
				{ query: 'NOT cm:creator:System' }]
		};
	}
}

In the above code, the developer would tweak the search term as well as add additional filters in the filterQueries section for custom metadata as well as a type specification. After the query executes, the results are placed in an <adf-search> component that is found in search-extended.component.html.

One benefit of the ADF is that since it is a development framework, the system can look and behave exactly as required by the business users.  The example applications provide a head start, provided that the applications are acceptable to the business users without extensive modifications.  However, at least some level of development is required, and an extensive development effort may be needed depending on user requirements.  Additionally, components are ‘configurable’ through code only.  Any update to the requirements (ex: modifications to search criteria, adding another document type for searching) require code updates and redeployment across all environments.

Building a Search Interface with OCMS

The OpenContent Management Suite takes a different approach to building the search application.  Instead of a development framework, the OpenContent Search module is configured in the administration components using a GUI interface.  Here’s an example search interface that can be configured in OCMS:

Here are the configurations that an administrator can make in order to build the search interface:

  • Object Type Config – Tells OCMS what repository object types are to be exposed in the application.  Per type, the administrator can change any attribute labels as well as filters.
  • Search Form – Configure the form for a particular object type search.  The administrator can choose particular metadata fields and controls, whether or not full text search is available, and whether or not saved searches should be exposed.
  • Search Config – Configure the search sort order and results processing.  This is where the administrator can choose how the results table should look, any actions that can be performed on the documents, as well as what happens when the user clicks on a search result.
  • Trac Config – The concept of a ‘Trac’ allows OCMS to segment the application based on business function.  For example, an Invoice trac could be used for Accounts Payable, and a separate Legal trac could be configured for contracts.  Security can be applied to ensure that these two tracs are separate if desired.  Once the Search config is configured in the previous step, we assign it to a trac.

Since the above concepts can be difficult to envision, here’s a demo video that shows how to configure a search in OCMS from scratch:

In utilizing the OpenSearch application to build our search interface, no development time is required.  Once OCMS is installed, a configuration-only approach is taken to build the interface.  If users want updates to the search (additional types, metadata, etc) or new departments want to come online with new document types, no additional development is needed.  The application can be configured and updated with no downtime since no deployments are necessary to update and apply configurations.

Summary

OpenContent Management Suite is a configurable application that TSG has been improving over the years at many of our clients, incorporating best practices into the product as it has evolved.  For clients that choose to develop an application from scratch using ADF, we would encourage the implementation of our search best practices in these applications.

Filed Under: ADF, Alfresco, Angular, OpenContent Management Suite, Search

Reader Interactions

Trackbacks

  1. Alfresco No Code - Do More with OpenContent — Technology Services Group says:
    March 30, 2020 at 7:14 am

    […] Changes are immediately reflected in the user interface with no application downtime. Since the above concepts can be difficult to envision, here’s a demo video that shows how to configure a search in OCMS from scratch: […]

    Reply

Leave a Reply Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

Search

Related Posts

  • Alfresco – ADF and OpenContent Search Comparison
  • Alfresco – Viewing Annotations on Versions
  • Alfresco No Code – Do More with OpenContent
  • Alfresco Interface Options – Comparing OpenContent, ADF and Share – Summary
  • Alfresco Deployment – No Code vs Low Code
  • Alfresco 6 Annotations – Adding OpenAnnotate to the Application Development Framework (ADF)
  • Alfresco – ADF and OpenContent Folder Comparison
  • Alfresco – ADF and OpenContent Contributor Comparison
  • OpenContent Solr Services – New TSG Product Offering
  • Do More with Your Alfresco Deployment – HPI vs. a Custom Search Interface

Recent Posts

  • Alfresco Content Accelerator and Alfresco Enterprise Viewer – Improving User Collaboration Efficiency
  • Alfresco Content Accelerator – Document Notification Distribution Lists
  • Alfresco Webinar – Productivity Anywhere: How modern claim and policy document processing can help the new work-from-home normal succeed
  • Alfresco – Viewing Annotations on Versions
  • Alfresco Content Accelerator – Collaboration Enhancements
stacks-of-paper

11 BILLION DOCUMENT
BENCHMARK
OVERVIEW

Learn how TSG was able to leverage DynamoDB, S3, ElasticSearch & AWS to successfully migrate 11 Billion documents.

Download White Paper

Footer

Search

Contact

22 West Washington St
5th Floor
Chicago, IL 60602

inquiry@tsgrp.com

312.372.7777

Copyright © 2023 · Technology Services Group, Inc. · Log in

This website uses cookies to improve your experience. Please accept this site's cookies, but you can opt-out if you wish. Privacy Policy ACCEPT | Cookie settings
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT