Dynamics NAV and the ROT Table

Monday, December 10, 2007 by Administrator

With the introduction of hyperlinks for the Dynamics NAV client, the approach taken was the Running Object Table (ROT Table). From the http://msdn2.microsoft.com/en-us/library/ms695276.aspx article: "The most common type of moniker provider is a compound-document link source. This includes server applications that support linking to their documents (or portions of a document) and container applications that support linking to embeddings within their documents."

Im not a wizard in to this, and it has been a lot of googling for the information, so if you have additional information on this issue, any hints and information would be very helpful.

Where do we find information about the interfaces? In the registry, take a look at this key:

ROTregistry

Here are the some class names from the registry:

  1. INSHyperlink
  2. INSObjectDesigner
  3. INSApplication
  4. INSForm
  5. _INSApplicationEvents
  6. INSHook
  7. INSTable
  8. INSRec
  9. INSMenuButton
  10. _INSMenuButtonEvents
  11. INSAppBase
  12. INSCallbackEnum

For now i have only been able to find Interfaces to INSObjectDesigner (as they are used in Celenia Version Control), which of course is very interesting. It exposes methods for these functions:

ObjectDesignerInterface

But where is the "documenation" on these interfaces??????

The format for the Read and Write functions are text files, like the ones that can be imported/exported through the object designer.

Currently i have created small installers for code dropping into NAV objects, that uses the ReadObject, then parses the file, and inserts the code, and finally imports back into NAV with WriteObjects.

Here is some screenshots from a simple application reading objects into a texteditor, allows editing, and then writing back to NAV:

Step 1: Read object into editor

edit0

Step 2: Find documentation trigger

edit1

Step 3: Add text

edit2

Step 4: Write back to NAV

edit3

Step 5: Code changed in NAV

edit4

So currently im interested in finding information about the other interfaces. I will continue this series of post here when i get some decent frameworks done in .NET. Perhaps making a Dynamics NAV Installer project in the open source community would be interesting, what do you think?

Other resources:

http://www.codeproject.com/KB/cs/automatingvisualstudio.aspx
http://www.mibuso.com/dlinfo.asp?FileID=776

Not to forget, kudo's go out to Claus Hornbæk, Alexey Pavlov and Lutz Roeder.

12 comment(s) for “Dynamics NAV and the ROT Table”

  1. Erik Ernst Says:
    Hey Søren,
    Great work!

    And to all the commenters, then Søren has shared his source code in one of his other blog posts (I think it's 2-3 posts newer than this one).
  2. Gerardo Says:
    Hi Søren Nielsen's

    This post it's very interesting...

    I saw a lot of people asking for the source code. Can you send it to me, if you dont mind?

    We are trying to develop an auto-update tool for our customer.

    Thank's in advance.
  3. Taddeo Says:
    This is fantastic!
    Could you please send me a copy of your .NET code to understand how it works?
    PLEASEEE
    THANKS!!!
  4. Umanath Says:
    I need more informations for C/AL,
    that code units are same or not for all comanys in navision5.0?
  5. Pan Says:
    Source Code ????
  6. Pan Says:
    Nice work can you please share the c# source code for you little app.
    Something to use as a guideline.

    Thank you
  7. Pan Says:
    Nice work can you please share the c# source code for you little app.
    Something to use as a guideline.

    Thank you
  8. Ryan Says:
    Dude ! You rock !

    I have looked briefly at this... But am struggling...

    Any chance of an example of linking the dll into the c# ?
  9. Tim Says:
    Interesting concept, I have been looking for something like this, would it be possible to get a copy of your source code for testing.

    Thanks,
    Tim
  10. Attie Retief Says:
    Just what I've been looking for - I would LOVE your sample code...any chance of sending it?

    Thanks
    Attie
  11. Alex Says:
    I found it very interesting.

    I think that there is no public documentation for the interfacs because Microsoft designedly wipe out all typelib information from dll. But you can make a reverse engeniiring of NSObjectXProxy.dll. It should contains list of methods and arguments for the interfaces.

    Why don't share the results of your research with the community?
  12. Tommy Olesen Says:
    Thats sooo cool. Can you send me a copy of the .NET code for your little application?

    Thanks!
    Tommy

Leave comment:


(not shown)


(optional - remember http://)