When it comes to managing documents, OpenText DM (formerly known as Hummingbird DM) is a widely used platform that allows users to store, organize, and retrieve digital files in a centralized manner. However, there are times when specific client applications or features are required, which means that seamless integration with the DM server is necessary. In such scenarios, the Wrapper Library for OpenText DM can be used to bridge the gap between client applications and the DM server, enabling a wide range of document management solutions.
OpenText DM provides its own API that can be used to develop customized client applications or integrate with third-party systems. However, there are cases where business limitations may restrict the use of the API by technical personnel. This is where the Wrapper Library for OpenText DM comes in handy as it provides an alternative way to access OpenText DM’s functionalities, allowing developers to create custom client applications or specialized features without needing to use the API directly.
Overview of OpenText DM
OpenText DM is a feature-rich and comprehensive platform that is designed to manage large repositories of digital assets. This platform was formerly known as Hummingbird Document Management System. It is an all-in-one solution that allows businesses to effortlessly organize, search, share, and control access to their digital assets. From documents and images to videos and other files, OpenText DM can handle everything with ease. It is suitable for businesses of all sizes, empowering them to keep their digital assets organized and readily accessible.
Currently, OpenText offers an enterprise solution for Enterprise Information Management (EIM). EIM is a comprehensive approach to managing an organization’s information, from creation and storage to distribution and archival. It involves integrating all types of information systems and data sources, including structured and unstructured data, to provide a complete view of the organization’s information assets.
OpenText’s EIM solution provides a range of capabilities, including content management, business process management, customer experience management, and analytics. It helps organizations to gain insights from their data, improve their business processes, and deliver better customer experiences.
To learn more about OpenText’s EIM solution, you can visit their website at www.opentext.com.
Purpose and Functionality of the Wrapper Library
Designed in VB.net, the Wrapper Library for OpenText DM serves as a middleware between client applications and the OpenText DM server. It provides a standardized interface for accessing and manipulating documents, profiles, and libraries stored on the server. This wrapper library offers several key functionalities:
- Centralized Access: The wrapper library simplifies access to all libraries, document trees, document profiles, and contents on the OpenText DM server.
- Advanced Search Capabilities: It enables advanced search operations across profile fields and the content of documents, facilitating comprehensive document retrieval.
- Security and Authorization: The wrapper library adheres to OpenText DM’s security protocols, ensuring that only authorized users can access and manipulate documents based on their assigned roles and permissions.
' *************************
' Class Name: HBSearch
' Developed by: Reza Savadkouhi
' Editor(s): Reza Savadkouhi
' Created: --- Filtered ---
' Last Released Version: 4.0
' Last Update: --- Filtered ---
' ---- Description:
' Hummingbird DM Search. vb.net
' ---- Versions:
' 1.0__--- Filtered ---
' --- Filtered ---
' 4.0__--- Filtered ---
' *************************
Imports Microsoft.VisualBasic
Imports System.Reflection
Public Class HBSearch
' ####
' --- Constants
Const AVAILABLE_SEARCH_FIELDS_COUNT = 13 ' Hummingbird API Search Tools maximum available return fields
' ####
' --- Variables
Private vValidate As Boolean
Private vLibrary As HBLibrary
Private vName As String
Private vSearchType As HBSearchType
Private vSearchLibrary As String
Private vProfile As HBProfile
Private vCriteria As String ' For content search
Private vCriteriaFields As List(Of HBProfileField) ' For profile search
Private vReturnFields As List(Of HBProfileField)
'Private vResult As List(Of HBProfile)
Private vResult As List(Of HBDocument)
Private vRowsFoundCount As Integer
Private vResultTable As DataTable
Private vFolderContent As PCDPropertyLists
' ####
' --- Methods
Sub New()
ResetAll()
End Sub
Private Sub ResetAll()
vValidate = False
vLibrary = New HBLibrary
vName = ""
vSearchType = HBSearchType.ST_UNKNOWN
vSearchLibrary = ""
vProfile = New HBProfile
vCriteria = ""
vCriteriaFields = New List(Of HBProfileField)
vReturnFields = New List(Of HBProfileField)
'vResult = New List(Of HBProfile)
vResult = New List(Of HBDocument)
vResultTable = New DataTable
vResultTable.Columns.Add(HBConstant.HBPFDOCNAME)
vResultTable.Columns.Add(HBConstant.HBPFDOCNUM)
vResultTable.Columns.Add(HBConstant.HBPFFORMID)
vFolderContent = New PCDPropertyLists
End Sub
Public Function SetLibrary(ByVal inLibrary As HBLibrary) As Boolean
Dim FResult As Boolean = False
SetLibrary = FResult
vValidate = False
Try
vLibrary = inLibrary
FResult = True
Catch ex As Exception
Finally
SetLibrary = FResult
End Try
End Function
Public Function AddCriteriaField(ByVal inFieldName As String, ByVal inFieldValue As String) As Boolean
Dim FResult As Boolean = False
AddCriteriaField = FResult
vValidate = False
Try
--- Filtered ---
Catch ex As Exception
Finally
AddCriteriaField = FResult
End Try
End Function
--- Filtered ---
Public Function ExecuteSearch(Optional ByVal inSearchType As HBSearchType = HBSearchType.ST_UNKNOWN, Optional ByVal inCriteria As String = "") As Boolean ', Optional ByVal inLibrary As String = "") As Boolean
Dim FResult As Boolean = False
ExecuteSearch = FResult
vValidate = False
Try
If inSearchType <> HBSearchType.ST_UNKNOWN Then vSearchType = inSearchType
Select Case vSearchType
Case HBSearchType.ST_PROFILE ' only profile
FResult = ExecuteProfileSearch(vLibrary.Library)
Case HBSearchType.ST_CONTENT ' only content
FResult = ExecuteContentSearch(vLibrary.Library, inCriteria)
Case HBSearchType.ST_EASY_PROFILE ' full text profile
FResult = ExecuteEasyProfileSearch(vLibrary.Library, inCriteria)
Case HBSearchType.ST_EASY_BOTH ' full text content and profile
FResult = ExecuteEasyContentProfileSearch(vLibrary.Library, inCriteria)
Case HBSearchType.ST_BOTH ' content and profile
FResult = ExecuteContentProfileSearch(vLibrary.Library, inCriteria)
Case Else
FResult = False
End Select
Catch ex As Exception
Finally
ExecuteSearch = FResult
vValidate = FResult
End Try
End Function
--- Filtered ---
' ####
' --- Utilities
Public Function utlGetFolderContent_Set(ByVal inFolderDocNumber As String) As Boolean
Dim FResult As Boolean = False
utlGetFolderContent_Set = FResult
Try
vFolderContent = Nothing
vFolderContent = New PCDPropertyLists
With vFolderContent
.SetDST(vLibrary.DST)
.SetObjectType("ContentsCollection")
.SetProperty("PARENT", CStr(inFolderDocNumber))
.SetProperty("PARENT_VERSION", "0")
.Execute()
.BeginIter()
End With
FResult = True
Catch ex As Exception
Finally
utlGetFolderContent_Set = FResult
End Try
End Function
--- Filtered ---
Public ReadOnly Property RowsFoundCount() As Integer
Get
RowsFoundCount = vRowsFoundCount
End Get
End Property
Public ReadOnly Property ResultTable() As DataTable
Get
ResultTable = vResultTable
End Get
End Property
End Class
Real-World Applications of the Wrapper Library
The Wrapper Library for OpenText DM has been instrumental in various document management projects, delivering enhanced functionality and customized solutions:
- Comprehensive Search Platform: One noteworthy project involved creating a comprehensive search platform similar to an internal Google search for a major holding company. This platform consolidated documents from various libraries spread across different companies, making it possible to search and retrieve information efficiently across the entire organization.
- Customized Client Applications: The wrapper library has also been leveraged to develop customized client applications for various document management tasks, tailored to specific client requirements.
Source Code
The source of the Wrapper Library is available upon request for presentation purposes. Please contact me for more information.