HPE Software Products: SDK / API Support
Share |

Mismatch between SuggestedFileName and DoExtractOpen in a New Window

If I have a record whose title ends with a period, SuggestedFileName is trimming the period before appending the .extension

This is a problem as DoExtract with ConvertToHTML keeps the period

Current workaround is check the title for ending in a period, and if so then stick one inbetween the filename and the extension - can anyone from HP suggest a better solution?


Change action due date without being a Records ManagerOpen in a New Window


The situation I have is that users need to be able to change the due date (or extend the duration) of an action.

Prior to the licensing model changes that came in with RM8.1 it was possible for a user to be able to be granted the "Actions administrator" permission, but now a user needs to be at least a Records Manager in order to be able to have this permission granted.

Records Co-ordinators are able to be granted the "Reschedule actions" permission, but it appears that this only allows them to change the start date of an action, not the end date.

I had hoped that the Record.SetActionDuration method would allow this, but it is also tied to "Actions administrator" permission.

Is there some way for the end date of an action be be modified without being a Records Manager? We're not trying to give users the ability to edit the action templates, just change the due date on an action assigned to a record.

thanks, Mark



Which API/SDK for HP RM IntegrationOpen in a New Window


we would like to integrate our application with HP RM (TRIM) and during our initial research we found out there are several API/SDK which can be used. Our requirements are:
* to support various range of version without recompilation - our customer has HP RM 8.3 but we would like to support 8.x, 9.x, ...
* we would like to upload/download/replace small (~10MB) and big (<=300MB) documents
* we would like to impersonate users
* we would like to connect to HP RM remotely - our client will be running in a semarate host in the same network/domain
* our application is in .NET/C#

My question is which API/SDK would best fit my needs?

There are results & questions from my evaluation:

.NET SDK - it seems that the "SDK" is a thin wrapper around a bunch of native libraries.
* SDK: It's part of the installation, does it mean that I need the same version as my customer has to get it? Do I have to buy it or can I get a trial version of that precise version somewhere? 
* Deployment: Do I need to install precise version of HP RM on the machine where my service runs in order to connect into HP RM server? Is it enough to copy only required native libries to keep it small and easy to deploy? What is required? Could the same binaries be used for all 8.x? Is it "forward" compatible with 9.x?
* Environment: Can my service run on a different computer that HP RM?

ServiceAPI - it seems that it's a rest interface, there is also a thin .NET client
* Deployment: Is the API compatible for all 8.x? Is it "forward" compatible with 9.x?
* Environment: Is it always present in the HP RM, i.e. will every custommer have it without the need to reinstall HP RM?

some "old web service" - looks like a predecessor for the REST API? does it have same capabilities?

anything else?


Thank you very much in advance.


Find the URI of the current action associated with a recordOpen in a New Window


How can I find the URI of the current action associated with a given record? There's no property on the Record object that has a collection of the Actions, only textual representations of the Actions, but there are a lot of methods on the Record that require the Action's URI.

thanks, Mark


What HistoryTypes property needs to be set to load document from cache?Open in a New Window

I have the document now loading from cache, but to use


I have to set a HistoryTypes in order for it to work.


Right now I am using

HistoryTypes types = HistoryTypes.ErecLinkExtracted;

I don't know which one to use. There are several listed, but am not sure what they are used for.



Record.RescheduleActions and Record.SetActionDurationOpen in a New Window


Anyone have any knowledge of the usage for the HP ECM methods Record.RescheduleActions and Record.SetActionDuration?

The SDK document https://softwaresupport.hpe.com/km/KM02666838/hpe_man_CM9.1_.NETSDK_pdf.pdf has nothing in it and the available information in the web version of the SDK only says:

void HP.HPTRIM.SDK.Record.RescheduleActions ( TrimDateTime  fromBaseDate,     bool  useActualDurations    )    

Reschedules all actions attached to this record

void HP.HPTRIM.SDK.Record.SetActionDuration ( TrimURI  recordActionUri,     int  newDurationDays,     int  newDurationHours,     int  newDurationMinutes,     bool  adjustProcedureOnly    )    

Alter the duration of an existing record action


 What I need to do is provide an existing action with a new due date. I believe that RescheduleActions is the correct method, but I need some knowlegde of what fromBaseDate does and what security requirements there are for a user to use these methods.

thanks, Mark


what does the following code do?Open in a New Window

if (record.IsElectronic) {
        if (!record.IsDocumentInClientCache) {

Where does the following code load the document to? (where is it supposed to load it?)


I thought it loaded it into the client cache of the user's machine, but it appears to load it in the cache on the server where TRIM (HPE Records Manager) and the Workgroup Server are located.

Does this speed up accessing the document to avoid going to the Doc store?

If so, it appears to be slower so far when testing.



Need Custom Proterty Datafrom HPRMOpen in a New Window

Hi All,
We are developing a web front-end for showing search results using HPRM8.3.

I am able to retreive records using 'TrimMainObjectSearch'.
Records in our setup have multiple custom properties and I am able to retreive individual custom properties from indivaidual records.

But we want to retreive a list of 'distinct values' of these custom properties from the results without interation and manual looping.

So for example of i get a result like

-CustomProperty-'Value 1'  

-CustomProperty-'Value 2'  

-CustomProperty-'Value 1'

-CustomProperty-'Value 1'

Then we want to retreive a list with value CustomPoperty value : [1 , 2] 

I checked the SDK menthods and was not able to find any sultions.
Is there a way to achieve this withoute manual lopping through each record ?


Finding complete Treasurus Term tree attached to a recordOpen in a New Window

Hi All,

Apologies if the question sounds a bit noob but I donn't see to find a solution.

I'm using HP RM 8.3 and trying to extract the complete Treasuras Term tree for a record using .NET SDK
I have used the 'broader' relation to move from leaf to parent of Keywords.

But as many leaf terms have multiple parents its difficult to get the exact parent which was used during attaching the record.

Is there any way to find this ? Or does the record manager does not support such implimentation ?

The following has been my code so far:

public static void GetTreeFromRecord(string uri)

     Database hpConnect = new Database();

     hpConnect.WorkgroupServerName = "SVR";
     hpConnect.Id = "DD";

     TrimMainObjectSearch objTrimSearch = new TrimMainObjectSearch(hpConnect, BaseObjectTypes.Record);
     TrimSearchClause objTrimClause = new TrimSearchClause(hpConnect, BaseObjectTypes.Record, SearchClauseIds.Uri);

     // Get Record
     foreach (Record record in objTrimSearch)
          //Get Keywords
          foreach (RecordKeyword item in record.ChildKeywords)
               //Get Parent Tree of Keyword
               TrimMainObjectSearch recKeyword = new TrimMainObjectSearch(hpConnect, BaseObjectTypes.Keyword);
               recKeyword.SetSearchString("broader:" + item.Keyword.Uri.UriAsString);

               string treeString = item.NameString;

               foreach (Keyword ite in recKeyword)
                    GetParent(hpConnect, ite,ref treeString);



public static void GetParent(Database db,Keyword kWord, ref string kwTree)
     kwTree = kWord.NameString + " < " + kwTree;

     TrimMainObjectSearch recKeyword = new TrimMainObjectSearch(db, BaseObjectTypes.Keyword);
     recKeyword.SetSearchString("broader:" + kWord.Uri.UriAsString);

     if (recKeyword.Count > 0)
          int count = 0;
          foreach (Keyword ite in recKeyword)
               GetParent(db, ite, ref kwTree);



HPE Content Manager SDK 9.1Open in a New Window

Could anybody please let me know from where can I download the HPE Content Manager SDK 9.1 ?



Options when using TrimMainObjectSearchOpen in a New Window

I was wondering if anyone could explain the properties that can be set on TrimMainObjectSearch and what they mean. I am looking at best practices for what may be useful to use:





Download a document using WebServices APIOpen in a New Window

Does anyone who how to download a record (RecordType: document) using (REST) Web Services API? I look into the provided HP Content Manager Web services but couldn't see any available service.

Thanks in advance.


Retrieving customize value of Record Class using GetProperty methodOpen in a New Window


We are using HPRM SDK in that we have BaseObjectTypes.Record and there are some custom properties created by the team which are not provided by HPRM. I want to access them I dont know ho to get the value of custom properties of BaseObjectTypes.Record.





How to attach document to a record using HP Content Manager WebServicesOpen in a New Window

I'm using REST Web Services provided by HPCM for integration.  I have 2 questions:

(1) How to send credentials (using web service) to log in HP Content Manager? 

(2) I successfully created records (RecordType: folder) by calling POST /Record.  However I couldn't find the correct web service that I can call to attach a document to that record. 

Please advise. Your help is appreciated.


Service API documentationOpen in a New Window

Is HPE RM8 service api documentation publicly available?

I'm developing a web app that must be integrated with an RM8 installation that I currently don't have acces to, so I need some API reference to write API calls. I could not find reference anywhere in the public access, and installation documentation for HPE CM implies that it's only avaliable after install from API itself.

The problem is though, that free trial version of HPE CM that I downloaded does not allow for Service API extension to be installed (the checkbox is disabled in installation wizard and the 'Service API' label is written in red.

How can I obtain an API reference in this situation?

Thanks in advance for any help.


Web Server Work Path scope for file system contention in 9.1?Open in a New Window


We are in the process of upgrade from 8.3 to 9.1. We are hosting the SDK in a web service and so part of our initialisation is to call TrimApplication.SetAsWebservice(workPath). One thing we noticed under 8.3 is that under a heavy load of concurrent web service calls, we logged many file locking errors from the SDK trying to access files in that directory. We implemented a fix which was to generate a sub-folder for each request which is then deleted when the web service instance is disposed.

Under 9.3 however we have observed that the initialisation of the SDK and the value of TrimApplicaiton.WebServerWorkPath is retained across requests. That is, where we prviously initialsed and set a work path at the beginning of each request, we now only need to do it for the first request after an app pool start and all subsequent requests will use those settings.

My only conern though is that this will cause the file locking issues to occur again when under load as we will no longer be able to generate a directory per-request. Is this accurate or is this no longer a concern since 8.3?


Unable to check in record using Web Service APIOpen in a New Window

Hello, We have been running into an issue when checking in a record using the Web Service API.

The records create in TRIM, but then we try to check in a document, it fails. It appears to be coming back with 10 results found when it should only be finding one.

The tmp file is created in c:\Windows\Temp but the process stops there. Ive checked permissions. Ive set the Transfer path in the Web.config to c:\Windows\Temp... still no luck.

Can anyone tell me what it is finding 10 of? When we point to our old environment, it find 1 result. but our new environment, it finds 10... very confusing

Its saying we need to specify a record to check in. When we point the exact same code to our old 6.25 environment, it works. When we point to our 7.3, we get the following

<?xml version = "1.0" encoding = "UTF-8"?>
 <ExecuteResponse xmlns = "http://www.towersoft.com/schema/webservice/trim2/" xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa = "http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">

    <Message>You need to specify a record to checkin (TRIM Connectivity Toolkit unique id = 1000227)</Message>



Our 6.25 environment comparison

<?xml version = "1.0" encoding = "UTF-8"?>
 <ExecuteResponse xmlns = "http://www.towersoft.com/schema/webservice/trim2/" xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa = "http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">




TrimException: Error communicating with HPE Records Manager Workgroup ServerOpen in a New Window

We have a web application using the .NET SDK that interfaces with TRIM (v8.3) to query records, add records, etc.

We are getting the following error:

TrimException: Error communicating with HPE Records Manager Workgroup Server on 'Server name'. [RCF: Failed to receive pingbacks from server. Expected pingback interval (ms): 15000.]

Users will access the website using their Windows account which will then be used to authenticate with TRIM. Their login is then used as the db.TrustedUser when making calls to TRIM.

Please note that we do not get this error all the time, just once in a while. But things do seem to run slow at times when users access the website.

We were wondering what permissions need to be set on folders, etc. as well (i.e. WorkServerWorkPath)

Also, we are wondering if anyone has experience using a custom website to interface with TRIM who can comment on any latency issues, performance with TRIM, etc.

What can we configure in TRIM to ensure better performance using a web application?

How many concurrent users can query information from TRIM using the website?

Things runs fine and then other times it takes a long time to query records from TRIM from the website. We built the website using the .NET SDK using ASP.NET MVC 4. 


View actual SQL for ServiceAPI calls from .Net code ???Open in a New Window

I am calling the Service API from .Net running RM8.3.

I am seeing unexpected results if a user defined field (Additional field) is part of the search string and the additional field does not exit in RM8.  I understand that we should use Additional fields that exist in RM8, but we ran across this when the sending applicaiton used a different spelling than what was in RM8.  The Desktop client throws an error say that the additional field does not exist.  In the Service API the results are different if you use a record type filter or not.

Below I have capture queries with the total records found:

The first test was with Client ID and date range without a record type filter, the correct results was returned.
recordsRequest.q: LetterCreatedDate:20170303 to 20170324 AND ClientID:xxxxxxx
response.TotalResults: 2

The 2nd test was with Client ID and date range with a record type filter, the correct results was returned.
recordsRequest.q: LetterCreatedDate:20170303 to 20170324 AND ClientID:xxxxxxx
recordsRequest.Filter: type:541
response.TotalResults: 2

The 3rd test was with Invalid Client ID search name and date range with a record type filter.  All of the records of that record type was returned.
recordsRequest.q: LetterCreatedDate:20170303 to 20170324 AND ClientID2:xxxxxxx

recordsRequest.Filter: type:541
response.TotalResults: 6751

The 4th test was with Invalid Client ID search name and date range without a record type filter.  No records were returned.
recordsRequest.q: LetterCreatedDate:20170303 to 20170324 AND ClientID2:xxxxxxx
response.TotalResults: 0

The 5th test was with date range with a record type filter.  Correct Results returned.
recordsRequest.q: LetterCreatedDate:20170303 to 20170324

recordsRequest.Filter: type:541
response.TotalResults: 12

The 6th test was all with record type filter.  Correct Results returned.
recordsRequest.q: all

recordsRequest.Filter: type:541
response.TotalResults: 6751

Test 3 and Test 6 returned the same results.   I would expect test 3 to return no records since an invalid search field was passed into the API.  I would like to be able to capture the SQL that is sent to the database to determine why we are seeing the same results between Test 3 and Test 6.   Is there a way to capture the native SQL? 



How can I pass the user credentials to the Trim server?Open in a New Window


We have got HPE Content manager 9.0 and need to write code in Javascript and C# to communicate via the Web API.

I coudn't find any sample code about sending the user credentials with the web request. Could you please help me?




Contact Us

Vivit Worldwide
P.O. Box 18510
Boulder, CO 80308

Email: info@vivit-worldwide.org


Vivit's mission is to serve
the Hewlett Packard
Enterprise User
Community through
Advocacy, Community,
and Education.