Hotfixes

Hello! I would like to enquire about how people tend to use the hotfix releases from Navision. Do you tend to download and install each fix religiously or just import and install those that are required for a specific problem? If anyone could state their preferred method of action and give a quick justification why, it would help clear up a bit of a debate i am having. Thanks in advance for any help anyone can offer. Regards John

It is best to get into aroutine of installing them all. The reason, is that soemtimes if you miss one, you find that, say, a field was added quite inocuaosly to a table, then in a latter fix, that field is used in a trigger somewhere, so now you need to go back and apply that fix anyway. Best is to put a mthhodology in place, and cost it into your support fees for the client. If I were a client, I would rather have say 2-3% added to my anuall support, and know that all the Hot fixes would be automatically applied, rather than having to pay each time. Also it teaches your developers to allow for the hot fixes as they develop, and possibly develop better programming practices, like following Navision standards.

Assuming you are talking about what are usually referred to as Improvements (application changes as an FOB file), it is always best practice to have the client up to the latest version. You will always need to be on the latest Improvement if you are reporting a problem to Microsoft (or they will try to tell you to add all the improvements even if you know damn well that they have nothing to do with the issue). Unless you can sell the client a support arrangement, it is sometimes a tough sell to the client to pay for implementing product fixes (to them, they should be free…they are if there is no custom :wink: ). For this reason, Improvements which are not applicable to the client are sometimes not put in right away. Just remember that you need to load all prior improvements before loading one that the client wants. For example if the client doesn’t need Improvements 3,4, and 5, you can’t go from 2 to 6 without still loading 3,4, and 5 for the reason David says above. So sooner or later they will have to pay for all the improvements to be loaded. As far as Hotfixes (in Microsoft terms), these are usually changes to the application (FIN.EXE, etc.). I normally only load those at a client if they are having the issues which are resolved by the Hotfix. These normally take longer to implement as every client must be visited.

Note. 3.6 Worldwide has 18 hotfixes available

Silly question, but could someone please indicate me where to download these hotfixes, our new MBS-“NTR” is rather sales oriented and could not help out with this info. Thanks a lot… Nils

Problem is the term “HotFix”, now seems to include FOBs, i.e. Service Packs, these are country specific, so you may not be able to just get them from anotehr country.

Thanks very much for your replies. It has confirmed what we suspected and thankfully cleared up a small office debate we were having.[:)] If anyone else has an opinion on this, we would be more than happy to hear it! Nils - Just for your information, MBS (UK) inform us of the release of the hotfixes and we download them from our the Microsoft partner site. Hope this helps.

I thought that these hotfixes were country-specific, so no way to get any for our version… [xx(] Actually I wanted to add some further remark to the topic… In general I agree with David and Chris that you should apply hotfixes, encourage your client to buy the upgrade licence and either include a special fee for the inclusion of the hotfixes in this upgrade fee or regard your margin of the upgrade fee as payment for this service. This should also encourage you to follow the development guidelines and to document extensively your modifications… But… and there comes the problem… What about a highly modified customer version (posting routines, etc.) that is working fine and you actually won’t have any need nor benefit to include the hotfix, besides work and the risk to “damage” the working version? To be honest, I would be higly reluctant to do so, something like “never change a working solution”. Saludos Nils

Thanks for your input Nils. As it happens i have been discussing this today. The best way we can see is to be very careful if implementing them in a highly customised database (as Nils pointed out). We thought the best route would be to use the import worksheet to allow the direct import of any standard objects from the hotfix fobs but to exclude those with modifications from being brought in. These customised objects could then be updated manually (if needed) using a the compare function against the new standard objects in MBSDevelopers toolkit and adding the extra/changed code where needed. I would be interested to know what anyone thinks of this method or if anyone has any quicker/easier suggestions.

quote:


Originally posted by John Small
… to use the import worksheet to allow the direct import of any standard objects from the hotfix fobs but to exclude those with modifications from being brought in…


John, you really should not do this, and in many cases can’t. When you import objects, you MUST import them all, otherwise you will get bit in (where it hurts). You may import objects, and all seems fine, then one day a user opens a form they don’t normally use (or you thought they did not use), and get a “Reference to the member ImpossibleToFindVariable could not be solved.” You have to do a complete import, that means import what you can automatically, and manually apply the rest. Often its easier to reapply your changes to the new objects.

In my point of view it depends on the object and the level of modification if you should import the hotfix completly and apply your prior modifications or rather include manually the modifications of the hotfix on your modified objects. It should be clear that in the end you must have the entire hotfix in the database, exactly to avoid the error that David mentions. With the integration of modified objects I usually check out beforehand what changes have been realized in the new object, using one of those free “text compare” tools (e.g. WinMerge, Araxis Merge, etc) and figure out if it would be easier to import the hotfix object or manually realize the modifications. This manual procedure will also make sure, that you are aware of all tiny modifications that might influence your customizations and that need to be tested before you load the new objects in the customer db. I have been working the way John proposes, might be a bit time intensive but with a rather highly modified solution, it seems a safe approach to me. Saludos Nils

Well… usually when i’m dealing with a customized database the way i use to do is using the following rule: IF (Object.Modified = FALSE) THEN Object.ReplaceObject(NewFOBObject) ELSE Object.ManuallyModifyObject(TXTchangesFile); Where TXTChangesFile is the .txt file that usually comes with the .fob describing all the changes done to the objects. The problem comes when they release those “small” hotfixes like Service Pack A for 3.60… that are requiring not only modifying the objects, but an upgrade for adding those objects on a live database. [:(]

Of course, Alfonso. But, we apply this rule: text comparea all modified and parched objects, because there are possible errors Tipo Id. Nombre Modificado Lista versiones Fecha Hora Tamaño BLOB Compilado 1 98 General Ledger Setup Sí NAVW13.60.00.15,NAVES3.10.01,HF_ES_ATT_360_4_03_0039 24/01/03 16:05:30 40360 Sí Best regards from bcn.

One of my clients once told me “Best is the enemy of good!” Basically you don’t need to find the best solution, but you need a good economical soution that works. As an NSC, you need to develop your methodology, and follow it. I think if you program in such a complex manner that you can not latter apply service packs, then you really need to look back at your programming methodology. Come up with a mthod that allows you to give your clients a solution that is not too costly, but lets them know that they are secure in having the latest fixes available to them.

Once again, thanks for the suggestions. The information has been a great help in clearing up any remaining doubts in the office.[:D] Thanks again. John