2.90:CMIS Lookup (Lookup Specification): Difference between revisions
No edit summary |
No edit summary |
||
| Line 26: | Line 26: | ||
Given that, it will be assumed you have access to a source that '''Grooper''' can connect to via a '''[[CMIS Connection]]'''.<br/><br/> | Given that, it will be assumed you have access to a source that '''Grooper''' can connect to via a '''[[CMIS Connection]]'''.<br/><br/> | ||
The below image is showing a SharePoint document library with a single document in it and several columns added and populated with information. | The below image is showing a SharePoint document library with a single document in it and several columns added and populated with information. | ||
[[File:cmis_lookup_001.png | [[File:cmis_lookup_001.png]] | ||
</tab> | </tab> | ||
<tab name="Understanding the Content Model" style="margin:25px"> | <tab name="Understanding the Content Model" style="margin:25px"> | ||
| Line 40: | Line 40: | ||
This configuration is specific to this article. While aspects of it can apply to any configuration, it's worth noting that this is not THE way to configure a '''[[CMIS Connection]]'''. This will be configured for a SharePoint environment. 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 SharePoint environment on your end to be established, and real URLs 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 this is not THE way to configure a '''[[CMIS Connection]]'''. This will be configured for a SharePoint environment. 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 SharePoint environment on your end to be established, and real URLs from it supplied.<br/> | ||
{| class="wikitable" | {| class="wikitable" | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# Expand the node tree to the '''[[Infrastructure Folder|Infrastructure]]''' folder and in the '''[[CMIS Connections Folder|CMIS Connections]]''' folder create a '''CMIS Connection''' object. | # Expand the node tree to the '''[[Infrastructure Folder|Infrastructure]]''' folder and in the '''[[CMIS Connections Folder|CMIS Connections]]''' folder create a '''CMIS Connection''' object. | ||
# Set the '''''Connection Type''''' property to ''SharePoint''. | # Set the '''''Connection Type''''' property to ''SharePoint''. | ||
# Fill in the '''''Base URL''''' property with the URL for the SharePoint site you're wanting to connect to. | # Fill in the '''''Base URL''''' property with the URL for the SharePoint site you're wanting to connect to. | ||
#* You can be as granular with this as you want. What this means is you can set the URL to a specific site, and have the '''CMIS Connection''' object pertain to that specific site of the SharePoint environment (<nowiki>https://hydra.sharepoint.com/sites/ChiliConToso</nowiki>), or, you could set the URL to the base SharePoint URL and manage all sites from one '''CMIS Connection''' object (<nowiki>https://hydra.sharepoint.com</nowiki>). | #* You can be as granular with this as you want. What this means is you can set the URL to a specific site, and have the '''CMIS Connection''' object pertain to that specific site of the SharePoint environment (<nowiki>https://hydra.sharepoint.com/sites/ChiliConToso</nowiki>), or, you could set the URL to the base SharePoint URL and manage all sites from one '''CMIS Connection''' object (<nowiki>https://hydra.sharepoint.com</nowiki>). | ||
|| [[File:cmis_lookup_004a.png | || [[File:cmis_lookup_004a.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="4"> The '''''Authentication Method''''' property can only be set to ''SharePoint OAuth'' when configuring a SharePoint connection.</li> | # <li value="4"> The '''''Authentication Method''''' property can only be set to ''SharePoint OAuth'' when configuring a SharePoint connection.</li> | ||
# When you click the '''''Authentication''''' property the first time you're configuring a '''CMIS Connection''' object with the '''''Connection Type''''' property set to ''SharePoint'' a window will pop up to allow the entering of credentials for your [https://en.wikipedia.org/wiki/Office_365 Office 365] account. | # When you click the '''''Authentication''''' property the first time you're configuring a '''CMIS Connection''' object with the '''''Connection Type''''' property set to ''SharePoint'' a window will pop up to allow the entering of credentials for your [https://en.wikipedia.org/wiki/Office_365 Office 365] account. | ||
| Line 53: | Line 53: | ||
# Set the '''''Enable Library Types''''' property to ''True''. | # Set the '''''Enable Library Types''''' property to ''True''. | ||
#* There are two main '''Content Type''' objects within a '''CMIS Repository''' object: '''Document''' and '''Folder'''. These have sub-libraries within them that have content specific to their type. Setting the '''''Enable Library Types''''' property to ''True'' will allow the creation of '''CMIS Content Type''' objects based on these sub-libraries. This must be done in order to connect to the specific library and have visibility to its writable properties. <span style="color:#FF0000">'''''Writer's note - This statement is true if you plan to complete steps 10-13 below and leverage that specific object for import or export. Given the note there states that steps 10-13 are not needed for this CMIS Lookup, this previous statement is a bit erroneous.'''''</span> | #* There are two main '''Content Type''' objects within a '''CMIS Repository''' object: '''Document''' and '''Folder'''. These have sub-libraries within them that have content specific to their type. Setting the '''''Enable Library Types''''' property to ''True'' will allow the creation of '''CMIS Content Type''' objects based on these sub-libraries. This must be done in order to connect to the specific library and have visibility to its writable properties. <span style="color:#FF0000">'''''Writer's note - This statement is true if you plan to complete steps 10-13 below and leverage that specific object for import or export. Given the note there states that steps 10-13 are not needed for this CMIS Lookup, this previous statement is a bit erroneous.'''''</span> | ||
|| [[File:cmis_lookup_004b.png | || [[File:cmis_lookup_004b.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="7"> With the previous settings saved, you can now click the '''List Repositories''' button.</li> | # <li value="7"> With the previous settings saved, you can now click the '''List Repositories''' button.</li> | ||
# Having clicked the previous button, there should be a repository (there may be multiple in your environment) in the '''Repository List''' view. Clicking on it will allow the '''Import Repository''' button to be clicked. This will change the red dot on the icon to green, meaning there's an active connection to this repository. | # Having clicked the previous button, there should be a repository (there may be multiple in your environment) in the '''Repository List''' view. Clicking on it will allow the '''Import Repository''' button to be clicked. This will change the red dot on the icon to green, meaning there's an active connection to this repository. | ||
# It will also create several objects in the Grooper node tree: '''CMIS Repository''' ojbect, '''Content Types''' folder object, and two '''CMIS Content Type''' objects - '''Document''' and '''Folder'''. | # It will also create several objects in the Grooper node tree: '''CMIS Repository''' ojbect, '''Content Types''' folder object, and two '''CMIS Content Type''' objects - '''Document''' and '''Folder'''. | ||
|| [[File:cmis_lookup_004c.png | || [[File:cmis_lookup_004c.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="10"> Select the '''CMIS Repository''' ojbect.</li> | # <li value="10"> Select the '''CMIS Repository''' ojbect.</li> | ||
# Expand the tree of the '''Document''' '''Content Type''' object within the '''Content Types''' view. | # Expand the tree of the '''Document''' '''Content Type''' object within the '''Content Types''' view. | ||
| Line 69: | Line 69: | ||
# With the desired '''Content Type''' imported, a new object representing it will exist in the node tree. | # With the desired '''Content Type''' imported, a new object representing it will exist in the node tree. | ||
|| <span style="color:#FF0000">'''''Writer's note - Having created this article and gone back through it, I now realize steps 10-13 here are not absolutely necessary to configure the CMIS Lookup. It will not impede one's ability to do so, and this is valuable information otherwise, as you can use the object created in these steps to map import and export properties for other activites. Feel free to not do steps 10-13 for the CMIS Lookup.'''''</span><br/> | || <span style="color:#FF0000">'''''Writer's note - Having created this article and gone back through it, I now realize steps 10-13 here are not absolutely necessary to configure the CMIS Lookup. It will not impede one's ability to do so, and this is valuable information otherwise, as you can use the object created in these steps to map import and export properties for other activites. Feel free to not do steps 10-13 for the CMIS Lookup.'''''</span><br/> | ||
[[File:cmis_lookup_004d.png | [[File:cmis_lookup_004d.png]] | ||
|} | |} | ||
| Line 78: | Line 78: | ||
With an established connection to a CMIS repository, the CMIS Lookup can now be configured. This is done on a '''Data Model'''.<br/> | With an established connection to a CMIS repository, the CMIS Lookup can now be configured. This is done on a '''Data Model'''.<br/> | ||
{| class="wikitable" | {| class="wikitable" | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# Select the '''Data Model'''. | # Select the '''Data Model'''. | ||
# Select the '''''Lookups''''' property then click the ellipsis button. | # Select the '''''Lookups''''' property then click the ellipsis button. | ||
# This will bring up the '''Lookup Specification Collection Editor''' window. In this window click the '''Add''' drop-down menu and select '''CMIS Lookup'''. | # This will bring up the '''Lookup Specification Collection Editor''' window. In this window click the '''Add''' drop-down menu and select '''CMIS Lookup'''. | ||
|| [[File:cmis_lookup_005a.png | || [[File:cmis_lookup_005a.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="4"> Select the '''CMIS Lookup''' ojbect in the list.</li> | # <li value="4"> Select the '''CMIS Lookup''' ojbect in the list.</li> | ||
# Select the '''''Repository''''' property then click the drop-down arrow to get a mini-node tree view. | # Select the '''''Repository''''' property then click the drop-down arrow to get a mini-node tree view. | ||
# Select the '''CMIS Repository''' object you wish to perform a lookup against. | # Select the '''CMIS Repository''' object you wish to perform a lookup against. | ||
|| [[File:cmis_lookup_005b.png | || [[File:cmis_lookup_005b.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="7"> Select the '''''CMIS Query''''' property then click the ellipsis button.</li> | # <li value="7"> Select the '''''CMIS Query''''' property then click the ellipsis button.</li> | ||
# This will bring up the '''CMIS Query''' window. | # This will bring up the '''CMIS Query''' window. | ||
| Line 98: | Line 98: | ||
#* A CMIS Query has syntax almost just like a SQL Query, so if you're familiar with that this part will be quite simple. '''Grooper's''' intellisense for these queries is quite good, however, so even someone with little-to-no experience with SQL Queries will be fine. | #* A CMIS Query has syntax almost just like a SQL Query, so if you're familiar with that this part will be quite simple. '''Grooper's''' intellisense for these queries is quite good, however, so even someone with little-to-no experience with SQL Queries will be fine. | ||
#* This is also as good a time as any to remind you to use the '''Grooper Help''': that easily glossed over area with the medium gray background underneath nearly everything you select. CMIS Query is a great example of the '''Grooper Help''' as it goes a long way to help you get a result, including telling you what to type, and examples to try. | #* This is also as good a time as any to remind you to use the '''Grooper Help''': that easily glossed over area with the medium gray background underneath nearly everything you select. CMIS Query is a great example of the '''Grooper Help''' as it goes a long way to help you get a result, including telling you what to type, and examples to try. | ||
|| [[File:cmis_lookup_005c.png | || [[File:cmis_lookup_005c.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="10"> Having completed the... | # <li value="10"> Having completed the... | ||
#: <code><span style="color:#0001fd">SELECT</span></code> | #: <code><span style="color:#0001fd">SELECT</span></code> | ||
| Line 109: | Line 109: | ||
#: <code><span style="color:#0001fd">FROM</span></code> | #: <code><span style="color:#0001fd">FROM</span></code> | ||
#: ...statement first you've given '''Grooper''' awareness of what CAN be selected. This is made clear in the next step. | #: ...statement first you've given '''Grooper''' awareness of what CAN be selected. This is made clear in the next step. | ||
|| [[File:cmis_lookup_005d.png | || [[File:cmis_lookup_005d.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="11"> If you allowed the intellisense to complete the... | # <li value="11"> If you allowed the intellisense to complete the... | ||
#: <code><span style="color:#0001fd">FROM</span></code> | #: <code><span style="color:#0001fd">FROM</span></code> | ||
| Line 121: | Line 121: | ||
#: <code><span style="color:#0001fd">FROM</span></code> | #: <code><span style="color:#0001fd">FROM</span></code> | ||
#: ...statement. Here you will be choosing the target fields of the lookup. Select an item from the intellisense list.</li> | #: ...statement. Here you will be choosing the target fields of the lookup. Select an item from the intellisense list.</li> | ||
|| [[File:cmis_lookup_005e.png | || [[File:cmis_lookup_005e.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="12"> Having completed the previous selection, type... | # <li value="12"> Having completed the previous selection, type... | ||
#: <code>,</code> | #: <code>,</code> | ||
#: ...followed by a space. In doing so you will activate the intellisense again and be able to make another selection. Notice the previous selection is no loner in the list. Repeat this process as many times as necessary to select all target fields.</li> | #: ...followed by a space. In doing so you will activate the intellisense again and be able to make another selection. Notice the previous selection is no loner in the list. Repeat this process as many times as necessary to select all target fields.</li> | ||
|| [[File:cmis_lookup_005f.png | || [[File:cmis_lookup_005f.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="13"> Here, with... | # <li value="13"> Here, with... | ||
#: <code>EMail_Address</code> | #: <code>EMail_Address</code> | ||
| Line 140: | Line 140: | ||
#: ...statement and press space again, and ... you guessed it ... more intellisense. The values listed here are data elements from the '''Data Model'''. By completing... | #: ...statement and press space again, and ... you guessed it ... more intellisense. The values listed here are data elements from the '''Data Model'''. By completing... | ||
#: <code>EMail_Address <span style="color:#0001fd">AS</span> <span style="color:#FF0000">'EMail'</span></code> | #: <code>EMail_Address <span style="color:#0001fd">AS</span> <span style="color:#FF0000">'EMail'</span></code> | ||
#: ...we | #: ...we’ve allowed for dissimilarly named elements to sync up.</li> | ||
|| [[File:cmis_lookup_005g.png | || [[File:cmis_lookup_005g.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="14"> Having completed the entire... | # <li value="14"> Having completed the entire... | ||
#: <code><span style="color:#0001fd">SELECT</span></code> | #: <code><span style="color:#0001fd">SELECT</span></code> | ||
| Line 151: | Line 151: | ||
#: <code><span style="color:#0001fd">FROM</span></code> | #: <code><span style="color:#0001fd">FROM</span></code> | ||
#: ...statement and press the spacebar. Select the WHERE option from the intellisense menu.</li> | #: ...statement and press the spacebar. Select the WHERE option from the intellisense menu.</li> | ||
|| [[File:cmis_lookup_005h.png | || [[File:cmis_lookup_005h.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="15"> Following the... | # <li value="15"> Following the... | ||
#: <code><span style="color:#0001fd">WHERE</span></code> | #: <code><span style="color:#0001fd">WHERE</span></code> | ||
#: ...command press spacebar and select the column that will function as the Lookup Field.</li> | #: ...command press spacebar and select the column that will function as the Lookup Field.</li> | ||
|| [[File:cmis_lookup_005i.png | || [[File:cmis_lookup_005i.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="16"> Type... | # <li value="16"> Type... | ||
#: <code>=</code> | #: <code>=</code> | ||
| Line 169: | Line 169: | ||
#** <code><span style="color:#0001fd">SELECT</span> First_Name, Last_Name, Phone_Number, EMail_Address <span style="color:#0001fd">AS</span> <span style="color:#FF0000">'EMail'</span>, Gender, SSN, IP_Address, Street_Number, Street_Name, City, State, Postal_Code <span style="color:#0001fd">AS</span> <span style="color:#FF0000">'ZIP'</span> <span style="color:#0001fd">FROM</span> sites/Chili con Toso/Shared_Documents/Document <span style="color:#0001fd">WHERE</span> Employee_ID=<span style="color:#ff00ff">@Employee_ID</span></code> | #** <code><span style="color:#0001fd">SELECT</span> First_Name, Last_Name, Phone_Number, EMail_Address <span style="color:#0001fd">AS</span> <span style="color:#FF0000">'EMail'</span>, Gender, SSN, IP_Address, Street_Number, Street_Name, City, State, Postal_Code <span style="color:#0001fd">AS</span> <span style="color:#FF0000">'ZIP'</span> <span style="color:#0001fd">FROM</span> sites/Chili con Toso/Shared_Documents/Document <span style="color:#0001fd">WHERE</span> Employee_ID=<span style="color:#ff00ff">@Employee_ID</span></code> | ||
# When finished writing the query, click the '''OK''' button to close the window. | # When finished writing the query, click the '''OK''' button to close the window. | ||
|| [[File:cmis_lookup_005j.png | || [[File:cmis_lookup_005j.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="18"> Back in the '''Lookup Sepcification Collection Editor''' the '''''Lookup Fields''''' and '''''Target Fields''''' properties are now dynamically populated based on the CMIS Query that was written.</li> | # <li value="18"> Back in the '''Lookup Sepcification Collection Editor''' the '''''Lookup Fields''''' and '''''Target Fields''''' properties are now dynamically populated based on the CMIS Query that was written.</li> | ||
# These properties will usually work fine if defaulted, but they cover circumstances outside basic situations. The '''Grooper Help''' does a good job explaining what they're for. | # These properties will usually work fine if defaulted, but they cover circumstances outside basic situations. The '''Grooper Help''' does a good job explaining what they're for. | ||
# Click the '''Test Lookup''' button to test your configuration. | # Click the '''Test Lookup''' button to test your configuration. | ||
|| [[File:cmis_lookup_005k.png | || [[File:cmis_lookup_005k.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="21"> Enter a valid value into the Lookup Field</li> | # <li value="21"> Enter a valid value into the Lookup Field</li> | ||
# A successful lookup will populate the columns in the '''Lookup Results''' list view with information. | # A successful lookup will populate the columns in the '''Lookup Results''' list view with information. | ||
|| [[File:cmis_lookup_005l.png | || [[File:cmis_lookup_005l.png]] | ||
|- | |- | ||
| style="padding:25px; vertical-align:center" | | | style="padding:25px; vertical-align:center; width:35%" | | ||
# <li value="23"> You can also test your results by entering a value in the '''Data Field''' that is the Lookup Field in the '''Data Model Preview'''. Enter a value, and press tab to leave the field. Leaving the field fires the lookup, and will, as a result, populate the remaining fields.</li> | # <li value="23"> You can also test your results by entering a value in the '''Data Field''' that is the Lookup Field in the '''Data Model Preview'''. Enter a value, and press tab to leave the field. Leaving the field fires the lookup, and will, as a result, populate the remaining fields.</li> | ||
|| [[File:cmis_lookup_005m.png | || [[File:cmis_lookup_005m.png]] | ||
|} | |} | ||
</tab> | </tab> | ||
Revision as of 16:09, 8 June 2020

Performing data lookups on CMIS sources like SharePoint can be extremely powerful in your data integration endeavors.
A base Content Model for use with this article can be found here. It is not required to download to understand this article, but can be helpful because it can be used to follow along with the content of this article. This file was exported from and meant for use in Grooper 2.9
About
Grooper uses the CMIS protocol to connect to a variety of Content Management Systems. This connection can be used to integrate data in powerful ways by allowing the collection of one (or sometimes many) fields of information within a model in Grooper (let's call it Field A), then leveraging that extracted data point against the column of like information in the Content Management system (called Column A) to then pass back other desired fields from other columns in the same row of information.
How To
The most basic thing to understand about performing a lookup in Grooper is what the "lookup field" is and what the "target field(s)" is(are). The lookup field is the trigger, and the target fields are the result.
Put another way, the lookup field is what will be populated with information from an Activity like Extract (a user could also manually enter data into the field). This field will then be "bounced" off of the source of data to supply the remaining fileds, or the target fields, with information
| ! | Some of the tabs in this tutorial are longer than the others. Please scroll to the bottom of each step's tab before going to the step. |
Understanding the Source
Perhaps the most challenging aspect of explaining how to leverage this functionality is the fact that it requires access to a CMIS repository (in this case a SharePoint document library). One was created for the sake of this article, but unfortunately cannot be shared externally. The scope of this article also does not allow explaining setting up a SharePoint document library, as that's an exhaustive topic on its own. Note that CMIS Lookups are not limited to SharePoint, that just happened to be the content system chosen for this article.
Given that, it will be assumed you have access to a source that Grooper can connect to via a CMIS Connection.
The below image is showing a SharePoint document library with a single document in it and several columns added and populated with information.
Understanding the Content Model
|
The Content Model used here is very simple. It has no Content Types or any extraction setup. None of that is necessary to setup and demonstrate the lookup. It simply has a Data Model with several fields. |
|
Configuring a CMIS Connection
This configuration is specific to this article. While aspects of it can apply to any configuration, it's worth noting that this is not THE way to configure a CMIS Connection. This will be configured for a SharePoint environment. 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 SharePoint environment on your end to be established, and real URLs from it supplied.
|
|
|
|
|
|
|
Writer's note - Having created this article and gone back through it, I now realize steps 10-13 here are not absolutely necessary to configure the CMIS Lookup. It will not impede one's ability to do so, and this is valuable information otherwise, as you can use the object created in these steps to map import and export properties for other activites. Feel free to not do steps 10-13 for the CMIS Lookup. |
Configuring the CMIS Lookup
With an established connection to a CMIS repository, the CMIS Lookup can now be configured. This is done on a Data Model.
Version Differences
Prior to Grooper 2.9 the CMIS Lookup functionality did not exist.

















