I need to download files pointed to by iManage NRL's. The only way I can see is to take apart the contents of the NRL to get the details and then ask iManage to copy the file to the local computer. But, this concerns me if iManage change the format of the NRL, so I was wondering is there a way of getting say the profile or copying the document to the local machine by passing the NRL or its contents to some function in iManage and not having to take it apart with my code?
There isn't a method within the 8.5 API that takes an NRL file and returns you a document. IManage are unlikely to change the format of the NRL file as this would break backwards compatibility with all existing NRL files in use so I believe it's safe to just parse the NRL file to extract the information. You can use a regular expression such as the following (with the Text.RegularExpressions.RegexOptions.Multiline + Text.RegularExpressions.RegexOptions.IgnoreCase options) to extract the source server, database document number and version and utilise that in your app for document extraction.
"{2}!nrtdms:0:!session:{2}:!database:{3}:!document:{0},{1}:"
This SO answer has an example how to get a physical file from a document number.