2023:Box (CMIS Binding): Difference between revisions

From Grooper Wiki
 
(76 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{|cellpadding=10 cellspacing=5 style="margin:12px"
{{AutoVersion}}
|-style="background-color:#ed2330; color:white"
 
|style="font-size:14pt"|'''WIP'''
[[image:box_cmis_binding_000.png|256px|right|thumb]]
 
<blockquote>{{#lst:Glossary|Box}}</blockquote>
 
{|class="download-box"
|
|
This article is a work-in-progress or created as a placeholder for testing purposesThis article is subject to change and/or expansionIt may be incomplete, inaccurate, or stop abruptly.
[[File:Asset 22@4x.png]]
|
You may download the ZIP(s) below and upload it into your own Grooper environment (version 2023)The first contains one or more '''Projects''' with resources used in examples throughout this article.  The second contains one or more '''Batches''' of sample documents.
* [[Media:2023 Wiki Box-(CMIS-Binding) Projects.zip]]
* [[Media:2023 Wiki Box-(CMIS-Binding) Batches.zip]]


This tag will be removed upon draft completion.
Please note the '''Projects''' ZIP does not contain the configured '''CMIS Connection''' or '''''Export Behaviors''''' referenced in this article.  You will need your own Box account to fully configure these resources.
|}
|}


==About==
Integration with '''[https://www.box.com/home Box]''' in '''Grooper''' leverages the '''[[CMIS+]]''' architecture to allow you to take full advantage of this powerful '''[https://en.wikipedia.org/wiki/Content_management_system Content Management System]'''.


[[image:box_cmis_binding_000.png|256px|right|thumb]]
{|class="attn-box"
|-
|
&#9888;
|
 
'''''BE AWARE: Connecting to Box requires some setup in your Box account before configuring a CMIS Connection'''


<blockquote style="font-size:14pt">Basic one linter about what a Box connection is.</blockquote>
If you are integrating Box with Grooper for the first time, your Box administrator will need to add Grooper as a "Custom App" before connecting.  This will be done in one of two ways depending on whether you are (1) entering an account ID entered into the '''CMIS Connection's''' '''''Box User ID''''' property or (2) entering a Box custom app's "App Settings" JSON entered into the '''CMIS Connection's''' '''''Custom App Settings''''' property


==About==


{|cellpadding=10 cellspacing=5 style="margin:12px"
'''Option 1: Connecting using a Box User ID'''
|-
[[File:Box-add-client-id.png|thumb|Sceenshot of the "Add App" dialogue in the Box Admin Console|left]]
|style="font-size:14pt; color:#f89420; border: 4px solid #f89420; width:40px"|[[File:Asset 22@4x.png]]
|style="border: 4px solid #f89420"|
You may download and import the files below into your own Grooper environment (version 2023).  The first contains a '''Project''' with several '''Content Models''' used as examples throughout this article.  The second contains some example '''Batches''' of sample documents.
* [[Media:2023_Project_-_Wiki_-_Box (CMIS Binding).zip]]
* [[Media:2023_Batches_-_Wiki_-_Box (CMIS Binding).zip]]
|}


Integration with '''[https://www.box.com/home Box]''' in '''Grooper''' leverages the '''[[CMIS+]]''' architecture to allow you to take full advantage of this powerful '''[https://en.wikipedia.org/wiki/Content_management_system Content Management System]'''.
This is the easiest method for most users. It will add a Grooper app to your Box account. This app is pre-approved by Box, meaning you don't have to wait for Box to approve the custom app.


{|cellpadding="10" cellspacing="5" style="margin:12px"
|-
|style="font-size:250%; background-color:#f89420; color:white; width:28px; text-align:center"|&#9888;
|style="border: 4px solid #f89420"|
If you are integrating Box with Grooper for the first time, your Box administrator will need to add Grooper as a "Custom App" before connecting.


{|cellpadding=10 cellspacing=5
|valign=top|
Using the Admin Console, go to "Apps" then "Custom Apps" to add Grooper.
Using the Admin Console, go to "Apps" then "Custom Apps" to add Grooper.




As part of the setup, you will be prompted to enter a '''''Client ID'''''.  These Client IDs are version specific.
As part of the setup, you will be prompted to enter a "Client ID", listed below:
 
<code>z9iyazstefwydilz4x3abdi3w79wogow</code>
<br clear=all>
 
'''Option 2: Connecting using Custom App Settings ("App Settings" JSON)'''
 
This route is preferable for smaller Box accounts.  Connecting with a Box account ID ('''''Box User ID''''') will consume one of your Box user accountsThis can cause connection issues for organizations with the minimum of 3 user accounts in Box.
 
Instead, these users should use the '''''Custom App Settings''''' method of connecting.  This will not consume one of your user accounts.  For more information on how to create a custom app in Box.  Visit the articles below:
* https://developer.box.com/guides/applications/app-types/custom-apps/
* https://developer.box.com/guides/mobile/ios/quick-start/configure-box-app/


Grooper 2.90:  '''cvl1qcgv14wu2dsyji3evncrq0de5h3l'''
After creating the app, Box approves it, and you activate it, you will copy the "App Settings" JSON from Box into the '''''Custom App Settings''''' property in Grooper.
<br>
Grooper 2021:  '''z9iyazstefwydilz4x3abdi3w79wogow'''
<br>
Grooper 2022:  '''z9iyazstefwydilz4x3abdi3w79wogow'''
<br>
Grooper 2023:  '''z9iyazstefwydilz4x3abdi3w79wogow'''
|
[[File:Box-add-client-id.png|frame]]
|}
|}
|}


==How To==
==How to==


=== Understanding Box For Mapped Export ===
=== Understanding the Box platform ===
 
{|class="fyi-box"
|
FYI
|
This article assumes you already have a Box account and can access it.
|}


<tabs>
<tabs>
<tab name="Understanding Box As A File System" style="margin:25px">
<tab name="Understanding Box As A File System" style="margin:25px">
====Understanding Box As A File System====
====Understanding Box as a file system====
{|
{|class="how-to-table"
| style="padding:25px; vertical-align:top; width:35%" |
|
This article assumes you already have a Box account and can access it.


It is important to understand Box is essentially a cloud-based file folder system.
It is important to understand Box is essentially a cloud-based file system.  It is a storage repository consisting of files in folders.
|| [[File:2023-Box-CMIS-Binding-Understanding-Box-As-a-File-System-01.png]]
|| [[File:2023-Box-CMIS-Binding-Understanding-Box-As-a-File-System-01.png]]
|}
|}
</tab>
</tab>
<tab name="Understanding Box As Data Storage Platform">
<tab name="Understanding Box As Data Storage Platform">
==== Understanding Box as a data storage platform ====
{|class="how-to-table"
{|class="how-to-table"
|
|
As well as a basic file system, Box can store data using Metadata Templates
As well as a basic file system, Box can store data using "Metadata Templates".


The image on the right is showing the Metadata Template being used for this folder in this Box environment. As you can see it's very simple, just three fields of information.
Metadata Templates can be assigned to files or folders in Box.
* The image on the right is showing the Metadata Template assigned to a folder in this Box environment.
* Metadata Templates are added in Box by your Box Admin.  Any number of custom metadata fields can be added to the template.
* This Metadata Template is very simple.  It has just three fields ("ID", "First Name" and "Last Name")


With a Metadata Template attached to a file (or folder), values for each field can be saved in Box.  With a "Mapped Export", you can marry data Grooper collects for a document with a corresponding field in the Metadata Template on export.  
With a Metadata Template attached to a file or folder, values for each field can be saved in Box.  With a "Mapped Export", you can marry data Grooper collects for a document with a corresponding field in the Metadata Template on export.  


To see how you would go about creating a "Mapped Export", click here: [[#Configuring a Mapped Box Export]]
To see how you would go about creating a "Mapped Export", click here: [[#Configuring a Mapped Box Export]]
Line 81: Line 95:


</tab>
</tab>
<tab name="Understanding the Content Model" style="margin:25px">
<tab name="Understanding the Content Model for Mapped Exports" style="margin:25px">
====Understanding the Content Model====
====Understanding the Content Model for Mapped Exports====
{|
{|class="how-to-table"
| style="padding:25px; vertical-align:top; width:35%" |
|
The purpose of this '''Content Model''' is to simply extract three fields of information from the document in its accompanying '''[[Batch]]'''.
The purpose of this '''Content Model''' is to simply extract three fields of information from a document in its accompanying '''Batch'''.
|| [[File:2023-Box-CMIS-Binding-01.png]]
* These three fields in the '''Data Model''' ("ID", "First Name" and "Last Name") correspond to the three fields in the Box Metadata Template ("ID", "First Name" and "Last Name").
* When performing a Mapped Export, Grooper can not only export the document to a folder location in Box, but export the data it collects for these three fields to the Metadata Template Box attaches to the exported file.
 
To see how you would go about creating a "Mapped Export", click here: [[#Configuring a Mapped Box Export]]
|| [[File:2023-Box-CMIS-Binding-Understanding-Box-for-Mapped-Export-Understanding-the-Content-Model-01.png]]
|}
|}
</tab>
</tab>
<tab name="Extracted Data" style="margin:25px">
<tab name="Mapped Export Prereq:  Extracted Data" style="margin:25px">
====Extracted Data====
====Mapped Export Prereq: Extracted Data====
Before the '''Document Export''' activity can send data, it must have data. It's easy to get in the habit of testing extraction on a '''Data Field''' or a '''[[Data Model]]''' and feel good about the results, but it must be understood that the information displayed when doing so is in memory, or temporary. When the '''Extract''' activity is successfully run against a properly classified document (you can at the very least manually assign a '''Document Type''')  it creates '''Index Data''' and marries it to the document via a '''[https://en.wikipedia.org/wiki/JSON JSON]''' file called ''Grooper.DocumentData.json''.  
Please note!  Before the '''Document Export''' activity can send data, it '''''must''''' have data.  
 
In a production scenario, this will be accomplished by the '''Extract''' step of a '''Batch Process'''.
 
However, take care when you're testing your configuration to ensure documents have extracted data '''''before''''' exporting to Box.
* It's easy to get in the habit of testing extraction on a '''Data Field''' or a '''Data Model''' and feel good about the results, but it must be understood that the information displayed when doing so is in memory, or temporary.  
* When the '''Extract''' activity is successfully run against a classified document, it creates "index data" and marries it to the document via a '''[https://en.wikipedia.org/wiki/JSON JSON]''' file called ''Grooper.DocumentData.json''.  


You can verify the extracted data's existence as follows:<br/>
{|class="how-to-table"
{|class="how-to-table"
|
|
#First, navigate to the '''Document''' (or '''Folder''') object in the node tree; not the '''Batch''', not the '''Batch Folder''', not the '''Page''', but specifically the '''Document''' object. This is where the information lives.
You can verify a document has extracted data follows:
#From there, click on the '''Viewer''' tab.
 
#Once there, click the Review button. This will upon up the Reviewer tab.
# Navigate to the document (i.e. the '''Batch Folder''') object in the node tree.
|| [[File:2023-Box-CMIS-Binding-How-To-Extracting-Data-01(1).png]]
#* Please note! You are not selecting the '''Batch''', not the '''Batch's''' root folder, not one of the document's '''Page''' objects, but specifically the document's '''Batch Folder''' object. This is where the information lives.
# Click on the '''Viewer''' tab.
# Press the Review button.  
#* This will bring up the document in a "Review" page.
|| [[File:2023-Box-CMIS-Binding-Understanding-Box-For-Mapped-Export-Extracted-Data-01.png]]
|-
|-
|
|
#<li value="4">Click the Data Viewer icon</li>
#<li value="4">Click the "Data Viewer" icon.</li>
# This will bring up the extracted data of the document.
# This will bring up the extracted data of the document.
|| [[File:2023-Box-CMIS-Binding-How-To-Extracting-Data-02.png]]
#* If the fields have data present, the document has stored index data present.
#* If the fields are empty, run the '''Extract''' activity on the document to collect and store its index data.
|| [[File:2023-Box-CMIS-Binding-Understanding-Box-For-Mapped-Export-Extracted-Data-02.png]]
|}
|}
<span style="font-size:12pt">'''[[Box (CMIS Binding)#How To|Back to top to continue to next tab]]'''</span>
<span style="font-size:12pt">'''[[Box (CMIS Binding)#How To|Back to top to continue to next tab]]'''</span>
Line 110: Line 139:
</tabs>
</tabs>


=== How to Create a Box CMIS Connection ===
=== How to create a Box CMIS Connection ===


<tabs>
Creating and configuring a '''CMIS Connection''' is the first step to importing and exporting with Box.
<tab name="Prereqs: Account ID from Box">
 
====Account ID====
====Prereqs: Account ID from Box====
{|
 
| style="padding:25px; vertical-align:top; width:35%" |
{|class="how-to-table"
|
In order to connect to Box in '''Grooper''' you&rsquo;ll need and enterprise account, and what Box refers to as an Account ID.
In order to connect to Box in '''Grooper''' you&rsquo;ll need and enterprise account, and what Box refers to as an Account ID.
# When logged into Box, click the icon for your account to expose a drop-down menu.
# When logged into Box, click the icon for your account to expose a drop-down menu.
# Click on Account Settings.
# Click on Account Settings.
# Scroll to the bottom of this page and take note of the Account ID.
# Scroll to the bottom of this page and take note of the Account ID.
|| [[image:box_cmis_binding_002.png]]
 
|
[[image:box_cmis_binding_002.png]]
|}
 
{|class="attn-box"
|
&#9888;
|
'''''BE AWARE!  There are actually two ways Grooper can connect to Box'''''
 
There are two ways a '''CMIS Connection''' can connect to Box.
# With an account ID entered into the '''''Box User ID''''' property (described in this article)
# With a Box custom app's "App Settings" JSON entered into the '''''Custom App Settings''''' property.
 
The '''''Custom App Settings''''' route is preferable for smaller Box accounts.  Connecting with a Box account ID ('''''Box User ID''''') will consume one of your Box user accounts.  This can cause connection issues for organizations with the minimum of 3 user accounts in Box.
 
Instead, these users should use the '''''Custom App Settings''''' method of connecting.  This will not consume one of your user accounts.  For more information on how to create a custom app in Box.  Visit the articles below:
* https://developer.box.com/guides/applications/app-types/custom-apps/
* https://developer.box.com/guides/mobile/ios/quick-start/configure-box-app/
 
After creating the app, Box approves it, and you activate it, you will copy the "App Settings" JSON from Box into the '''''Custom App Settings''''' property in Grooper.
|}
|}
</tab>
<tab name="Create Box CMIS Connection in Grooper">
=== Create Box CMIS Connection in Grooper ===


==== Create the Box CMIS Connection in Grooper ====
{|class="how-to-table"
{|class="how-to-table"
|
|
<big>Create a CMIS Connection</big>
# Right-click a '''Project''' (or a folder in the '''Project''').
# Right-click a '''Project''' (or a folder in the '''Project''').
# Select ''Add'', then ''CMIS Connection...''
# Select ''Add'', then ''CMIS Connection...''
|| [[File:2023-Box-CMIS-Binding-Create-Box-CMIS-Connection-in-Grooper-01.png]]
|| [[File:2023-Box-CMIS-Binding-How-to-Create-a-Box-Connection-in-Grooper-Create-a-Box-CMIS-Connection-in-Grooper-01.png]]
|-
|-
|
|
#<li value="3"> Name the '''CMIS Connection''' whatever you want.</li>
#<li value="3"> Name the '''CMIS Connection''' whatever you want.</li>
#Select "Execute".
#Select "Execute".
|| [[File:2023-Box-CMIS-Binding-Create-Box-CMIS-Connection-in-Grooper-02.png]]
|| [[File:2023-Box-CMIS-Binding-How-to-Create-a-Box-Connection-in-Grooper-Create-a-Box-CMIS-Connection-in-Grooper-02.png]]
|-
|-
|
|
<big>Configure the CMIS Connection for Box</big>
Once your '''CMIS Connection''' has been created, set your '''''Connection Settings''''' to Box.  This defines settings for '''Grooper''' to connect to Box.
Once your '''CMIS Connection''' has been created, set your '''''Connection Settings''''' to Box.  This defines settings for '''Grooper''' to connect to Box.
#<li value=5> You will then need to enter your Box Account ID.
#<li value=5> Select '''''Box User ID'''' and enter your Box Account ID.
#* If you are unsure of where to find it, please see the Prereqs tab before this one.  
#* If you are unsure of where to find your Box Account ID, please see the previous tab ("Prereqs: Account ID From Box") in this article.  
# Once your ID has been entered, you will then choose your '''''Metadata Format'''''.  
# Once your ID has been entered, you will then choose your '''''Metadata Format'''''.  
#* Bear in mind, if you want to perform a "Mapped Export", your '''''Metadata Format''''' will need to be ''Normal''.
#* Bear in mind, if you want to perform a "Mapped Export", your '''''Metadata Format''''' will need to be ''Normal''.
#* For more information on "Mapped Exports", see the [[#Configuring a Mapped Box Export]] section of this article.
#* For more information on "Mapped Exports", see the [[#Configuring a Mapped Box Export]] section of this article.


||[[File:2023-Box-CMIS-Binding-Create-Box-CMIS-Connection-in-Grooper-03(2).png]]
|
[[File:2023-Box-CMIS-Binding-How-to-Create-a-Box-Connection-in-Grooper-Create-a-Box-CMIS-Connection-in-Grooper-03.png]]
|-
|-
|
|
Having saved your settings, you can now import the repository. To do so:
<big>Import Your Box Repository</big>
# <li value="7">Click the "List Repositories" button.</li>
 
{|cellpadding=10 cellspacing=5 style="margin:12px"
Having saved your connection settings, Grooper has established a connection to your Box account, and you can now import the Box repository. This will create a '''CMIS Repository''' object Grooper can use to navigate Box's folder and file structure.  To do so:
|-
# <li value="7">Press the "List Repositories" button.</li>
|style="font-size:125%; background-color:#36b0a7; color:white; width:28px; text-align:center"|'''FYI'''
{|class="fyi-box"
|style="border: 4px solid #36b0a7"|
|
Repositories and Connections are two different things in '''Grooper'''. If you think of Box and '''Grooper''' like two separate electrical poles, then the '''CMIS Connection''' is the wire that stretches between them. It is the intangible arm that reaches out from '''Grooper''' and grasps Box. The Repository on the other hand is the cache where our data is stored.  
'''FYI'''
|
"CMIS Repositories" and "CMIS Connections" are two different things in '''Grooper'''.  
* If you think of Box and '''Grooper''' like two separate electrical poles, then the '''CMIS Connection''' is the wire that stretches between them. It is the intangible arm that reaches out from '''Grooper''' and grasps Box.  
* The imported '''CMIS Repository''' on the other hand is the cache where our data is stored (the files and folders in Box).  
|}
|}
||[[File:2023-Box-CMIS-Binding-Create-Box-CMIS-Connection-in-Grooper-04(1).png]]
|
[[File:2023-Box-CMIS-Binding-How-to-Create-a-Box-Connection-in-Grooper-Create-a-Box-CMIS-Connection-in-Grooper-04.png]]
|-
|-
|
|
#<li value="8">The repository(ies) awaiting import will appear. At this time, the dot under imported will be red, and it will say "False" under Imported.</li>
The repository (or repositories) available for import will appear.
# Once "List Repositories" has been selected, you will then be able to click "Import Repository."
#<li value="8">Select the repository you wish to import.
#* At this time, the value under '''''Imported'''' will be "False", and the dot next to it will be red.
#* Once imported, this value will change to "True", and the dot will turn green.
# Press the "Import Repository" button to import the selected repository.


||[[File:2023-Box-CMIS-Binding-Create-Box-CMIS-Connection-in-Grooper-05(1).png]]
|
[[File:2023-Box-CMIS-Binding-How-to-Create-a-Box-Connection-in-Grooper-Create-a-Box-CMIS-Connection-in-Grooper-05.png]]
|-
|-
|
|
#<li value="10">Select the repository you wish to import.</li>
#<li value="10">Ensure the listed repository is the one you wish import.
#Click Execute.
#Press the "Execute" button.
||[[File:2023-Box-CMIS-Binding-Create-Box-CMIS-Connection-in-Grooper-06(1).png]]
|
[[File:2023-Box-CMIS-Binding-How-to-Create-a-Box-Connection-in-Grooper-Create-a-Box-CMIS-Connection-in-Grooper-06.png]]
|-
|-
|
|
#<li value="12">Now we have a '''CMIS Repository'''.</li>
#<li value="12">This will create a '''CMIS Repository''' object for the selected repository.
||[[File:2023-Box-CMIS-Binding-Create-Box-CMIS-Connection-in-Grooper-07.png]]
# Grooper will use this object when importing from or exporting to folder locations in Box.
#* The '''CMIS Connection''' only initiates the connection from Grooper to Box.
#* The '''CMIS Repository''' is an object that represents a specific folder in Box.
#** It is ''this'' repository object that allows Grooper to interoperate with the folder location in Box.
|
[[File:2023-Box-CMIS-Binding-How-to-Create-a-Box-Connection-in-Grooper-Create-a-Box-CMIS-Connection-in-Grooper-07.png]]
|}
|}
</tab>
</tabs>


By now, you're wondering what does importing a repository have to do with connecting to Box? Why is this important? We need the repository because, later on, when we format our export mapping, we'll need to reference this repository. You can't tell '''Grooper''' which item will be exported, if you have no item to export.
=== Import documents using Box ===
 
{|class="wip-box"
|
'''WIP'''
|
COMING SOON!!
|}
 
=== Export documents using Box ===
 
==== Configuring a basic Box export ====
 
You can export processed documents from Grooper using a Box connection by configuring an '''''Export Behavior'''''.
* '''''Export Behaviors''''' are required to export all documents and data, regardless of what storage location they're going to.
* As a type of '''CMIS Connection''', we will configure a '''''CMIS Export''''' when configuring the '''''Export Behavior'''''.
* These basic export steps detail simply how to get a document from Grooper to a folder location in Box.
** However, these steps will apply to ''all'' Box exports, including [[Mapped Exports]] detailed below.
 
=====Add the Export Behavior and CMIS Export Definition =====


=== Configuring a Basic Box Export ===
<tabs style="margin:20px">
<tab name="Add an Export Behavior" style="margin:25px">
====Add an Export Behavior====
This configuration is specific to this article. While aspects of it can apply to any configuration, it's worth noting that your environment may require slightly different settings (especially considering proprietary pieces of information like the Account ID). Note that the URLs in the image cannot be connected to externally, so attempting to copy this configuration verbatim will give you errors. This is meant as a guide, and will require an actual Box environment on your end to be established, and real information from it supplied.<br/>
This configuration is specific to this article. While aspects of it can apply to any configuration, it's worth noting that your environment may require slightly different settings (especially considering proprietary pieces of information like the Account ID). Note that the URLs in the image cannot be connected to externally, so attempting to copy this configuration verbatim will give you errors. This is meant as a guide, and will require an actual Box environment on your end to be established, and real information from it supplied.<br/>
{|class="fyi-box"
|
'''FYI'''
|
This article demonstrates how to configure an '''''Export Behavior''''' on a '''Content Model'''.  '''''Export Behaviors''''' can be configured on any '''Content Type''' ('''Content Models''', '''Content Categories''' or '''Document Types''') or on the '''Export''' activity step itself.
* For more information on '''''Export Behaviors''''' visit the [[Export (Activity)]] article.
|}
{| class="how-to-table"
{| class="how-to-table"
| style="padding:25px; vertical-align:center; width:35%" |
|
# Select your '''Content Model'''.
# Select your '''Content Model'''.
# Make sure you are on the "Content Model" tab
# Make sure you are on the "Content Model" tab
# Select the ellipses to the right of "Behaviors".
# Select the ellipsis button to the right of the '''''Behaviors''''' property.
|| [[File:2023-BoxC-CMIS-Binding-Add-an-Export-Behavior-01(1).png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Add-an-Export-Behavior-01.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
# <li value="4"> Select the Add button. </li>
# <li value="4"> Select the "Add" button. </li>
# In the drop-down menu, select Export Behavior.
# In the drop-down menu, select ''Export Behavior''.
|| [[File:2023-BoxC-CMIS-Binding-Add-an-Export-Behavior-02(1).png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Add-an-Export-Behavior-02.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
# <li value="6"> Click the ellipses to the right of "Export Definitions".</li>
# <li value="6"> Select the ellipsis button to the right of the '''''Export Definitions''''' property.</li>
|| [[File:2023-BoxC-CMIS-Binding-Add-an-Export-Behavior-03(1).png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Add-an-Export-Behavior-03.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
# <li value="7"> Click the Add button.</li>
# <li value="7"> Click the "Add" button.</li>
# Select "CMIS Export".
# Select ''CMIS Export''.
|| [[File:2023-BoxC-CMIS-Binding-Add-an-Export-Behavior-04(1).png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Add-an-Export-Behavior-04.png]]
|}
 
===== Configure the CMIS Export Definition =====
After adding an '''''Export Behavior''''' you must configure '''''CMIS Export'''''.
* This is a crucial step, as you're essentially laying out the map in front of your '''''Export Behavior''''', and telling it what you want exported, where you want the data saved, and what properties you want written to the exported object. In other words, you're circling the destination in the brightest red possible, while giving the '''''Behavior''''' everything it needs to take with it.
 
{| class="how-to-table"
|
#Click the hamburger symbol to the right of the '''''CMIS Repository'''' property.
# In the drop-down menu, select the '''CMIS Repository''' you wish to export to.
#* In our case, this is the "All Files" repository, representing the root folder of our Box account.
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Configure-the-Export-Definition-01.png]]
|-
|-
</tab>
|
<tab name="Configure the Export Definition" style="margin:25px">
#<li value="3">If you want export to a subfolder in the Box account, select the desired folder using the '''''Target Folder''''' property.</li>
==== Configure the Export Definition ====
 
Now that you've set up your basic configuration, let's move on to configuring your Export Definition. This is a crucial step, as you're essentially laying out the map in front of your configured ''Behavior'', and telling it what you want exported, where you want the data saved, and what properties you want written to the exported object. In other words, you're circling the destination in the brightest red possible, while giving the ''Behavior'' everything it needs to take with it.
{|class="fyi-box"
{| class="how-to-table"
| style="padding:25px; vertical-align:center; width:35%" |
#Click the little hamburger-looking symbol to the right of "CMIS Repository".
# In the drop-down menu, navigate down to the file(s) you want to export in your repository.
|| [[File:2023-Box-CMIS-Binding-Configure-the-Export-Definition-01.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
#<li value="3">If you want to change where the exported item(s) will be saved, select "Target Folder".</li>
'''FYI'''
||[[File:2023-Box-CMIS-Binding-Configure-the-Export-Definition-02.png]]
|
The '''''Subfolder Path''''' property allows you to dynamically create folder locations on export using a .NET code expression.
|}
||[[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Configure-the-Export-Definition-02.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
#<li value="4">From here, you can select your desired Target File.</li>
Pressing the ellipsis next to the '''''Target Folder''''' property will bring up a folder browser.
# Once chosen, click OK.
#<li value="4">From here, you can select any folder in your Box account you want to export to.</li>
||[[File:2023-Box-CMIS-Binding-Configure-the-Export-Definition-03.png]]
# Once you've selected the folder you want, click "OK".
||[[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Configure-the-Export-Definition-03.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
#<li value="6">With your Target Folder selected, you will then need to choose the Object Type. Select "File".</li>
#<li value="6">Next, you will need to choose the '''''Object Type''''' you're exporting.</li>
# When finished, click OK.
#* We're exporting documents (not folders) So, we've selected ''File'.
{|cellpadding=10 cellspacing=5 style="margin:12px"
# When finished, click "OK".
{|class="attn-box"
|-
|-
|style="font-size:125%; background-color:#36b0a7; color:white; width:28px; text-align:center"|'''FYI'''
|
|style="border: 4px solid #36b0a7"|
|
Always check the Export Format to ensure that your are setting up the format as an attached file (this can be found under Object Data). For more information on Export Formats, see here: [[Export (Activity) - 2021]]
The '''''Export Format''''' property is extremely critical when exporting documents.  This determines what kind of file Grooper creates and exports (e.g. a PDF or TXT or XML file).  This property will be configurable once ''File'' is selected.
* For more information on '''''Export Formats''''', visit the [[Export (Activity)]] article.
|}
|}
||[[File:2023-Box-CMIS-Binding-Configure-the-Export-Definition-04.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Configure-the-Export-Definition-04.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
| style="padding:25px; vertical-align:center; width:35%" |
#<li value="8">Save.</li>
#<li value="8">Save.</li>
||[[File:2023-Box-CMIS-Binding-Configure-the-Export-Definition-05.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Basic-Box-Export-Configure-the-Export-Definition-05.png]]
|}
|}


<span style="font-size:14pt">'''[[Box (CMIS Binding)#How To|Back to top to continue to next tab]]'''</span>
==== Configuring a "mapped" Box export ====
</tab>
</tabs>
 


Mapped exports allow users to map data Grooper extracts to fields in a Box metadata template.  Configuring a "mapped export" is part of configuring the '''''CMIS Export''''.  Data can be mapped to a single metadata template or multiple metadata templates.


=== Configuring a Mapped Box Export ===
=====Mapping to a Single Metadata Template=====


<tabs>
<tab name="Mapping to a Single Metadata Template" style="margin:25px">
====Mapping to a Single Metadata Template====
The approach taken below is via the object command interface. These same settings can be applied to a '''Step''' in a '''Batch Process''' to achieve the same results, albeit in a slightly different area of the '''Grooper''' UI.<br/>
{|class="how-to-table"
{|class="how-to-table"
| style="padding:25px; vertical-align:center; width:35%" |
|
# Remaining on the Content Model tab of the '''Content Model''', select Behaviors once more.
# Mapped exports are configured as part of your '''''Export Behavior'''''.
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-01.png]]
#* In this tutorial our '''''Export Behavior''''' is configured on our '''Content Model'''.
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-01.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
#<li value="2">Select "Export Definition".</li>
#<li value="2">Select "Export Definition".</li>
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-02.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-02.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
#<li value="3">Under Object Data, select "Secondary Types."</li>
#<li value="3">Under Object Data, select "Secondary Types."</li>
#*While optional, choosing a Secondary Type tells Grooper which particular Metadata template you want it to point to.  
#*While optional, choosing a Secondary Type tells Grooper which particular Metadata template you want it to point to.  
#**A Metadata Template is how Box stores its information. It describes a set of key-value pairs that can be assigned to a file or folder.
#**A Metadata Template is how Box stores its information. It describes a set of key-value pairs that can be assigned to a file or folder.
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-03.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-03.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|
#<li value="4">Select your desired Secondary Type.</li>
#<li value="4">Select your desired Secondary Type.</li>
#*Since this example document is taken from the Grooper Wiki Metadata Template, we've chosen the Grooper Wiki Secondary Type. Yours will differ.
#*Since this example document is taken from the Grooper Wiki Metadata Template, we've chosen the Grooper Wiki Secondary Type. Yours will differ.
#Once selected, click OK.
#Once selected, click OK.
|| [[File:2023-Box-CMIS-Binding-Mapping-to-a-Single-Metadata-Template-04.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-04.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
#<li value="6">From here, select Write Mappings.</li>
#<li value="6">From here, select Write Mappings.</li>
#*This is where you'll tell Grooper the exact information you want from your Metadata Template. Hence why selecting a Secondary Type was necessary.
#*This is where you'll tell Grooper the exact information you want from your Metadata Template. Hence why selecting a Secondary Type was necessary.
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-05.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-05.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
#<li value="7">You'll want to specify the output value for the CMIS Name property.</li>
#<li value="7">You'll want to specify the output value for the CMIS Name property.</li>
#Select Expression.  
#Select Expression.  
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-06.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-06.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
#<li value="9">Enter your expression in the dialogue box.</li>
#<li value="9">Enter your expression in the dialogue box.</li>
#*In this step, we're basically mapping our export to the name of the file we have in Box.
#*In this step, we're basically mapping our export to the name of the file we have in Box.
{|cellpadding=10 cellspacing=5 style="margin:12px"
{|class="fyi-box"
|-
|-
|style="font-size:125%; background-color:#36b0a7; color:white; width:28px; text-align:center"|'''FYI'''
|
|style="border: 4px solid #36b0a7"|
'''FYI'''
|
Since the ID is specified as a Decimal format in Grooper, we've added the .ToString extension so it can be exported as text.
Since the ID is specified as a Decimal format in Grooper, we've added the .ToString extension so it can be exported as text.
|}
|}
#<li value="10">When finished, click OK.</li>
#<li value="10">When finished, click OK.</li>
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-07.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-07.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
{|cellpadding=10 cellspacing=5 style="margin:12px"
{|class="fyi-box"
|-
|-
|style="font-size:125%; background-color:#36b0a7; color:white; width:28px; text-align:center"|'''FYI'''
|
|style="border: 4px solid #36b0a7"|
'''FYI'''
|
Descriptions and Tags can help you further refine your export mapping, but as they aren't necessary, we've left them alone.
Descriptions and Tags can help you further refine your export mapping, but as they aren't necessary, we've left them alone.
|}
|}
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-08.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-08.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
Now, we move onto simple matching. For this, we're specifying which particular pieces of Metadata we're mapping to. Thus, it's important to match each piece exactly.
Now, we move onto simple matching. For this, we're specifying which particular pieces of Metadata we're mapping to. Thus, it's important to match each piece exactly.
#<li value="11">For our case, we need to match three things: ID, First Name, and Last Name. First, select Grooper Wiki ID.</li>
#<li value="11">For our case, we need to match three things: ID, First Name, and Last Name. First, select Grooper Wiki ID.</li>
# Match it with the "ID" object from the drop-down menu.
# Match it with the "ID" object from the drop-down menu.
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-09.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-09.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
#<li value="13">Select Grooper Wiki First Name.</li>
#<li value="13">Select Grooper Wiki First Name.</li>
# And match it with First_Name
# And match it with First_Name
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-10.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-10.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
#<li value="15">Lastly, select Grooper Wiki Last Name.</li>
#<li value="15">Lastly, select Grooper Wiki Last Name.</li>
# Match it with the Last_Name item.
# Match it with the Last_Name item.
# With everything matched, click OK.
# With everything matched, click OK.
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-11(1).png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-11.png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
#<li value="18">In the Export Definitions window, click OK.</li>
#<li value="18">In the Export Definitions window, click OK.</li>
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-12.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-12(1).png]]
|-
|-
| style="padding:25px; vertical-align:center; width:35%" |
|  
#<li value="20">Save.</li>
#<li value="20">Save.</li>
|| [[File:2023-Box-CMIS-Binding-Performing-a-Mapped-Export-13.png]]
|| [[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box-Export-Mapping-to-a-Single-Metadata-Template-13.png]]
|}
|}
</tab>
 
<tab name="Mapping to Multiple Metadata Templates">
===== Mapping to multiple "metadata templates" =====
==== Mapping to Multiple Metadata Templates ====
{|class="how-to-table"
{|class="how-to-table"
|
|
Note that for this section, we've changed the original document, and are using a different '''Content Model'''.
Note that for this section, we've changed the original document, and are using a different '''Content Model'''.
||[[File:2023-Box-CMIS-Binding-Mapping-to-Multiple-Metadata-Templates-01.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-01.png]]
|-
|-
|
|
Line 341: Line 441:
# Select your Secondary Types
# Select your Secondary Types
# Click OK.
# Click OK.
||[[File:2023-Box-CMIS-Binding-Mapping-to-Multiple-Metadata-Templates-02.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-02.png]]
|-
|-
|
|
While the convention is the same, we've changed the Name property to avoid any confusion for Box when we export.
While the convention is the same, we've changed the Name property to avoid any confusion for Box when we export.
||[[File:2023-Box-CMIS-Binding-Mapping-to-Multiple-Metadata-Templates-03.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-03.png]]
|-
|-
|
|
#<li value="3">Similar to the preceding section, once your Name property has been set up, you'll begin matching the object in Write Mappings with the piece of Metadata you want to map to.</li>
#<li value="3">Similar to the preceding section, once your Name property has been set up, you'll begin matching the object in Write Mappings with the piece of Metadata you want to map to.</li>
#*While there is more to match this time around, it's still the same  process.
#*While there is more to match this time around, it's still the same  process.
||[[File:2023-Box-CMIS-Binding-Mapping-to-Multiple-Metadata-Templates-04.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-04.png]]
|-
|-
|
|
Line 356: Line 456:
#*Note that while our Repository and Target Folder appear the same as those of the earlier section, a different CMIS Repository was created. The document will still be exported to the same place in Box, however.
#*Note that while our Repository and Target Folder appear the same as those of the earlier section, a different CMIS Repository was created. The document will still be exported to the same place in Box, however.
#*The obvious difference is in the Secondary Types and Write Mappings sections. Since we mapping to multiple Metadata types, we have two CMIS Type References and seven additional properties that are associated with the Grooper Wiki - Additional Info Secondary type.
#*The obvious difference is in the Secondary Types and Write Mappings sections. Since we mapping to multiple Metadata types, we have two CMIS Type References and seven additional properties that are associated with the Grooper Wiki - Additional Info Secondary type.
||[[File:2023-Box-CMIS-Binding-Mapping-to-Multiple-Metadata-Templates-05.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-05.png]]
|-
|-
|
|
#<li value="5">Click OK.</li>
#<li value="5">Click OK.</li>
||[[File:2023-Box-CMIS-Binding-Mapping-to-Multiple-Metadata-Templates-06.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-06.png]]
|-
|-
|
|
#<li value="6">Save.</li>
#<li value="6">Save.</li>
||[[File:2023-Box-CMIS-Binding-Mapping-to-Multiple-Metadata-Templates-07.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-07.png]]
|-
|-
|
|
Now, we have an exported file mapped to two Metadata Templates.
Now, we have an exported file mapped to two Metadata Templates.
||[[File:2023-Box-CMIS-Binding-Right-Click-Export-Multiple-Metadata-01.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-08.png]]
|-
|-
|
|
Wonder why we didn't do anything with the tables? Unfortunately, Box cannot read tables, it can only read instances of single value. Hence, why we chose the data we did.
Wonder why we didn't do anything with the tables? Unfortunately, Box cannot read tables, it can only read instances of single value. Hence, why we chose the data we did.
||[[File:2023-Box-CMIS-Binding-Right-Click-Export-Multiple-Metadata-02.png]]
||[[File:2023-Box-CMIS-Binding-Configuring-a-Mapped-Box=Export-Mapping-to-Multiple-Metadata-Templates-09.png]]
|}
|}
</tab>
</tabs>


=== Final Results ===
==== Testing the export and viewing the final results ====
Now the Export Behavior(s) have been mapped, it's time to export the document to Box.
 
Now that the '''''Export Behavior(s)''''' have been configured, it's time to export the document to Box.
* Normally, exporting is done in the '''Export''' step of a '''Batch Process'''.
** The '''Export''' activity executes the '''''Export Behaviors''''' defined for the classified documents in a '''Batch'''.
 
* Outside of executing the whole '''Batch Process''', when testing your '''''Export Behaviors''''', you can do so in one of two ways:
** You can export a single document by right-clicking it and applying the '''Export''' activity.
** You can use an '''Export''' step's "Tester" tab to export one or multiple documents.
 
<tabs>
<tabs>
<tab name="Right-Click Export">
<tab name="Testing by Right-Clicking a Document">
==== Right-Click Export ====
==== Testing by right-clicking a document ====
Normally, exporting would be done through a Batch Process, since all an Export Behavior does is tell '''Grooper''' what do do when the process gets to the Export step. However, for the purposes of this article, we will demonstrate how exporting could be done through right-clicking the document.
{|class="how-to-table"
{|class="how-to-table"
|
|
#Select your '''Batch'''.
{|class="attn-box"
#Go to the Viewer tab.
|-
#Right-click the document.
|⚠
#*Select ''Activities'', then ''Document Processing'', and finally, ''Export''.
|
||[[File:2023-Box-CMIS-Binding-Right-Click-Export-01.png]]
Note: If you haven't done so, classify the document ''and'' run the '''Extract''' activity before exporting.
|}
 
First, you need to select the document in a "Batch Viewer".  Any "Batch Viewer" will do.  For example:
# Select your '''Batch'''.
# Go to the "Viewer" tab.
# Apply the '''Export''' activity.
#* Right-click the document. Then, select ''Activities'', then ''Document Processing'', and finally, ''Export''.
||[[File:2023-Box-CMIS-Binding-Final-Results-Right-Click-Export-01.png]]
|-
|-
|
|
#<li value="4">In the window that pops up, select Export Behavior.</li>
A window will pop up to configure the '''Export''' activity.
||[[File:2023-Box-CMIS-Binding-Right-Click-Export-02.png]]
 
#<li value="4"> '''''ONLY if you have NOT configured an Export Behavior already''''', configure the '''Export''' activity's '''''Export Behavior''''' .
{|class="fyi-box"
|-
|-
|
|
#<li value="5">Add a ''Behavior''.</li>
'''FYI'''
# Select the '''Content Type'''.
|
# Select Export Definitions.
'''''Export Behaviors''''' may be configured in one of two ways:
||[[File:2023-Box-CMIS-Binding-Right-Click-Export-03.png]]
* Using the the '''''Behaviors''''' settings of a '''Content Model''' and/or its '''Document Types''' and '''Content Categories'''
* Locally to the '''Export''' step using its '''''Export Behaviors''''' property.
 
We consider it best practice to configure '''''Export Behaviors''''' on a '''Content Model''' and/or its '''Document Types''' and '''Content Categories'''. The ability to configure '''''Export Behaviors''''' on an '''Export''' step is largely present for upgrade compatibility for older versions of Grooper before '''''Export Behaviors''''' existed.
* For more information, visit the [[Export]] article.
|}
#<li value="5"> Press the "Execute" button.
||[[File:2023-Box-CMIS-Binding-Final-Results-Right-Click-Export-02(1).png]]
|-
|-
|
|
Line 405: Line 527:


Once your document has been exported, you will see it displayed on the homepage of your Box account.
Once your document has been exported, you will see it displayed on the homepage of your Box account.
||[[File:2023-Box-CMIS-Binding-Right-Click-Export-04.png]]
||[[File:2023-Box-CMIS-Binding-Final-Results-Right-Click-Export-04(1).png]]
|-
|-
|
|
Selecting the newly imported document, you will be able to view the Metadata mapped to the document from '''Grooper'''.
Selecting the newly imported document, you will be able to view the Metadata mapped to the document from '''Grooper'''.
||[[File:2023-Box-CMIS-Binding-Right-Click-Export-05.png]]
||[[File:2023-Box-CMIS-Binding-Final-Results-Right-Click-Export-05(1).png]]
|-
|-
|
|
Line 415: Line 537:
|-
|-
|
|
Note that the document will now be linked to your Box account.
{|class="fyi-box"
||[[File:2023-Box-CMIS-Binding-Right-Click-Export-06(1).png]]
|-
|
'''FYI'''
|
Now that the document has been exported you may notice a link icon next to the attached file.  This link indicates Grooper "knows" something about where this document is outside of Grooper.  The document's exported file path location in Box is now stored in the document '''Batch Folder's''' properties.
|}
||[[File:2023-Box-CMIS-Binding-Final-Results-Right-Click-Export-06.png]]
|}
|}
</tab>
</tab>
<tab name="Performing the Export Within a Batch Step">
<tab name="Testing the Export Within a Batch Step">
==== Performing the Export Within a Batch Step ====
==== Testing the export with the Export step tester ====
We will now demonstrate a proxy version of the correct way exporting is performed, ie within a '''Batch Step''' process. How to set up a '''Batch Process''' will not be discussed here, as it's assumed the reader already knows how to do that. If you would like to know how to set up a '''Batch Process''', click here: [[https://wiki.grooper.com/index.php?title=Batch_Process]]. This section will display the creating the Export step and working in the Activity Tester of the Batch Process.
This section will detail texting export using an '''Export''' step's "Activity Tester".
 
{|class="how-to-table"
{|class="how-to-table"
|
|
#Right-click (or create) your '''Project'''.
#Select the '''Export''' step of a '''Batch Process'''
#Select ''Add'', followed by ''Batch Process''
#* For the purposes of this article, we have simply made a '''Batch Process''' with a single step (which is an '''Export''' activity)
||[[File:2023-Performing-the-Export-Within-a-Batch-Step-01.png]]
# '''''ONLY if you have NOT configured an Export Behavior already''''', configure the '''Export''' activity's '''''Export Behavior''''' .
{|class="fyi-box"
|-
|-
|
|
#<li value="3">Name your '''Batch Process'''.</li>
'''FYI'''
#Click Execute.
||[[File:2023-Performing-the-Export-Within-a-Batch-Step-02(1).png]]
|-
|
|
#<li value="5">Select the drop-down menu for Content Type.</li>
'''''Export Behaviors''''' may be configured in one of two ways:
#Choose the '''Document Type'''.
* Using the the '''''Behaviors''''' settings of a '''Content Model''' and/or its '''Document Types''' and '''Content Categories'''
||[[File:2023-Performing-the-Export-Within-a-Batch-Step-03(1).png]]
* Locally to the '''Export''' step using its '''''Export Behaviors''''' property.
 
We consider it best practice to configure '''''Export Behaviors''''' on a '''Content Model''' and/or its '''Document Types''' and '''Content Categories'''.  The ability to configure '''''Export Behaviors''''' on an '''Export''' step is largely present for upgrade compatibility for older versions of Grooper before '''''Export Behaviors''''' existed.
* For more information, visit the [[Export]] article.
|}
#<li value="3">Navigate to the "Activity Tester" tab.
||[[File:2023-Box-CMIS-BindingTesting-the-Export-and-Viewing-the-Final-Results-Testing-the-Export-Within-a-Batch-Step-01.png]]
|-
|-
|
|
#<li value="7">With the '''Batch Process''' created, right click.</li>
To test export for a single document:
#Add a '''Batch Process Step'''.
 
||[[File:2023-Performing-the-Export-Within-a-Batch-Step-04(1).png]]
# Select a document in the '''Batch''' you wish to export.
|-
# Click the "Test Activity" button.
|
#* This will apply the selected '''Batch Process''' step to the selected document.
#<li value="9">Name the Step.</li>
#* In our case, this will export the selected document to Box.
#Click Execute.
||[[File:2023-Box-CMIS-BindingTesting-the-Export-and-Viewing-the-Final-Results-Testing-the-Export-Within-a-Batch-Step-02.png]]
||[[File:2023-Performing-the-Export-Within-a-Batch-Step-05(1).png]]
|-
|-
|
|
#<li value="11">Select the Activity you wish to perform. In our case, this is the Export Activity.</li>
If you want to see what this would look like within a proper '''Batch Process''', click the Submit Job button.
#Select the Scope. For this instance, we can leave the scope at Folder.
||[[File:2023-Box-CMIS-BindingTesting-the-Export-and-Viewing-the-Final-Results-Testing-the-Export-Within-a-Batch-Step-03.png]]
#Once more, you'll need to define the ''Export Behavior''. To see how to do that, click here: [[#Configuring a Mapped Box Export]]
#Once finished setting up the Behavior, click Save.
||[[File:2023-Performing-the-Export-Within-a-Batch-Step-06(1).png]]
|-
|
#<li value="15">With everything set up in the '''Batch Process Step''', navigate to the Activity Tester tab.</li>
#Click the play button to execute the tester.
||[[File:2023-Performing-the-Export-Within-a-Batch-Step-07(1).png]]
|}
|}
</tab>
</tab>
</tabs>
</tabs>
[[Category:Articles]]
 
[[Category:Version 2023]]
== Known issues & limitations ==
 
=== File and folder limitations in Box ===
 
To mitigate problems when exporting to Box, users should be aware of the following limitations in Box:
* No single folder can contain more than 15,000 files. For the best performance, a single folder should have at most 10,000 files.
* Folder names should not be longer than 100 characters.
* File paths should not be longer than 255 characters.
 
=== Box CMISQL Query limitations ===
<section begin="box_query_limitations" />
The Box API has some built in requirements to perform search queries.  This is not something Grooper can get around.  In the past, this has caused Grooper users a lot of confusion when configuring <code>WHERE</code> clauses in CMISQL search queries.
 
To avoid confusion the following properties are not queryable at this time:
* Created by (cmis:createdBy)
* Modified by (cmis:lastModifiedBy)
<section end="box_query_limitations" />
=== Upgrade issues ===
 
There is a known issue upgrading Box '''CMIS Repositories''' from 2.9 to 2021 and beyond.  The way '''''Import''''' and '''''Export Mappings''''' are configured changed radically from version 2.9 to 2021.  Further, the Box binding was dramatically improved in version 2021. 
 
Due to this, you may experience issues with your '''''Import''''' or '''''Export Mappings''''' when upgrading to 2021 and beyond.  You may need to manually reconfigure your '''''Import''''' or '''''Export Mappings''''' upon upgrading.  If you are using a Box connection, please validate your mappings and test them upon upgrading to ensure they behave appropriately.

Latest revision as of 10:15, 13 May 2025

This article is about an older version of Grooper.

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

202520232.90

Box is a connection option for cloud CMIS Connections. It Grooper to the Box content management system for import and export operations.

You may download the ZIP(s) below and upload it into your own Grooper environment (version 2023). The first contains one or more Projects with resources used in examples throughout this article. The second contains one or more Batches of sample documents.

Please note the Projects ZIP does not contain the configured CMIS Connection or Export Behaviors referenced in this article. You will need your own Box account to fully configure these resources.

About

Integration with Box in Grooper leverages the CMIS+ architecture to allow you to take full advantage of this powerful Content Management System.

BE AWARE: Connecting to Box requires some setup in your Box account before configuring a CMIS Connection

If you are integrating Box with Grooper for the first time, your Box administrator will need to add Grooper as a "Custom App" before connecting. This will be done in one of two ways depending on whether you are (1) entering an account ID entered into the CMIS Connection's Box User ID property or (2) entering a Box custom app's "App Settings" JSON entered into the CMIS Connection's Custom App Settings property


Option 1: Connecting using a Box User ID

Sceenshot of the "Add App" dialogue in the Box Admin Console

This is the easiest method for most users. It will add a Grooper app to your Box account. This app is pre-approved by Box, meaning you don't have to wait for Box to approve the custom app.


Using the Admin Console, go to "Apps" then "Custom Apps" to add Grooper.


As part of the setup, you will be prompted to enter a "Client ID", listed below:

z9iyazstefwydilz4x3abdi3w79wogow

Option 2: Connecting using Custom App Settings ("App Settings" JSON)

This route is preferable for smaller Box accounts. Connecting with a Box account ID (Box User ID) will consume one of your Box user accounts. This can cause connection issues for organizations with the minimum of 3 user accounts in Box.

Instead, these users should use the Custom App Settings method of connecting. This will not consume one of your user accounts. For more information on how to create a custom app in Box. Visit the articles below:

After creating the app, Box approves it, and you activate it, you will copy the "App Settings" JSON from Box into the Custom App Settings property in Grooper.

How to

Understanding the Box platform

FYI

This article assumes you already have a Box account and can access it.

Understanding Box as a file system

It is important to understand Box is essentially a cloud-based file system. It is a storage repository consisting of files in folders.

Understanding Box as a data storage platform

As well as a basic file system, Box can store data using "Metadata Templates".

Metadata Templates can be assigned to files or folders in Box.

  • The image on the right is showing the Metadata Template assigned to a folder in this Box environment.
  • Metadata Templates are added in Box by your Box Admin. Any number of custom metadata fields can be added to the template.
  • This Metadata Template is very simple. It has just three fields ("ID", "First Name" and "Last Name")

With a Metadata Template attached to a file or folder, values for each field can be saved in Box. With a "Mapped Export", you can marry data Grooper collects for a document with a corresponding field in the Metadata Template on export.

To see how you would go about creating a "Mapped Export", click here: #Configuring a Mapped Box Export

Understanding the Content Model for Mapped Exports

The purpose of this Content Model is to simply extract three fields of information from a document in its accompanying Batch.

  • These three fields in the Data Model ("ID", "First Name" and "Last Name") correspond to the three fields in the Box Metadata Template ("ID", "First Name" and "Last Name").
  • When performing a Mapped Export, Grooper can not only export the document to a folder location in Box, but export the data it collects for these three fields to the Metadata Template Box attaches to the exported file.

To see how you would go about creating a "Mapped Export", click here: #Configuring a Mapped Box Export

Mapped Export Prereq: Extracted Data

Please note! Before the Document Export activity can send data, it must have data.

In a production scenario, this will be accomplished by the Extract step of a Batch Process.

However, take care when you're testing your configuration to ensure documents have extracted data before exporting to Box.

  • It's easy to get in the habit of testing extraction on a Data Field or a Data Model and feel good about the results, but it must be understood that the information displayed when doing so is in memory, or temporary.
  • When the Extract activity is successfully run against a classified document, it creates "index data" and marries it to the document via a JSON file called Grooper.DocumentData.json.

You can verify a document has extracted data follows:

  1. Navigate to the document (i.e. the Batch Folder) object in the node tree.
    • Please note! You are not selecting the Batch, not the Batch's root folder, not one of the document's Page objects, but specifically the document's Batch Folder object. This is where the information lives.
  2. Click on the Viewer tab.
  3. Press the Review button.
    • This will bring up the document in a "Review" page.
  1. Click the "Data Viewer" icon.
  2. This will bring up the extracted data of the document.
    • If the fields have data present, the document has stored index data present.
    • If the fields are empty, run the Extract activity on the document to collect and store its index data.

Back to top to continue to next tab

How to create a Box CMIS Connection

Creating and configuring a CMIS Connection is the first step to importing and exporting with Box.

Prereqs: Account ID from Box

In order to connect to Box in Grooper you’ll need and enterprise account, and what Box refers to as an Account ID.

  1. When logged into Box, click the icon for your account to expose a drop-down menu.
  2. Click on Account Settings.
  3. Scroll to the bottom of this page and take note of the Account ID.

BE AWARE! There are actually two ways Grooper can connect to Box

There are two ways a CMIS Connection can connect to Box.

  1. With an account ID entered into the Box User ID property (described in this article)
  2. With a Box custom app's "App Settings" JSON entered into the Custom App Settings property.

The Custom App Settings route is preferable for smaller Box accounts. Connecting with a Box account ID (Box User ID) will consume one of your Box user accounts. This can cause connection issues for organizations with the minimum of 3 user accounts in Box.

Instead, these users should use the Custom App Settings method of connecting. This will not consume one of your user accounts. For more information on how to create a custom app in Box. Visit the articles below:

After creating the app, Box approves it, and you activate it, you will copy the "App Settings" JSON from Box into the Custom App Settings property in Grooper.

Create the Box CMIS Connection in Grooper

Create a CMIS Connection

  1. Right-click a Project (or a folder in the Project).
  2. Select Add, then CMIS Connection...
  1. Name the CMIS Connection whatever you want.
  2. Select "Execute".

Configure the CMIS Connection for Box

Once your CMIS Connection has been created, set your Connection Settings to Box. This defines settings for Grooper to connect to Box.

  1. Select Box User ID' and enter your Box Account ID.
    • If you are unsure of where to find your Box Account ID, please see the previous tab ("Prereqs: Account ID From Box") in this article.
  2. Once your ID has been entered, you will then choose your Metadata Format.
    • Bear in mind, if you want to perform a "Mapped Export", your Metadata Format will need to be Normal.
    • For more information on "Mapped Exports", see the #Configuring a Mapped Box Export section of this article.

Import Your Box Repository

Having saved your connection settings, Grooper has established a connection to your Box account, and you can now import the Box repository. This will create a CMIS Repository object Grooper can use to navigate Box's folder and file structure. To do so:

  1. Press the "List Repositories" button.

FYI

"CMIS Repositories" and "CMIS Connections" are two different things in Grooper.

  • If you think of Box and Grooper like two separate electrical poles, then the CMIS Connection is the wire that stretches between them. It is the intangible arm that reaches out from Grooper and grasps Box.
  • The imported CMIS Repository on the other hand is the cache where our data is stored (the files and folders in Box).

The repository (or repositories) available for import will appear.

  1. Select the repository you wish to import.
    • At this time, the value under Imported' will be "False", and the dot next to it will be red.
    • Once imported, this value will change to "True", and the dot will turn green.
  2. Press the "Import Repository" button to import the selected repository.

  1. Ensure the listed repository is the one you wish import.
  2. Press the "Execute" button.

  1. This will create a CMIS Repository object for the selected repository.
  2. Grooper will use this object when importing from or exporting to folder locations in Box.
    • The CMIS Connection only initiates the connection from Grooper to Box.
    • The CMIS Repository is an object that represents a specific folder in Box.
      • It is this repository object that allows Grooper to interoperate with the folder location in Box.

Import documents using Box

WIP

COMING SOON!!

Export documents using Box

Configuring a basic Box export

You can export processed documents from Grooper using a Box connection by configuring an Export Behavior.

  • Export Behaviors are required to export all documents and data, regardless of what storage location they're going to.
  • As a type of CMIS Connection, we will configure a CMIS Export when configuring the Export Behavior.
  • These basic export steps detail simply how to get a document from Grooper to a folder location in Box.
    • However, these steps will apply to all Box exports, including Mapped Exports detailed below.
Add the Export Behavior and CMIS Export Definition

This configuration is specific to this article. While aspects of it can apply to any configuration, it's worth noting that your environment may require slightly different settings (especially considering proprietary pieces of information like the Account ID). Note that the URLs in the image cannot be connected to externally, so attempting to copy this configuration verbatim will give you errors. This is meant as a guide, and will require an actual Box environment on your end to be established, and real information from it supplied.

FYI

This article demonstrates how to configure an Export Behavior on a Content Model. Export Behaviors can be configured on any Content Type (Content Models, Content Categories or Document Types) or on the Export activity step itself.

  1. Select your Content Model.
  2. Make sure you are on the "Content Model" tab
  3. Select the ellipsis button to the right of the Behaviors property.
  1. Select the "Add" button.
  2. In the drop-down menu, select Export Behavior.
  1. Select the ellipsis button to the right of the Export Definitions property.
  1. Click the "Add" button.
  2. Select CMIS Export.
Configure the CMIS Export Definition

After adding an Export Behavior you must configure CMIS Export.

  • This is a crucial step, as you're essentially laying out the map in front of your Export Behavior, and telling it what you want exported, where you want the data saved, and what properties you want written to the exported object. In other words, you're circling the destination in the brightest red possible, while giving the Behavior everything it needs to take with it.
  1. Click the hamburger symbol to the right of the CMIS Repository' property.
  2. In the drop-down menu, select the CMIS Repository you wish to export to.
    • In our case, this is the "All Files" repository, representing the root folder of our Box account.
  1. If you want export to a subfolder in the Box account, select the desired folder using the Target Folder property.

FYI

The Subfolder Path property allows you to dynamically create folder locations on export using a .NET code expression.

Pressing the ellipsis next to the Target Folder property will bring up a folder browser.

  1. From here, you can select any folder in your Box account you want to export to.
  2. Once you've selected the folder you want, click "OK".
  1. Next, you will need to choose the Object Type you're exporting.
    • We're exporting documents (not folders) So, we've selected File'.
  2. When finished, click "OK".

The Export Format property is extremely critical when exporting documents. This determines what kind of file Grooper creates and exports (e.g. a PDF or TXT or XML file). This property will be configurable once File is selected.

  1. Save.

Configuring a "mapped" Box export

Mapped exports allow users to map data Grooper extracts to fields in a Box metadata template. Configuring a "mapped export" is part of configuring the CMIS Export'. Data can be mapped to a single metadata template or multiple metadata templates.

Mapping to a Single Metadata Template
  1. Mapped exports are configured as part of your Export Behavior.
    • In this tutorial our Export Behavior is configured on our Content Model.
  1. Select "Export Definition".
  1. Under Object Data, select "Secondary Types."
    • While optional, choosing a Secondary Type tells Grooper which particular Metadata template you want it to point to.
      • A Metadata Template is how Box stores its information. It describes a set of key-value pairs that can be assigned to a file or folder.
  1. Select your desired Secondary Type.
    • Since this example document is taken from the Grooper Wiki Metadata Template, we've chosen the Grooper Wiki Secondary Type. Yours will differ.
  2. Once selected, click OK.
  1. From here, select Write Mappings.
    • This is where you'll tell Grooper the exact information you want from your Metadata Template. Hence why selecting a Secondary Type was necessary.
  1. You'll want to specify the output value for the CMIS Name property.
  2. Select Expression.
  1. Enter your expression in the dialogue box.
    • In this step, we're basically mapping our export to the name of the file we have in Box.

FYI

Since the ID is specified as a Decimal format in Grooper, we've added the .ToString extension so it can be exported as text.

  1. When finished, click OK.

FYI

Descriptions and Tags can help you further refine your export mapping, but as they aren't necessary, we've left them alone.

Now, we move onto simple matching. For this, we're specifying which particular pieces of Metadata we're mapping to. Thus, it's important to match each piece exactly.

  1. For our case, we need to match three things: ID, First Name, and Last Name. First, select Grooper Wiki ID.
  2. Match it with the "ID" object from the drop-down menu.
  1. Select Grooper Wiki First Name.
  2. And match it with First_Name
  1. Lastly, select Grooper Wiki Last Name.
  2. Match it with the Last_Name item.
  3. With everything matched, click OK.
  1. In the Export Definitions window, click OK.
  1. Save.
Mapping to multiple "metadata templates"

Note that for this section, we've changed the original document, and are using a different Content Model.

Much of the steps leading up to constructing your Export Behavior and Definition are the same up to this point. If you would like to see how to configure your Content Model for export, click here: #Configuring a Basic Box Export.

  1. Select your Secondary Types
  2. Click OK.

While the convention is the same, we've changed the Name property to avoid any confusion for Box when we export.

  1. Similar to the preceding section, once your Name property has been set up, you'll begin matching the object in Write Mappings with the piece of Metadata you want to map to.
    • While there is more to match this time around, it's still the same process.
  1. Once everything is matched, click OK.
    • Note that while our Repository and Target Folder appear the same as those of the earlier section, a different CMIS Repository was created. The document will still be exported to the same place in Box, however.
    • The obvious difference is in the Secondary Types and Write Mappings sections. Since we mapping to multiple Metadata types, we have two CMIS Type References and seven additional properties that are associated with the Grooper Wiki - Additional Info Secondary type.
  1. Click OK.
  1. Save.

Now, we have an exported file mapped to two Metadata Templates.

Wonder why we didn't do anything with the tables? Unfortunately, Box cannot read tables, it can only read instances of single value. Hence, why we chose the data we did.

Testing the export and viewing the final results

Now that the Export Behavior(s) have been configured, it's time to export the document to Box.

  • Normally, exporting is done in the Export step of a Batch Process.
    • The Export activity executes the Export Behaviors defined for the classified documents in a Batch.
  • Outside of executing the whole Batch Process, when testing your Export Behaviors, you can do so in one of two ways:
    • You can export a single document by right-clicking it and applying the Export activity.
    • You can use an Export step's "Tester" tab to export one or multiple documents.

Testing by right-clicking a document

Note: If you haven't done so, classify the document and run the Extract activity before exporting.

First, you need to select the document in a "Batch Viewer". Any "Batch Viewer" will do. For example:

  1. Select your Batch.
  2. Go to the "Viewer" tab.
  3. Apply the Export activity.
    • Right-click the document. Then, select Activities, then Document Processing, and finally, Export.

A window will pop up to configure the Export activity.

  1. ONLY if you have NOT configured an Export Behavior already, configure the Export activity's Export Behavior .

FYI

Export Behaviors may be configured in one of two ways:

  • Using the the Behaviors settings of a Content Model and/or its Document Types and Content Categories
  • Locally to the Export step using its Export Behaviors property.

We consider it best practice to configure Export Behaviors on a Content Model and/or its Document Types and Content Categories. The ability to configure Export Behaviors on an Export step is largely present for upgrade compatibility for older versions of Grooper before Export Behaviors existed.

  • For more information, visit the Export article.
  1. Press the "Execute" button.

From this point on, you will need to set up your Export Definition exactly as depicted above in the "Configuring a Mapped Export" Section. To see those steps, click here: #Configuring a Mapped Box Export

Once your document has been exported, you will see it displayed on the homepage of your Box account.

Selecting the newly imported document, you will be able to view the Metadata mapped to the document from Grooper.

FYI

Now that the document has been exported you may notice a link icon next to the attached file. This link indicates Grooper "knows" something about where this document is outside of Grooper. The document's exported file path location in Box is now stored in the document Batch Folder's properties.

Testing the export with the Export step tester

This section will detail texting export using an Export step's "Activity Tester".

  1. Select the Export step of a Batch Process
    • For the purposes of this article, we have simply made a Batch Process with a single step (which is an Export activity)
  2. ONLY if you have NOT configured an Export Behavior already, configure the Export activity's Export Behavior .

FYI

Export Behaviors may be configured in one of two ways:

  • Using the the Behaviors settings of a Content Model and/or its Document Types and Content Categories
  • Locally to the Export step using its Export Behaviors property.

We consider it best practice to configure Export Behaviors on a Content Model and/or its Document Types and Content Categories. The ability to configure Export Behaviors on an Export step is largely present for upgrade compatibility for older versions of Grooper before Export Behaviors existed.

  • For more information, visit the Export article.
  1. Navigate to the "Activity Tester" tab.

To test export for a single document:

  1. Select a document in the Batch you wish to export.
  2. Click the "Test Activity" button.
    • This will apply the selected Batch Process step to the selected document.
    • In our case, this will export the selected document to Box.

If you want to see what this would look like within a proper Batch Process, click the Submit Job button.

Known issues & limitations

File and folder limitations in Box

To mitigate problems when exporting to Box, users should be aware of the following limitations in Box:

  • No single folder can contain more than 15,000 files. For the best performance, a single folder should have at most 10,000 files.
  • Folder names should not be longer than 100 characters.
  • File paths should not be longer than 255 characters.

Box CMISQL Query limitations

The Box API has some built in requirements to perform search queries. This is not something Grooper can get around. In the past, this has caused Grooper users a lot of confusion when configuring WHERE clauses in CMISQL search queries.

To avoid confusion the following properties are not queryable at this time:

  • Created by (cmis:createdBy)
  • Modified by (cmis:lastModifiedBy)

Upgrade issues

There is a known issue upgrading Box CMIS Repositories from 2.9 to 2021 and beyond. The way Import and Export Mappings are configured changed radically from version 2.9 to 2021. Further, the Box binding was dramatically improved in version 2021.

Due to this, you may experience issues with your Import or Export Mappings when upgrading to 2021 and beyond. You may need to manually reconfigure your Import or Export Mappings upon upgrading. If you are using a Box connection, please validate your mappings and test them upon upgrading to ensure they behave appropriately.