HPE Software Products: SDK / API Support
Share |

Service API - Detecting a Timeout when performing a SearchOpen in a New Window

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 ?

 

ServiceAPI - Performing a 'Phrase' search of RecordsOpen in a New Window

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 ?

 

 

Bulk update of user defined fields for containers using RESTOpen in a New Window

Hi,

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[]

An example of the Body of the REST web service call I am making is:
[{"RecordLongNumber":"S12345E","Uri":"21289572","RecordTitle":"Test 2","DateOfBirthDdMmYyyy":"01/02/2003"}]

While the record title is being updated just fine, I am finding that the value for the user defined field DateOfBirthDdMmYyyy is being completely ignored.

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.

Thanks!

Mike

 

Installing HP RM 8.3 on Azure for Dev & TestOpen in a New Window

Hi All,

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.

regards,

Rohan W.

 

HP ERM 8.3 and SDK on different networksOpen in a New Window

Hi All,

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 ?

 

 

 

How to Mass Upload R&D Schedule Trigger EventsOpen in a New Window

Hi All,

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?

Thanks,

(Hamed)

 

Check user permission to record in service APIOpen in a New Window

Hi,

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?

 

How to check permissions about a recordOpen in a New Window

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.

 

HP ERM 8.3 and Active Directory & SecurityOpen in a New Window

Hi All,
I was looking at the documentation & installation steps for the HP ERM 8.3 solution and from my limited reading I understand that it relies on Active Directory to provide security.

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.

regards,

Rohan W.

 

Question on Titling in HPE Records Manager 8.3Open in a New Window

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.

 

Searching for record typesOpen in a New Window

I would like to search for record types that match on one or the other.
Basically I want to formulate an "or" clause in the SQL statement.

I am using the following code:

TrimMainObjectSearch objSearch = new TrimMainObjectSearch(db, BaseObjectTypes.Record);
objSearch.SetSearchString(queryString);
queryString would be something like "recNumber:xxxx"

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.

Any suggestions?

 

Generating a record in HPRM from a document URL path (Blob Storage)Open in a New Window

Hi,

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.

Thanks

 

SDK Docs updated for 9.1Open in a New Window

The online SDK docs for 9.1 are now available.  They are updated to reflect changes made in 9.1 along with a new page documenting purpose filtering.

 

HP Record manager & Content Manager systems SDKOpen in a New Window

Hi All,

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.

 

Sorting and filteringOpen in a New Window

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.

John

 

Security with .NET SDKOpen in a New Window

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).

Thanks.

John

 

Query records example using .NET SDKOpen in a New Window

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);
records.SetSearchString("uri:123456"); //Search criteria supplied by search form

var results = from r in records
select r.Skip(15).Take(15);

View(results);

This performs slow when querying 100s/1000s of records.

 

Linking records to containers with value 0Open in a New Window

Hi

Our organisation has created a "project" record type with  a container value of 0.
They link folders from other sections into this projects container that relate to a common project.

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
txtSubFolder = "title:Bills test project";
  String txtDocumentNewRec = "ScheduleDocument_" + DateTime.Now;
  String IdNumber=""
  try
  {

      //string username = fnUserIdentity();
      using (Database objDB = new Database())
      {

            objDB.Id = DataSetId;
            objDB.WorkgroupServerName = ServerName;
            objDB.TrustedUser = "Bill Sigar";
            objDB.Connect();

            TrimMainObjectSearch objSearch = new TrimMainObjectSearch(objDB, BaseObjectTypes.Record);

             objSearch.SetSearchString(txtSubFolder);

             foreach (Record thisObjRec in objSearch)
            {

                IdNumber = thisObjRec.Number;
            }

        if (!(String.IsNullOrEmpty(IdNumber)))
         {

            RecordType objRecType = new RecordType(objDB, "Document");
            Record objRec = new Record(objDB, objRecType);
            Record objContainer = new Record(objDB, IdNumber);
            objRec.TypedTitle = txtDocumentNewRec;

            objRec.SetContainer(objContainer, true);
           objRec.Save();

        }

       objDB.Disconnect();

     }
}

catch (Exception ex)
{
  
System.Diagnostics.Trace.WriteLine(ex.Message);  
   txtError.Text = ex.Message;
}

 

AuditingOpen in a New Window

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. 

 

ServiceAPI allowing me to add records to closed partsOpen in a New Window

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?

Contact Us

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

Email: info@vivit-worldwide.org

Mission

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