- About Vivit
- LUGs & SIGs
- Vivit Blogs
- News & Events
- Knowledge Base
|HPE Software Products: SDK / API Support|
When performing a Search for records when we get a timeout we still seem to be having a Response returned by the service API, rather than an Exception of any kind.
Is there a way to check if a timeout has occured ?
We are using the .NET Wrapper around the service API, and we are trying to perform a Phrase search for documents
This should consist be achievable by having the Q property set to
content:"phrase to search"
However this seems to actually perform a search on each term individually, rather than the phrase.
Can anyone advise how to get a phrase search to work ?
I am currently using HPE CM 9 Patch 2 with the ServiceAPI V 1.0 and am performing a batch update operation on a series of containers using the API endpoint: /HPECMServiceAPI/json/Reply/Record
Is anyone able to advise me on how I can update user defined fields as part of a bulk update operation on the ServiceAPI? I am finding the documentation to be a little sparse.
Since the development and testing efforts required for HP RM are limited, we were thinking of creating a dev and test environmet for creating custom application with HP RM 8.3 as their backend on Azure cloud.
So my question is if I create a Virtual Machine in Azure having ActiveDirectory, SQL and HP ERM8.3 in one machine and other VM containing Development tools liks HP ERM 8.3 SDK, Visual Studio, etc. then would there be any issues during the installation, configuration, usage of RM8.3 ?
I had read in one of the blogs that there is some issues with search if we put HP ERM on cloud, but i don't know how reliable is the source.
I'm trying to create a custom client for HP ERM system. For the same I will be developing on my local network.
But due to policy issues I cannot have a ActiveDirectory instance in my network.
I was thinking of adding the ActiveDirectory and HP ERM server on a VM in a isolated network which my development environment can access using HTTP/HTTPs or RDP.
If I do this, I guess I will have issues in authentication as my local users (intranet users) will not be having rights in HP ERM as HP ERM will be configured with users and roles present in the isolated networks AD.
Have you guys ever implimented such scenario. If so did you face any issues especially with security ?
We have a huge number of R&D Schedules defined in the HP Records Manager. Recently there has been a change in the Trigger Events (from 'Date Closed' to 'Last Action Date').
The manual way of making the above change on all the Schedules will take a long time; is there any way I can update all the Schedules at the same time?
We're updating our TRIM instance from 7 to RM8.3. As part of this we need to rewrite an integration we have since the SOAP web services aren't available in 8.3.
We're having difficulty checking if a location has access to a record. For the SOAP web service we're using
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:trim="http://www.towersoft.com/schema/webservice/trim2/"> <soapenv:Body> <trim:Execute> <trim:req> <trim:ObjectStringSearchSelect> <trim:TargetForUpdate>false</trim:TargetForUpdate> <trim:IsForUpdate>false</trim:IsForUpdate> <trim:Limit>0</trim:Limit> <trim:Skip>0</trim:Skip> <trim:TrimObjectType>record</trim:TrimObjectType> <trim:Search>container:[[containerID]]</trim:Search> <trim:Sort>registeredon-</trim:Sort> </trim:ObjectStringSearchSelect> <trim:HasAccess> <trim:TargetForUpdate>false</trim:TargetForUpdate> <trim:AclType>2</trim:AclType> <trim:LocationUri>[[userURI]]</trim:LocationUri> </trim:HasAccess> <trim:Fetch> <trim:TargetForUpdate>false</trim:TargetForUpdate> <trim:Items> <trim:SpecificationProperty> <trim:Name>rectypedtitle</trim:Name> </trim:SpecificationProperty> <trim:SpecificationProperty> <trim:Name>uri</trim:Name> </trim:SpecificationProperty> <trim:SpecificationProperty> <trim:Name>recextension</trim:Name> </trim:SpecificationProperty> <trim:SpecificationProperty> <trim:Name>recdocumentsize</trim:Name> </trim:SpecificationProperty> </trim:Items> <trim:HideVersion>true</trim:HideVersion> </trim:Fetch> <trim:HideVersionNumbers>true</trim:HideVersionNumbers> <trim:ProvideTimingResults>false</trim:ProvideTimingResults> <trim:ForceRealTimeCacheUpdate>false</trim:ForceRealTimeCacheUpdate> </trim:req> </trim:Execute> </soapenv:Body> </soapenv:Envelope>
This gives us the content of a container, and whether or not the location with the specified URI has permission to view the records.
We can't find something similar in the Service API. We have got how to get the content of a container (/Record?q=container:<<container title>>&format=json&properties=title,uri,recordDocumentSize,recordExtension), and the uri of a location (/Location?format=json&q=locUnique:<<username>>&properties=uri) . What we're missing is how to ensure the location has view access to the record.
Does anyone have any ideas?
I would like to use the .NET SDK to query the permissions (ACL) for a user to determine if they have access to view the record and also what properties they can access.
I found that even though a user may access a record, there are some properties (i.e. Container) that they may not be able to access.
My question was if I try to access an HP ERM8.3 from another machine (using the SDK) what kind of user will I need to be ? Also how does the overall security work in Record Manager system when we use SDK ? Finally is it possible to impersonate different users during execution ?
Any links or references will be really helpful.
I have a question on certain built-in properties and what they are used for (intended purpose).
What are the Title, Title (Free text), and Title (structured) used for?
I am working with our organization to help them build a custom web app to interface with an existing HP RM that was built prior to the folks here who manage it.
Right now they do not use Title or Title (Free Text) for anything. The Title (structured) property is used in conjunction with Classification.
They also have an additional field named "Name" which they use as a name for the record. But what I have read in the manuals and SDK it looks like Title should be used for that. This has become an issue as we are trying to search for information in the additonal field "Name" and many searches come back empty even though something exists in the Name field. They also have the box clicked for excluding the "Free Text Title" when creating records.
Not sure what the recommended practice is with HP RM about these items. I would appreciate any insight into how the recommended approach is to inputting data and using those fields.
I would like to search for record types that match on one or the other.
I am using the following code:
TrimMainObjectSearch objSearch = new TrimMainObjectSearch(db, BaseObjectTypes.Record);
I want to add a filter or another search criteria that specifies to only return records that match on one of 2 record types
I tried something like objSearch.SetFilterString("type:\"recordtype1\" or type:\"recordtype2\"");
But it doesn't like the or. I also tried using the objSearch.AddFilterClause() and objSearch.Or() but was unsuccessful.
We are wondering if it is possible to create a new record in HPRM using the service api and trim client by posting a document that is stored in cloud storage, so azure blob storage for instance. So where you are setting up your request to post to the HPRMServiceApi, where you would put your normal document file path, could you use the url of the file stored in blob storage.
We have seen in the trim client documentation there is the following option "void PostAsync<TResponse>(string relativeOrAbsoluteUrl, object request, Action<TResponse> onSuccess, Action<TResponse, Exception> onError);" does anyone know if this 'relativeOrAbsoluteUrl' string, could be the URL of a document in the cloud?
I hope this makes some sense to someone out there.
This is the first time i'm exposed to HPE systems so please excuse me if my question sound totally ignorant or stupid.
I have been trying to find resources related to HP Record Manager (8.3) and time and again I see this term HPE RM or Content manager. First off just wanted to know if these products are same or there is a difference. I tried to go through various products on hpe.com but didn't get a appropriate answer for this.
I also read that the HP Record manager has a .net SDK associated which can be used to integrate/access data from the systems in a .net environment. But the only reference I find of this is the Content manager SDK, so again my question is are they the same product ? And secondly is there any location where i can find the documentation for these SDK's ?
Apologies in case i'm posting this question a wrong thread/forum.
I have a question on sorting and filtering using TrimMainObjectSearch.
I am able to use this for standard properties, but can't figure out the syntax for user defined properties.
Specifically, I need to sort by a user defined property and ensure that it is not null.
How can I implement security in a search form using the .NET SDK that will prevent the logged in user from seeing a record they are not authorized to see (i.e. there is some caveat associated with the record)?
This works in the Web Drawer (using the Service API).
I was able to get my search form working (many thanks to Matt and David!), but I can search on any record. I would like to lock that down to only records my account allows me to see.
I am looking at just using Windows accounts (Windows authentication).
I would like to build a custom search page (using MVC/Razor) that uses the .NET SDK to search for records.
I have a basic template that works, but the query is much slower than the Service API (in the Web Drawer). Are there any helper methods, etc. in the SDK that can assist in making a more efficient/faster query:
It would be something like:
MainTrimObjectSearch records = new MainTrimObjectSearch(database, BaseObjectTypes.Record);
var results = from r in records
This performs slow when querying 100s/1000s of records.
Our organisation has created a "project" record type with a container value of 0.
I would like to write some code that will allow them via a webpage to link folders and files into this project container. Unfortunately the error message I get is
"A record of type 'Project' cannot be used as a container - it has a container level of 0."
Can someone tell me how I might go about fixing this.
My test code so far is below, sorry about the formatting
protected void btnDocumentCreate()
//string username = fnUserIdentity();
objDB.Id = DataSetId;
TrimMainObjectSearch objSearch = new TrimMainObjectSearch(objDB, BaseObjectTypes.Record);
foreach (Record thisObjRec in objSearch)
RecordType objRecType = new RecordType(objDB, "Document");
catch (Exception ex)
I am extracting all documents in a container record using ServiceAPI 8.2 and caching them in my application. Every document is audited as a Document Extracted. Is there any way I can add any information to the audit log? I want to indicate that the file was extracted by my app.
With HPRM 8.2 I am using the ServiceAPI to add new records to a container record. My container record has a record type which allows parts and I have created an extra part in the record. I have the system setting "When placing record in a closed container" set to Deny. The ServiceAPI allows me to run as a normal user and add new records to the closed part. If I use the HPRM windows client as the same user it tells me that it is a closed part and prompts me to add to the latest part. Why does ServiceAPI allow me to add to the closed part?
I cannot see any information in the EnabledCommandIds to indicate that I shouldn't be adding to the record. Is there a description of what the different EnabledCommandIds mean? The ServiceAPI help does not describe what each CommandId represents. Is there an EnabledCommandId that will tell me if it is ok for the user to add a record to a specific container?