Readout Navision Source Code

Hello,

i want to readout the Navision Object Source Code without explicit exporting the objects.

I have seen this feature in the “Impuls check tool” or the Developer Toolkit. How does this work? And how can i write the object back to Navision?

Thanks forki

This can be done in text mode, you export the file as text, and directly edit it. Of course you will wnat to be pretty good at editing in the C/SIDE editor before you start with text. i.e. you need to walk before you run. [;)]

What are you actually trying to do?

The Developer Toolkit nowadays can directly read from a running Navision Client. So you don’t need to export the objects.

Of course this requires a proper developer license, which I hope you have.

Hi Thomas,

are you sure? I know that reading objects fromt he DB through the tool kit has been possible for a few years, its the first time I heard that you can write them back that way. I thought it was still only via text?

Thomas didn’t say that the toolkit is writing back to Navision, or did I misunderstand?

Well, actually both is possible:

There are the options “Update - From Client” and “Update - To Client” available!

This is from the SDK’s help:

You have the option to either import objects from or export objects to a Navision client using the Update functions under the File, Update menu in the menu bar. The Update From Navision Client feature allows you to update your Navision Developer’s toolkit database with objects from the Navision application database, and the Update To Navision Client feature allows you to export one or more objects from Navision Developer’s Toolkit directly to a Navision Client.

Both the Update To and Update From Navision Client features are also available from the right-click menu in the Object Administrator.

To import or export one object at a time to a Navision Client, first select an object in the Object Administrator. Right-click on the object and select either Update From Navision Client or Update To Navision Client. The Select Navision Client window will appear listing the Navision clients and companies that are currently open on your desktop. Select the Navision client you wish to use and click OK. A window will then appear containing information about the selected object. Click Update, and the object will then be imported from or exported to the Navision client.

You can also import or export several objects at once. To do this, select File, Update, and select either From Navision Client or To Navision Client from the menu bar. The Select Navision Client window will appear in which you can select the Navision client (the appropriate client and company must be open). Click OK to confirm the selection. A window will then appear in which you can specify the following information to filter the list of objects to the ones you want to import or export:

Object Type Select the type of object from the list: Table, Form, Report, Dataport, or Codeunit
Object ID Enter the ID of an object to be imported or exported.
Date Enter the date that appears in the Object Properties of objects to be imported or exported.
Time Enter the time that appears in the Object Properties of the objects to be imported or exported.
Version List Enter the Version List that appears in the Object Properties of the objects to be imported or exported.
Modified Enter Yes to specify objects that have been modified or No to specify objects that have not been modified.
Click Update to confirm, and the appropriate objects will be imported from or exported to the Navision Client. These two methods of updating use a checksum to determine whether or not an object has been changed, and only the changed objects are imported or exported. Objects that do not exist in the database will be created.

You can also use the Export Worksheet to export objects to a Navision client.

You can read more about how the checksum is used and about the direct access to objects in an application database through a Navision client under Using a Navision Client Instance.

Jörg is right in that.

I’m currently reading my objects from the DB, then run a few reports on the objects to renumber all ID’s to fit our assigned range for the AddOn (instead of leaving them in the range of 1106200000 (or so))

This report is working quite well.

anyway, updating is a different story. It is working, but you don’t know if the updates go for ALL selected objects. I have seen objects missing even though that they have been present in the selection. It seems that there is some algorithm (which is not working properly) to determine if an object needs an update or not.

I had a chat with one of the guys developing the toolkit and found out that Microsoft opened a kind of “hole” in the fin.exe (finsql.exe) where the toolkit receives txt objects and where txt objects can be sent back. Navision then compiles these objects.

Unfortunately I did not get enough information to use that for my own purposes. But I hope this information helps.

Thanks Thomas,

i exactly mean this “hole” and know that the impuls academy is using this too.

I would like to tell you the backgroud of my question:

First of all: I have a valid Developer License :slight_smile:

I built a VSS-Integration-Tool for Navision. It is possible to checkout/in every object from your Navision-Development-Database and compare/merge versions and so on. The export, import and compilation works with some AutoHotkey-Scripts (automatic pressing Shift+F12, selecting the object, open the menue, export object …).

This works all quite fine for the Native Server but i have some problems with Sql-Server. The solution is to change the Hotkey-Scripts, but it might be better to use the same way like the developer toolkit.

Thanks Thomas for the clarification. Since the original question seemed to be specifically oriented towards being able to sned objects back to Navision, I assumed you knew something.

Me I am still a bit old fashioned, and have not really looked at the toolkit too much. I am really still coping with this new windows version of Navision that they have now, and really wish we still had our good solid OS/2 version around. [:$] Hey in the DOS version, we could setglobal filters and add record level security by user IN ONE LINE OF CODE !!! yes one line!!!

But seriously if the toolkit can now return objects to Navision, that opens a lot of new opportunities. I was at that silly confernce they had in 2003 where they basically announced the release of the Toolkit (without mentioning that really it was just imuls in disgize). And they gave the impression that it was still “a few years off”. Well a few years have gone by, so about now it should be just about there.

I personally don’t need anything outside of the C/SIDE developement environment, but I know that politically the IPOD, PDA techie cell phone C++/ C# developers need their security blanket that tells them that they have something special, so this moe if it works, is a very important one for global acceptance of C/SIDE.

You don’t need your code outside the C/SIDE “developement environment”?

  1. Look at your own thread: http://dynamicsusers.org/forums/post/668.aspx. - You want to merge code.
  2. You want to put your code under Source-Control. Don’t you?
  3. Under navision you see only some triggers at the same time. You can’t see all code at once (think of a big report). ==> You have to export your object and open it in the editor.

Forki,

Did you get the answer you were looking for?

T

Not realy.

I mean I need more information about the “hole” in the fin.exe and finsql.exe (how to use it). Because if I have this single piece I could improve my VSS-Automation-Tool a lot and free it from the Autohotkey-Scripts.

Sorry, I tried to get some more information about that thing, unfortunately neither Microsoft nor Impuls is giving out this information.

Ok thanks :wink:

I try to ask my question again: My first goal is to export objects without clicking the menu from
a running navision client (fin and finsql)****.

The Impuls Check Tool contains a DAWrapper.dll (DA means propably “Direct Access”) which has 3 functions:

  1. GetClients ==> Gets an array with the “names” of all active navision clients.
  2. SetClient ==> Sets the DAWrapper.dll to a specific client
  3. ReadFObject ==> Allows to export specific object by giving Type and ID.

One can easily use this dll to “extract” objects from a running Navision client like the Impuls tool does it. Don’t do this - I don’t think Impuls want’s it.

But as far as I know the Impuls Tool do not work with finsql.exe - so I am searching an other way…

I was in MN in 2003 when Microsfot first anounced the “new” deveopers tool kit, and were denying any knowledge of similaritites to impulse. Actually the presenter said he did not even know of imulse work bench.

At that time though, he made it very clear that MS had no intention of releasing DB access to objects in Navision.

Basically its all about a very skilled base of Navision Developers that they want to support and promote, not ostracize.

Bascially they love us and want to help us [<:o)]