2023:Behaviors (Property)

From Grooper Wiki

This article is about an older version of Grooper.

Information may be out of date and UI elements may have changed.

202520232021
Behaviors are like telling the mind what to let in and out.

Behaviors refer a group of functionality configured using a Content Type's Behaviors property. Behaviors enable different features for how documents of a specific Content Type are processed and define their settings. This includes how they are exported, if Label Sets are used for the Document Type and more.

You may download and import the file(s) below into your own Grooper environment (version 2023). There is a Batch with the example document(s) discussed in this tutorial, as well as a Project configured according to its instructions. Given the proprietary nature of SharePoint and Database connections, the connection objects and their configuriations cannot be shared.
Please upload the Project to your Grooper environment before uploading the Batch. This will allow the documents within the Batch to maintain their classification status.

About

Behaviors are born of the idea that consolidating the control of the flow of data to the objects most relevant to its collection and delivery (Content Types{Content Model, Content Category, Document Type} and the Export activity) creates a more streamlined and effective Grooper experience. If the Content Type controls all the relevant information about how documents are organized and what is to be collected from them, it is logical that controlling how those documents come into Grooper, and how they get out, should also be defined by the same object. It is also a much cleaner experience to not have multiple steps in a Batch Process to cover the types of Export activities (Legacy Export, Mapped Export, Database Export), but instead a single Export activity that leverages the Behaviors of the Content Type, Behaviors defined on the Export activity, or both.

If you take CMIS Connections, for example, Grooper previously created an unnecessary amount of objects to get to the CMIS Content Type. The mappings for importing and exporting were also set here, which made for more places which a person need to go to configure the flow of data into and out of Grooper. It also created a bottle neck of control because if you wanted to have disparate Content Types use a similar CMIS connection, but the import/export mappings inherently needed to be different, you would have had to create a separate CMIS Content Type. Now, one CMIS Repository object can exist, and the import/export mechanisms are controlled via Behaviors (again, defined on Content Types or Export activities.)

Types of Behaviors

There are four types of Behaviors that can be added to a Content Type or Export activity.

Import

Import Behaviors control the flow of documents into Grooper by establishing communication, an Import Definition (of which multiple can exist), between a CMIS Repository object and a Grooper Content Type.

CMIS Content Type objects no longer exist in Grooper 2021, therefore Import mappings are no longer set there. They are instead set on an Import Behavior of a Content Type. This elminates the need for multiple CMIS Conent Type objects to exist for the individual needs of discrete Content Types, and instead consolidates the control to the object most pertinent to the import functionality.

Export

Export Behaviors control the flow of documents out of Grooper by defining export connectivity to external systems such as file systems (directly through a File Export definition, or a CMIS Repository object), content management systems (via CMIS Repository objects), Database Tables, mail servers (directly through an IMAP Export definition, or a CMIS Repository object), or FTP/SFTP servers (directly through FTP/SFTP Export definitions, or a CMIS Repository object).

CMIS Content Type objects no longer exist in Grooper 2021, therefore Export mappings are no longer set there. They are instead set on the Export Behavior of a Content Type , or a Batch Process Step set to Export on its Activity Type property. This eliminates the need for multiple CMIS Content Type objects to exist for the individual needs of discrete Content Types, and instead consolidates the control to the object most pertinent to the export functionality.

Text Rendering

Text Rendering Behaviors control the pagination, or lack thereof, of text based documents (like a .txt file) in Grooper. In Grooper 2.9 and before, text based documents were rendered, by default, as documents, and viewed as such in the document viewer. The rendered document was made, or paginated, to be as wide as the longest line of text.

In Grooper 2021, by default, text documents are handled natively and viewed in the document viewer as you would the text based document in any other normal text document handling software, like Notepad. In order to view a text based file as a paginated document you must add a Text Rendering behavior to a Content Type and classify it appropriately.

Labeling

The Labeling Behavior is a Content Type Behavior designed to collect and utilize a document's field labels in a variety of ways. This includes functionality for classification and data extraction.

The Labeling Behavior functionality allows Grooper users to quickly onboard new Document Types for structured and semi-structured forms, utilizing labels as a thumbprint for classification and data extraction purposes. Once the Labeling Behavior is enabled, labels are identified and collected using the "Labels" tab of Document Types. These "Label Sets" can then be used for the following purposes:

  • Document classification - Using the Labelset-Based Classification Method
  • Field based data extraction - Using the Labeled Value Extractor Type
  • Tabular data extraction - Using a Data Table object's Tabular Layout Extract Method
  • Sectional data extraction - Using a Data Section object's Transaction Detection Extract Method

Understanding the full functionality of the Labeling Behavior is worthy of it’s own article, which can be found by clicking this link.

PDF Data Mapping

The PDF Generate Behavior is a Content Type Behavior designed to create an exportable PDF file with additional native PDF elements, using the classification and extraction content of a Batch Folder. This includes capabilities to export extracted data as PDF metadata, inserting bookmarks, and creating PDF annotations, such as highlighting, checkbox and signature widgets.

Understanding the full functionality of the PDF Data Mapping is worthy of it’s own article, which can be found by clicking this link.

How To: Import and Export Behaviors

Following is a walkthrough demonstrating the setup of Behaviors using a simplified use-case utilizing SharePoint and a database table. It is important to understand that due to the self-contained nature of the aforementioned utilities that this walkthrough will require some translation on the reader's part.

Foundations

Understanding the infrastructure of what's being used for the following walkthrough will help the example make sense.

SharePoint

This test Sharepoint enviornment has three documents it in. The First Name and Last Name fields are left intentionally blank. The Employee ID fields are filled with the intention of reading those values into Grooper upon import. Two of the documents have the DocType fields filled, while the third does not. This will be used to demonstrate how documents can be classified with results from the CMIS repository, while also showing the default behavior otherwise. The Imported fields are set to No. The query used to import the documents will look for the No result to know what to import. Upon importing into Grooper this value will be read and simultaneously changed to InProcess to prevent further pickup. Finally, on export the fields will be written to with Yes to signify they’ve been processed.

Document Understanding

The documents are populated with the first and last names of the employee, which will be extracted and later exported back to the SharePoint to populate the First Name and Last Name columns. The Earnings table will be extracted by Grooper and sent to a database table. The information will be flattened out with the Employee ID read from the SharePoint and sent with the table information so that the SharePoint and database information can be related.

CMIS Repository

  1. Here the imported CMIS Repository is selected in Grooper Design Studio.
  2. On the Type Definitions tab...
  3. ...you can see that because this particular subsite of the SharePoint environment is referenced by a Behavior that the icon has a green dot and...
  4. ...with it selected you can see the stucture of the SharePoint subsite like the column names and their properties.

Database

  1. An imported database table is selected here in Grooper Design Studio.
  2. You can view the structure of the table and see that it includes what we saw from the Earnings table from the document, along with the Employee ID to marry rows from this table back to the SharePoint. In the Data Preview below, you’ll notice there is no data yet.

Data Model & Extraction

  1. Here is the sample Data Model selected with three Data Fields and the accompanying Data Table.
  2. It is configured properly as you can see the successfully extracted information displayed in the Data Model Test Results area.
  3. You can also see the document structure of the extracted information displayed in the Document Viewer.

Batch Process

  1. The Batch Process highlighted is a very simple model for this example setup.
  2. The main thing about this setup is to demonstrate the Export Activity.

Import Behavior Setup

In this section we will cover how to configure an Import Behavior with both read and write properties.

Behaviors

  1. Here we have selected a Content Type, specifically the Content Model.
  2. Select the Behaviors property and click the ellipsis button.
  3. This will bring up the Behaviors - List of Behaviors menu from which you can click the Add drop-down and select Import Behavior.

Import Definitions

  1. Select the Import Definitions property and click the ellipsis button.
  2. This will bring up the Import Definitions - List of Import Defintion menu from which you can click the Add drop-down and select CMIS Import Definition.


  1. With the CMIS Import Definition added you can select the CMIS Repository property and choose an imported CMIS Repository object.


  1. After selecting a CMIS Repository you can select the CMIS Content Type property and choose, in this case of SharePoint, a subsite document library.

Read Mappings

A critical aspect to understand here is document classification upon import. By setting the Read Mappings property you are telling Grooper to populate a Data Element with information. In doing so, you are forcing Grooper to associate the incoming document with the Contnet Type related to the Data Model that owns that Data Element. In short, the incoming documents will be classified as BehavioursContentModel by default.


  1. Select Read Mappings property and click the ellipsis button.
  2. In the CMIS Import Map window you can set which fields you want to map. Here we set the Employee ID field to match the Employee_ID column from SharePoint.

||


The Document Type Name property allows us to read a value from the CMIS Repository and classify documents as a result. This is very useful, and something completely new to this version of Grooper.

If you recall, there are two documents in the SharePoint with the DocType column populated: one test, the other test2. There are two Document Types in the sample Content Model called test and test2. As a result, this read mapping will allow those two documents to come in classified as those Document Types. The third document, having no DocType value from SharePoint, will come in classified as BehavioursContentModel.

A word of caution: If the Document Type Name property is ever set, any and all documents that are brought in via Import Behaviors that leverage the same CMIS Repository will be classified as the Content Type whose Import Behavior has this property set.


  1. Here we are setting the Document Type Name field to match the DocType column from SharePoint.

Write Mappings

We will be looking for documents from the SharePoint that have the Imported value of No. This lets us know the documents have not been processed by Grooper yet. Immediately upon import we will use the Import Write Mappings property to change the values of the Imported column from No to InProcess.


  1. Select the Write Mappings property and click the ellipsis button to bring up the CMIS Update Map window. Here we are setting the Imported field to the expression "InProgress" which will insert it as a string in SharePoint upon import.

Export Behaviors Setup

In this section we will cover how to configure an Export Behaviors for both a Content Type and a Batch Process Step configured for Export. While all the Export Mappings in this sample use case could be set on the Content Model, this walkthrough includes an Export Mapping in the Batch Process to show how both can be leveraged.

Not all types of Export Behaviors are covered (File, SFTP, FTP, and IMAP are not included.) If you feel, after reading this article, that one of the other types should be covered because it is complex enough to warrant a walkthrough, please contact the Training and Education team.

Content Model Export Behavior

The Export Behavior used here is concerned with exporting the document to the CMIS Repository.


  1. With the Content Model selected, click the Behaviors property then click the ellipsis button.
  2. In theBehaviors - List of Behaviors window click the Add drop-down and select Export Behavior.


  1. Select the Export Definitions property and click the ellipsis button.
  2. In the Export Definitions - List of Export Definitions window select the Add drop-down and select CMIS Export.


  1. First we set our CMIS Repository property, then select the Target Folder property and click the ellipsis button.
  2. In Select CMIS Folder window select the CMIS Content Type, in this case we choose a SharePoint sub-site document library, that represents where the documents will be exported.


  1. Select the Write Mappings property and click the ellipsis button.
  2. In the CMIS Export Map window you can map your fields to corresponding value containers of the CMIS connection. Here we auto-mapped to the columns of the SharePoint document library, since they are named the same.

Batch Process Export Behavior

The Export Behavior used here is concerned with exporting tabular information to a Database Table. Again, this is an established, however simple, Batch Process with an Batch Process/Export step/activity that is unconfigured.


  1. Select the Batch Process Step called Export.
  2. Select the Export Behaviors property and click the ellipsis button.
  3. In the Export Behaviors - List of Export Behaviors window click the Add button.
  4. With the Content Type property selected, click the drop-down and select the Content Type desired, in our case BehavioursContentModel.


  1. Select the Export Definitions property and click the ellipsis button.
  2. In the Export Definitions - List of Export Definitions window click the Add drop-down and select the desired export type, in our case Data Export.


  1. Select the Connection property and in the drop-down menu select the desired Database Connection object, in our case BehavioursDataConnection.


  1. Select the Table Mappings property and click the ellipsis button.
  2. In the Table Mappings - List of Table Mappings window select the Source Scope property and in the drop-down menu select the desired scope, in our case the Earnings table.
    Keep in mind, setting the scope to this object will allow not only the contents of the table to be collected, but it will also flatten the fields about it into the exported rows.


  1. Select the Target Table property and in the drop-down menu select the desired Database Table object, in our case dbo.BehavioursExport.


  1. Select the Column Mappings property and click the ellipsis button.
  2. In the Column Map window you can map your columns and fields to the corresponding value containers of the data connection. Here we auto-mapped to the columns of the SharePoint document library, since they are named the same.


The following property is important because it determines priority of Behaviors when sharing between a Content Type and Batch Process Step. Shared refers to the Behaviors of the Content Type, while Local refers to the Behaviors of the Batch Process Step.

  1. Select the Shared Behavior Mode property and select the desired share behavior, in our case SharedOrLocal.
  2. View the help file to understand which option you may select.

Execution and Results

In this section we'll take a look at the results by running a manual import with a CMIS Query and associating it with the sample Batch Process.


  1. To take advantage of automated Activity Processing services, select the Production branch of the Batches folder.
  2. In the Batch drop-down select the desired CMIS Import property, in our case Import Query Results....

Import Query

  1. In the Import Query Results window select the CMIS Query property and click the ellipsis button.


  1. In the CMIS Query Editor window select the Primary Content Type property and select the desired CMIS Content Type from the drop-down menu.


  1. Using either the Select Elements and Where Elements properties, or writing it manually, you can establish a query.
  2. Here we are selecting all documents from the SharePoint document library that have the Imported column set to No.
  3. Execute Query to see the results in the List View.


  1. In the Import Query Results window select the Disable Select Clause Optimization property and set it to the desired setting, in our case True.
  2. This will allow the query to run more quickly/smoothly if set to True.
  3. Be sure to set any remaining properties like the Start Step in our case so it’s associated with a Batch Process.
  4. Analyze first if you want, otherwise Start Import.
  5. Observe the given results and close the window.

Reviewing Classification

  1. Given the simple nature of the Batch Process, we are jumping to a point that has something pertinent to show. Here we are observing that the Document Type Name property, set previously in our Import Mappings, has successfully classified these two documents.


  1. The third document did not have its DocType column set in SharePoint, so it came in with the default Content Type of the associated Content Model.

Viewing Results

Here in the Data Review area you can see that all the data was successfully extracted.


Viewing the SharePoint site we can see that export finished and successfully upated all the empty columns, and set the Imported column values to Yes, meaning they have completed processing and will not be picked up by another import query.


Back in Grooper you can select the associated Database Table object and see the newly exported results in the Data Preview area.

Text Rendering Setup

In this section we well look at the steps required to establish a Text Rendering behavior.

Default Text Document View

By default, when text based documents are viewed in Grooper you will see them as if you would in any other text editing application, which can be obvious when there is no word wrapping. No steps are required to view the text based document in this way.

Non Word-Wrapped Text Document

In previous versions of Grooper native text files were rendered as paginated documents without word wrapping (the rendered document would be as wide as the longest line of text.) To mimic this style, use the following steps.


  1. Select the Content Type to which you will be applying the Text Rendering behavior. In this case, the Content Model.
  2. Select the Behaviors property and click the ellipsis button.


  1. In the Behaviors - List of Behaviors collection editor click Add and select Text Rendering.


  1. Select the newly added Text Rendering behavior and...
  2. ...set the Page Width property to be blank and click OK.


  1. Select your Batch.
  2. Go to the Batch Viewer tab.
  3. Select the text based document and right-click to bring up the object command menu.
  4. Select Assign Document Type.


  1. Select the desired Content Type.


  1. In the Document Viewer notice that line one is not word wrapping.
  2. Notice here in the top right of the Document Viewer we are viewing an image that has been rendered, not the native text file.

Word-Wrapped Document

With a Text Rendering behavior you can not only view a native text document as a non-standard, paginated image, but you can force a document dimension and cause lines of text to wrap accordingly.


  1. Select the Content Type to which you will be applying the Text Rendering behavior. In this case, the Content Model.
  2. Select the Behaviors property and click the ellipsis button.


  1. In the Behaviors - List of Behaviors collection editor select the Text Rendering behavior and...
  2. ...set the Page Width property back to its defaul of 8.5in.


  1. Select your Batch.
  2. Go to the Batch Viewer tab.
  3. Select the text based document.
  4. Notice in the Document Viewer line 1 is word-wrapping.
  5. Notice at the top right of the Document Viewer we are viewing an image that has been rendered, not the native text document.