C/Side Integration Utilities v1.4

AdministratorAdministrator Member, Moderator, Administrator Posts: 2,495
edited 2013-04-23 in Download section
C/Side Integration Utilities
A .Net library containing classes that allow for communication with a running instance of Dynamics Nav. This can be used to upload/download text objects, compile objects, query table data and many other things. You will still need a developer license to use most of the functionality this library provides. These utilities in no way bypass the usual Dynamics Nav licensing. This project is open source, licensed under the Apache 2 license. The latest source can always be freely downloaded from the Edgerunner website.

http://www.mibuso.com/dlinfo.asp?FileID=1275

Discuss this download here.

Comments

  • DakkonDakkon Member Posts: 192
    I will be adding locking to this project for thread safety soon, as well as trying to work out the one bug I know of. I will also try to put together a demo project soon to give folks an idea of what they can do. I am more than happy to take contributions to the source code and I hope the community will help me improve it over time.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • MatthiasKönigMatthiasKönig Member Posts: 14
    Hi,

    I want to read the help file but there is no content inside, or?
    BTW nice idea! Ill hope that I had enogh time in the future to test this dll :)
  • DakkonDakkon Member Posts: 192
    That's odd, I can assure you the chm file has content. I'm wondering if it is related to your version of the html help viewer maybe? I would recommend trying to view it on a different machine and/or OS and see if you get better results. I will be building a help integration package for visual studio with my distributed binaries soon so that may help. In the meantime if you would like to send me a private message with an email I can send you the help in a web help format that you should be able to access without any issues. In fact I think I will package that up as an alternate download on my website for those interested. I will try to get my web help version posted up on my website soon but there are various issues with doing so at the moment :)
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • David_SingletonDavid_Singleton Member Posts: 5,479
    Is this legal?
    David Singleton
  • DakkonDakkon Member Posts: 192
    Yes, this library simply builds on the work that Soren Nielsen, Kamil Sacek and many other fine folks have done in working out the api's in one of the Navision dll's. This library simply creates a .Net wrapper around these api's to make it easy for someone familiar with .Net to use. The dll is communicating with a running instance of Navision and thus is still subject to the normal limitations of that. In other words, if you wish to upload an object and compile it, you still must have a developer license loaded in your client. While I'm sure it's not an approach the Navision folks would officially encourage, it certainly isn't illegal.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • David_SingletonDavid_Singleton Member Posts: 5,479
    OK thanks, just wanted to be sure it didn't break the partner Agreement that says you are not allowed to reverse engineer the Nav code.
    David Singleton
  • DakkonDakkon Member Posts: 192
    I understand, I was unaware (not being a partner myself) that there was such a clause, though it makes total sense. I can't imagine this would violate such an agreement since it simply makes use of their own dll. I believe the going theory is that the developer toolkit makes use of this same dll to do some of its work. I really can't claim too much credit in building this since without the ground work of other individuals I would still be unaware that such an approach was possible. As Isaac Newton once said "If I have seen a little further it is by standing on the shoulders of Giants.". :D
    My hope is that this project will become more community driven eventually. Up to this point various people have had their own implementations of these interfaces and I thought it would be good to create a formalized project to encapsulate all of them. I also wanted to obscure most of the dirty details that make it all work so that as long as someone understood .Net they could easily make use of it.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • DakkonDakkon Member Posts: 192
    In reference to your problem with the help file Matthias, a friend of mine mentioned that in some versions of windows you have to go into the properties dialog for a help file and unblock it. I will still post the web help files for download from my site as well.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • DakkonDakkon Member Posts: 192
    I have officially released version 1.1 Alpha of the project on my website. It includes various bug fixes as well as new features/functionality. I will update the Mibuso download appropriately in the near future.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • DakkonDakkon Member Posts: 192
    One of the users of the utilities brought something to my attention that I felt everyone should be made aware of. It seems there is a rather large bug in the Navision DLL my utilities wrap. The export method, that allows exportation of an object in text format, incorrectly writes the caption of the object in place of the name in the exported file. I'm sure everyone can see how bad this is if you are then editing that file and uploading it back. I will be making a change to my utilities to correct this issue, but anyone using the Navision DLL directly should be aware of this problem.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • reijermolenaarreijermolenaar Member Posts: 256
    Hi Thaddeus,

    We had the same problem with our automation.
    Maybe you already know the solution, else you can read about it here:
    http://www.mibuso.com/forum/viewtopic.php?f=7&t=28707

    Instead of this:
    ReadObject(1, 3, destination);
    

    You will have to do the following:
    ReadObjects("WHERE(Type=CONST(1),ID=CONST(3))", destination);
    
    Reijer Molenaar
    Object Manager
  • DakkonDakkon Member Posts: 192
    Thank you so much! I was not aware that this had already been encountered or that there was a work around. I was going to do something a bit uglier to fix the issue so this is a most welcome solution :)
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • AdministratorAdministrator Member, Moderator, Administrator Posts: 2,495
    C/Side Integration Utilities v1.3
    A .Net library containing classes that allow for communication with a running instance of Dynamics Nav. This can be used to upload/download text objects, compile objects, query table data and many other things. You will still need a developer license to use most of the functionality this library provides. These utilities in no way bypass the usual Dynamics Nav licensing. This project is open source, licensed under the Apache 2 license. The latest source can always be freely downloaded from the Edgerunner website.

    Version 1.3 Alpha
    Added ClientLink class

    http://www.mibuso.com/dlinfo.asp?FileID=1275

    Discuss this download here.
  • DakkonDakkon Member Posts: 192
    So I finally got around to posting an update for this project. I patched some bugs and made various improvements. Notably, if you don't wish to hook events you can specify that as a constructor flag for the client class, instead of having to hack your own build. Also, I am now hosting this project on BitBucket and will be accepting pull requests from the community. You can always download the latest builds and source from there. There are, of course, links to my bitbucket repository from the project website. I will be getting a proper wiki setup for the project there, along with a number of example projects so people can get a better idea of what is possible with this library. I look forward to everyone's feedback and I'm sorry for the gigantic delay between posted updates.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • DakkonDakkon Member Posts: 192
    I noticed recently that I was a bit sloppy with my ReadMe (sorry about that) in the recent release. I have fixed this in my source and will post updated binaries here, once I finish changes that necessitate a 1.4 version release.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
  • AdministratorAdministrator Member, Moderator, Administrator Posts: 2,495
    C/Side Integration Utilities v1.4
    A .Net library containing classes that allow for communication with a running instance of Dynamics Nav. This can be used to upload/download text objects, compile objects, query table data and many other things. You will still need a developer license to use most of the functionality this library provides. These utilities in no way bypass the usual Dynamics Nav licensing. This project is open source, licensed under the Apache 2 license. The latest source can always be freely downloaded from the Edgerunner website.

    Version 1.4 Alpha
    Renamed Client.FetchSpecificObjects methods to GetObjects and GetObject
    Refactored the code for GetObject and GetObjects
    Added missing documentation
    Renamed Client.FetchTable to GetTable
    Renamed old Client.GetTable method to GetTableInternal to avoid conflict
    Made all ClientLink.Parse methods static
    Made all ClientLink private parsing helper methods static
    Renamed Client.GetSpecificClient methods to GetClient
    Renamed Client.GetSpecificDesigner to GetDesigner

    Version 1.3 Alpha
    Added ClientLink class

    http://www.mibuso.com/dlinfo.asp?FileID=1275

    Discuss this download here.
  • DakkonDakkon Member Posts: 192
    Please be aware that I made some breaking changes in version 1.4. It is not a big deal, but if you use the new libraries you will just need to change one or two method names in your code. Also the new GetObject method takes an enum instead of an int for the object type. This means if you are using the enum in your code, you will no longer have to cast to an int in the method call. I felt making the argument an enum made it more intuitive to use (and after all, isn't that really the purpose of the wrapper library in the first place). I realize that until I get a chance to update the enum declaration for query objects, the library won't support them properly, but I hope to fix this in the very near future. Regardless I felt the ease of use was worth the change. I look forward to feedback from folks. Please remember I will accept pull requests for the source code so if you have any bug fixes or improvements, by all means, send them to me. I will have a sample project in the near future that thoroughly demonstrates the library.
    Thad Ryker
    I traded my sanity for a railgun :mrgreen:
Sign In or Register to comment.