Can you use SharePoint 2013 Foundation with the HPRM Governance and Compliance App?

We have received a number of requests from partners and customers about whether version 8.1 is supported on SharePoint 2013 foundation.
The short answer is that it does work, but there a number of manual configuration workarounds that need to be carried out in order for it to work. Note that SharePoint Foundation is not part of the core supported platforms for the app, these are SharePoint Standard & Enterprise editions. However, in those cases where customers cannot use these editions, we can support SharePoint Foundation, albeit in a limited fashion.

See below for details on the required workarounds.

Why it doesn’t just work

Configuration of the HPRM Governance and Compliance app is done using pages accessed via the app start page.  Some of these pages require selection of record types and classifications.  These are provided via managed metadata term sets.  For example, here is selecting a record type on the default integration settings page:

Unfortunately, SP foundation does not support managed metadata which means that pages that require this for configuration cannot be used.  The pages affected by this are:

  •          Default Integration Settings
  •          Site and list Records Management Options
  •          Content Types to Record Type Mapping

On these pages, if you were to attempt to select a value, the dialog would show:

However, you will not even be able to get this far.  If you add the app to your app catalog, then try to add it to a site, you won’t see it as an app you can add.  If you look under From Your Organization you will see the app sitting in there stating “You can’t add this app here.”

This is because the app requires permission to the managed metadata service.  As there isn’t one in SP Foundation, it can’t be granted the permission and therefore is not available for you to add.

Working around this problem

To work around this problem is a 2 step process: 

  1. Use an app that does not require the management metadata service permission
  2. Provide an alternative way to configure the values for the pages that will not work

The core of the product, management, lifetime management and search will all work fine and this is a supported environment (just don’t expect support around the affected pages).

Note, this work around assumes that you have knowledge of SharePoint, HPRM, SQL Server and XML. 

Limitations of this approach

Before you embark on implementing this work around, consider the limitations of the approach and whether this will be suitable for you. 

Although you will be able to view the configuration for the affected pages using the pages, you will not be able to make changes to the values that require managed metadata.  These types of changes require direct database access. 

If you update the product in future, it will overwrite the app changes that are made in this approach and you will need to redo them.

Using an app with reduced permission requests

You need to generate a new .app file that has the reduced permission set in it.  We have generated one for you. 

Download the modified HPRecordsManagerGovernanceComplianceTemplate.app file.

 On the HPRM server that you are running the configuration tool on, copy this file to the following directory replacing the one that is in there (take a copy of that existing one in case you need it back):

[install directory]\HP Records Manager SharePoint Integration\Templates

Typically the full path will be:

C:\Program Files\Hewlett-Packard\HP Records Manager\HP Records Manager SharePoint Integration\Templates

This file is the template that is used when the configuration tool creates the app file for you.

Now open the configuration tool and using the App configuration tab under the Tools tab, click the Configure App button (this assumes that you have all the values correctly populated – see the installation guide for further details)

This creates the .app file that you need to put in your corporate catalog.  The resulting .app file is located at:

[install directory]\HP Records Manager SharePoint Integration\HPRMGovernanceCompliance.app

Follow the steps in section 4.4 of the installation guide to add this app to your catalog.

You should now be able to add the app to SP foundation sites.

Modifying configuration

In order to modify configuration that cannot be modified directly on app pages, we need to go directly to the configuration database.  There are a few things that you will need to get in preparation. 

Determining the database

To identify the database that is being used to store configuration, use the Farm tab under the Configuration tab.  This shows you the connection string used to connect to the configuration database.  It is the “Catalog” that is the name of the configuration database.

 

You will need to open this database using SQL Server Management Studio.  The rest of the article assumes you have done this. 

Determining the site ID

You will need to know the ID of the site that the settings are for.  The simplest way to get this is from the URL of the app start page.  From site contents, click on the HPRM Governance and Compliance app (presuming you have added it to the site).  This will take you to the app start page.  From there, click on the Default Integration Settings link.  The URL will be something like:

https://YourHPRMFarm/Pages/IntegrationSettings.aspx?SPHostUrl=https%3A%2F%YourSharePoint %2Fsites%2Fscno4&SPLanguage=en%2DUS&SPClientTag=0&SPProductNumber=16%2E0%2E3104%2E1223&Site=6f2ff6a8-3ed7-4423-9fa1-22e36651a7ed&Web=9553bb0e-d0c2-4c3d-a30c-4a83c1e5ce5e

The site ID is the value after "Site=" up until the "&" symbol.  So in this case, the Site ID is: 6f2ff6a8-3ed7-4423-9fa1-22e36651a7ed

Configuring default integration settings

If you navigate to the default integration settings page, you will not be able to select values for any of the record types or the default classification.  You need to set these values directly in the configuration database. 

Constructing the XML

Firstly you need to create the values.  The configuration is XML.  The following is an example of the xml format:

<SiteCollectionSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ProductVersion>1000</ProductVersion>
  <VersionId>a5001c00-d314-466d-afc1-e52fc928baf3</VersionId>
  <WebApplication />
  <ErrorLimit>50</ErrorLimit>
  <DataStoreSiteCollectionSettings>
    <SiteRecordRecordType>
      <Id>3</Id>
      <Name>SharePoint Site</Name>
      <Description />
      <AlternateIdentifier />
      <VersionId />
    </SiteRecordRecordType>
    <ListRecordRecordType>
      <Id>4</Id>
      <Name>SharePoint List</Name>
      <Description />
      <AlternateIdentifier />
      <VersionId />
    </ListRecordRecordType>
    <DefaultContainerRecordType>
      <Id>1</Id>
      <Name>Folder</Name>
      <Description />
      <AlternateIdentifier />
      <VersionId />
    </DefaultContainerRecordType>
    <DefaultManagementRecordType>
      <Id>2</Id>
      <Name>Document</Name>
      <Description />
      <AlternateIdentifier />
      <VersionId />
    </DefaultManagementRecordType>
    <DefaultClassification>
      <Id>19</Id>
      <Name>2A.1</Name>
      <Description />
      <AlternateIdentifier>2A.1</AlternateIdentifier>
      <VersionId />
    </DefaultClassification>
    <SearchContentIndex>false</SearchContentIndex>
  </DataStoreSiteCollectionSettings>
  <SiteCollectionId>10aabcee-fb23-472c-89cc-0f3319b8857c</SiteCollectionId>
  <ManagementInjectorAssembly />
  <ManagementInjectorClass />
  <FarmId>00000000-0000-0000-0000-000000000000</FarmId>
  <ViewPermissionLevels />
  <EditPermissionLevels />
  <ClaimsCalculationLimit>1000</ClaimsCalculationLimit>
  <ClaimsCacheList>00000000-0000-0000-0000-000000000000</ClaimsCacheList>
  <SecurityGroupsList>00000000-0000-0000-0000-000000000000</SecurityGroupsList>
  <ExposureSearchAccountName />
  <UseDefaults>false</UseDefaults>
  <AccessDetails>
    <DatabaseId>TT</DatabaseId>
    <DataStorePrivilegedAccount />
  </AccessDetails>
  <CaptureAllVersions>false</CaptureAllVersions>
</SiteCollectionSettings>

The following nodes contain the record types that are set on the page: 

  1. SiteRecordRecordType
  2. ListRecordRecordType
  3. DefaultContainerRecordType
  4. DefaultManagementRecordType

These nodes include the following elements that you must modify: 

  1. Id
  2. Name

The Id node must contain the HPRM unique identifier of the record type (the URI).  You can identify this using the HPRM client.  From the Tools menu, navigate to Record then Record Types.

This brings up the list of record types in your dataset.  Right click the display pane and choose Customize

Locate the Unique identifier in the available fields and add it to the Displayed fields list:

This will now display the URI of the record type in the Unique Identifier column

The Name element must contain the display name of the record type.  This can be identified in the Name column on the display pane of the record type.

 See the installation guide for details regarding how to select suitable record types.  Be sure that the default management record type has a container level smaller than the default container record type.

Add the details of all record types into the XML.

The next thing to set on here is the default classification to use.  This is in the DefaultClassification node.  As with the record type nodes, you need to set the ID and the Name of the classification.

If you don’t want to nominate a default classification, then remove the DefaultClassification node altogether. 

Finally, set the value of the SiteCollectionId node to be the value you determined for the Site ID in an earlier step.

Adding the value to the database

Now that we have the XML, we need to add it to the database.  We will be adding it to the GeneralConfiguration table.  Assuming that you don’t already have an entry in the table with an ID starting with SiteCollectionSettings, then run the following SQL script (using SQL Server Management Studio) replacing the following: 

  • DATABASENAME - the name of your configuration database        
  • SITEID – the site ID calculated in an earlier step
  • XML – the XML created in the previous step
use DATABASENAME
insert into dbo.GeneralConfiguration values
('SiteCollectionSettings-[00000000-0000-0000-0000-000000000000][SITEID]',
'HP.Integration.SharePoint.Configuration.SiteCollectionSettings',
'XML')

Once done, if you navigate to the default integration settings page, you should see the values you just created.  You will be able to save settings on this page, just not modify the record types and classification.

Reaching this point allows you to get to the end of the installation and configuration described in the installation guide.

Next steps

In a follow-up post, we will describe how to manually configure the following:

  •          Configuring Content Type to Record Type mappings
  •          Configuration site records management options
  •          Configuration list records management options