Enabling HP TRIM SharePoint Integration menus for custom list templates

We've had a number of questions and requests on this topic. If you create a custom list template using Visual Studio, the HP TRIM custom actions (Manage, Relocate, Finalize, Archive) will not be available on lists created from this template.

Luckily, there is a way to fix this! Follow these steps. Note that there are a number of references to 'Registration ID', this will the Registration ID chosen by the person who created the custom list in Visual Studio. You will need this vital piece of information before you start:

  1. Deactivate the HPRecordsManagementSiteMenus, HPRecordsManagement, HPSiteManagement, HPLifetimeManagement features
  2. Browse to the TEMPLATES\FEATURES folder under the SharePoint hive and locate the HPRecordsManagementSiteMenus
  3. You will find a number of xml files under this folder.
  4. If your custom list template is based on “Custom List” make a copy of the GenericList.xml; if it is based on document library then make a copy of “DocumentLibrary.xml”
  5. Open up the copied xml file (if you have more than one custom list template, copy this N [number of custom templates] times); in this example I am using the GenericList.xml. There are three CustomAction sections that need to be modified
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

  
  <CustomAction Id="Ribbon.List.Actions.ListManagement"
                Location="CommandUI.Ribbon.ListView"
                RegistrationId="100"
                Rights="EditListItems"
                RegistrationType="List"
                Title="$Resources:HPIntegrationSharePoint,Msg_TListManagementResults_ManageTitle"
                Description="$Resources:HPIntegrationSharePoint,Msg_TListManagementResults_ManageDescription">
.
.
.
<CustomAction Id="Ribbon.Items.Manage.ListManagement"
                Location="CommandUI.Ribbon.ListView"
                RegistrationId="100"
                Rights="EditListItems"
                RegistrationType="List"
                Title="$Resources:HPIntegrationSharePoint,Msg_TListManagementResults_ManageTitle"
                Description="$Resources:HPIntegrationSharePoint,Msg_TListManagementResults_ManageDescription">
.
.
.
<CustomAction Id="Ribbon.List.Settings.ExposureSettings"
               Location="CommandUI.Ribbon"
               RegistrationId="100"
               RegistrationType="Type"
               Sequence="95"
               Title="$Resources:HPIntegrationSharePoint,Msg_ExposureSettings_LinkTitle"
               Description="$Resources:HPIntegrationSharePoint,Msg_ExposureSettings_LinkDescription">

 6.       Replace the highlighted text with the registration id of your custom list

 7.       Open the feature.xml and add additional references to these new files.

<ElementManifests>
    <ElementManifest Location="DocumentLibrary.xml"/>
    <ElementManifest Location="GenericList.xml"/>
    .
    .
    <ElementManifest Location="CustomTemplateX.xml"/>
  </ElementManifests>

8.       Copy these new files along with the feature.xml to the HPRecordsManagementWebMenus folder

9.       Now browse to the HPManagement feature folder

10.   Repeat steps 4,5

11.   Replace the custom list template registration id in the CustomAction section


<CustomAction Id="Ribbon.List.Settings.ListManagement"
                Location="CommandUI.Ribbon.ListView"
                RegistrationId="100"
                RegistrationType="List"
                Rights="EditListItems"
                ShowInLists="True"
                Title="$Resources:HPIntegrationSharePoint,Msg_TListManagementResults_ManageTitle"
                Description="$Resources:HPIntegrationSharePoint,Msg_TListManagementResults_ManageDescription">

12.   Update the feature.xml with the new file references (see step 7)

13.   Browse to the HPLifetimeManagment feature folder

14.   Repeat steps 4,5

15.   Replace the custom list template registration id in the CustomAction section

<CustomAction Id="Ribbon.List.Settings.LifetimeManagement"
               Location="CommandUI.Ribbon"
               RegistrationId="100"
               RegistrationType="List"
               Sequence="15"
               Title="$Resources:HPIntegrationSharePoint,Msg_ListLMOLinkName"
               Description="$Resources:HPIntegrationSharePoint,Msg_ListLMOLinkDescription">

16.   Update the feature.xml with the new file references (see step 7)

17.   Perform an IISReset

18.   Reactivate the HPRecordsManagement, HPRecordsManagementSiteMenus features and any other HP Features which were previously activated.

Navigate back to the created list and the HP TRIM menu should now be visible.

Many thanks to the integration engineering team for providing this information.