Using TrimDateTime from a web service

When writing a web service that uses the CM SDK you need to take into account the fact that different users may be in different time zones. The SDK date/time object, TrimDateTime operates, buy default, in the same time zone as the operating system. To ensure you set dates correctly you need to convert it to operate in the same time zone as the user. The sample code demonstrates how to do this, for more detail have a look at this video.

Read More

Workaround for incorrect date returned in Additional Fields

When posting a date to an Additional Field in the web service the date returned in the response is incorrect, even though the date set in CM is correct. The problem is caused by a bug in handling time zone offsets. The scenarios in this post assume that:

  • all actors (web service, client, WGS) are using the same time-zone settings, and
  • dates are always sent as UTC (not local) dates.
Read More

Update to site

As of Monday 15th July 2019 I have moved the hosting for this web site from Squarespace to Github pages. The main motivation for this was to consolidate with our samples repo. The only annoyances I expect for readers of this blog are:

  1. links to individual posts have changed, all posts can be found in the index
  2. the RSS feed link as changed, select the RSS link at the bottom of the page to subscribe to this blog.
Read More

Query CM from Excel

One of the outputs from my recent experimentation with PowerBI and Power Query is this saved search connector. I do not spend much time in Excel myself but I know that it is popular out there in the real world. If you would like to see something more/different contact me on the forum or through the usual channels.

Read More

Realize

Spending most of my days alone in an office I love the occasions when I get to meet some of the people who use CM. One of the most enjoyable experiences is hearing directly from people who need a particular fix/feature and then being able to go back to my office and make that happen.

I, along with various other CM developers, will be at Realize this year, I will not venture beyond Melbourne but members from the dev team will be at all the Realize events.

Come along, tell us your stories and shine a light into the long lonely months in the office.

Read More

Deleting files left behind by the Office Integration

The scenario:

  1. open Excel

  2. create a worksheet

  3. check the worksheet into CM using the Office Integration

  4. close Excel

  5. a temp file is left behind in Documents\Micro Focus CM

  6. the file is deleted the next time you open Excel (or another Office application).

The problem

The scenario described above occurs because Excel retains a handle on the file until it has completed closing, at which point the Office Integration has been unloaded and is unable to delete the file. Other Office applications (e.g. Word) release the file before they close allowing the Office Integration to delete the temp file.

A Workaround

While a future version of CM may contain a solution for this problem a work-around available today is to run a powershell script from the windows task scheduler to delete left over files.

The Script

The script below finds all files scheduled for deletion in the managed docs XML file, deletes them and removes the entry from the XML file.

$filePath = $env:APPDATA + "\Micro Focus\Content Manager\OfficeIntegration\managedDocs"


      
Read More

Dashboards and business intelligence

Last week I took some time out of my schedule to experiment with Power BI. While Power BI can access many data sources, including a JSON/REST web service such as the ServiceAPI, it is simplest to access data sources for which a connector exists. This led me to experiment with Power Query custom connectors.

The connector I show in the video below is not production ready but is far enough along to demonstrate its viability. Before proceeding I would like some feedback from anyone who might use this to answer questions like:

  • Is Power BI of interest?

  • What data would you want to extract from CM in Power BI?

  • What sort of Dashboards / Reports would you produce?

One nice thing about a custom connector is that it could quite easily be backwards compatible, so would work with existing CM implementations.

If you have any interest in this space and want to see this experiment go further send me a private message at the CM Forum.

Read More

Parameterised Saved Searches

There are a few features in CM that you might not notice unless they are pointed out, one is parameterised saved searches. These can be used to provide users with pre-defined but customisable searches.

Read More

Deleting in the ServiceAPI

Strangely enough there are multiple paths via which you might choose to delete a Record in the ServiceAPI. When looking back on how this choice was made I tend to agree with Elizabeth Bennett that a good memory is unpardonable, but, is it a problem that there are multiple ways to delete a Record?

Delete via Record post

The first method is to use a service action, that is to post JSON similar to that below to the Record endpoint. Not only does this attempt to delete the Record but also allows you to make updates to properties (and save) the Record prior to delete being called.

{
    "Uri": 9000000544,
    "DeleteRecord": {
        "DeleteRecordDeleteContents": false
    }
}

Delete via delete service

The other way to delete is simply to post to the delete service using a URL like this:

http://localhost/ServiceAPI/Record/rec_364/Delete

And the winner is…

Avoid the first option and use the second option. Why? The first option, in addition to deleting the Record, does all of the processing required when updating properties and fields. This is unnecessary when you are deleting and is likely to cause errors. The second option avoids all the unnecessary pipeline and simply deletes the Record making it much more robust.

Read More