How to learn Navision Development?

I am learning to develop tables,forms,reports,etc for Navision 2.01 through the “Bash your head on the keyboard” method [;)], which is ok for me since I am self taught in C/++, Java, PHP and many other languages… and I am slowly getting somewhere, esp. with the help of this forum. However, C/Side as you know has really (shockingly) poor manuals and I’m relying heavily on trial and error methods and resorting to this forum when all else fails. I was wondering what courses are available in Navision Development and what people recomend??.. also am I better to wait half a year or so until Microsoft has had a chance to “have it’s way” with Navision before investing in Navision education? Licencing is also an issue, as I can’t even write my own codeunits due to lack of an apropreate Licence file… I have heard that “developer licence files” exist, how do you get one of these? Regards, Jeremy

Hi Jeremy Inorder to get a Developer FLF file You shoud be connect to an NSC or u should finish you certification .

I’ve heared there are some licenses available on the web. There is some documentation available which should help you programming. Leave your e-mail address, I’ll send you something.

Hi,Eromein where we can get a license file, which allow us to make some code in navision. I am in puzzled as same as Jeremy.

Dunno, but it seems you can download it from the web. I think you should do a little searching. But understand that it’s illegal to use this license. That’s why only few people can help you with this.

Hello, Firstly, if you are a customer, your NSC should be able to offer to do additional development to Navision to enable you to bridge the gap between standard navision and your buisness requirements. If not, yuo could look at other NSCs. If you do decide to go down this route make sure that everything is ‘speced’, quoted and signed off so you get exactly the changes you need. If you feel you need to be responsible for your own development, you can buy the design rights to make changes. These are: Report & Dataport Designer: You may change any Navision report & dataport that belongs to a module you have bought (If you haven’t bought Inventory, you cannot change the Inventory reports), plus you get the object block 50000 to 50099 for creating new Reports and daatports. You may edit code behind reports and dataports. Form Designer: You may change any Navision form that belongs to a module you have bought (As above), plus you get the object block 50000 to 50099 for creating new forms. This is cosmetic design changes only and you may not edit code behind the forms. Table Designer: You may change any Navision table that belongs to a module you have bought (As above), plus you get the object block 50000 to 50099 for creating new tables. You may add new fields with the no. range of 50000 to 99999. You may also add new keys. Again, this is cosmetic changes only and you may not edit code behind the table. Application Builder: You may change any Navision codeunit that belongs to a module you have bought and does not alter security protected tables (G/L Entry table), plus you get the object block 50000 to 50099 for new codeunits. This permission also allows you to change code behind forms and tables. Solution Developer, you may change almost everything within the application (There are one or two minor exceptions, such as deleting standard Navision fields in tables), provided you have bought the granules. You may also buy additional blocks of objects if required. Do not use an illegal licence as you will be prosecuted for it. Never use a licence from an NSC or a developer’s licence as these expire regularly and you will find yourself locked out of the parts of the system you were using/had developed illegally. Getting these made available could leave you will a lot of explaining to do! If you wish to be a Navision consultant, you must join a NSC or Navision pernter and go on the training courses to get a development licence (See below). Contact your local MBS office, who should provide courses. Unfortunately, the documentation on coding in Navision is scarce and thin on the ground. End users always seem to believe that NSCs have all the answers in soem magic manual somewhere that we won’t share. We don’t. I really wish we did, it would make life so much easier. When we are trained we get some very basic examples in the same manner as the Application Builder’s guide and are told to learn by taking standard Navision apart. The best grounding for learining to code in Navision is to learn the general rules of software development in another package and then learn by example by looking at the base package. This is how most of us consultants have had to learn it![;)] One final thing; NSCs will not take responsibility for any changes you make yourself or provide support on your own changes. If you make a mess of it, they will charge you for them to sort it out.

sure, but you could always download a license to learn to program. Just leave it by learning. Don’t go developing on your own in your live database. Why you ask? 1.) Course you should leave that to people who know what they are doing. 2.) You really need the garantee on the developements. 3.) It’s always cheaper hiring solution developer. He’s faster and better. 4.) Hobbiests always develop the wrong solution. (this is true!)

Hi Emiel

quote:


Originally posted by eromein
… 1.) Course you should leave that to people who know what they are doing. 2.) You really need the garantee on the developements. 3.) It’s always cheaper hiring solution developer. He’s faster and better. 4.) Hobbiests always develop the wrong solution. (this is true!) …


Are you really sure about all four points? My comment (as an EndUser): Mhmm?! bye André

Hi, Emiel, I have to agree and disagree with you. On the subject of using an illegal licence to learn, you should not do this. If you were in court charged with car theft, I do not think any judge or jury would agree that it is OK to steal a car to learn to drive with the intention of buying one only after you have learned how to use it. It’s still not your licence to use, so it is still wrong. On the subject of solution developers vs. end user developers, it depends entirely on the quality of the developer, but I have never seen anything in four years of working as a consultant written by an end user that a good solution developer could not have bettered. The overwhelming reason given for in house development is ‘it’s cheaper’, but too often it often turns out to be a false economy. Remember, if your NSC makes a mess of things, they have to fix it for free. If you do, well…you had better get the coke & pizzas in, because it will probably be a late night[}:)]

quote:


Originally posted by EBloom
… Remember, if your NSC makes a mess of things, they have to fix it for free. If you do, well…you had better get the coke & pizzas in, because it will probably be a late night[}:)] …


[:D] I spend a lot of time and had a lot of cokes and pizzas while testing the codes from Navision and our NSC.[;)] bye André

quote:


On the subject of solution developers vs. end user developers, it depends entirely on the quality of the developer, but I have never seen anything in four years of working as a consultant written by an end user that a good solution developer could not have bettered


You haven’t seen MY SOLUTIONS [:D] But I agree: An “ordinary” End-User should limit his development to Form or Report-Design, otherwise he would cause more damage to the system … [B)] But there are a few developers with NSC-Brackground - means former NAVISION Consultants and well trained and experienced C/AL developers that are working now as quasi “Inhouse-NSC” using the “big licences” (AB & SD) … like we do [:I] So, IMO it ONLY depends on the developers qualification - and everyone has a chance to get this qualification! IMO Development-Training for a NAVISION-Newbee should allways be accompanied by NAVISION-professionals: NSC-Developers, special Training-Centers, etc. … It could be interessting, that there are also possibilities for End-Users to get “official Certifications” like “NAVISION Certified Solution Developer” (we discussed this a few month ago), so you - and your company! - can be sure “that you know what you are doing” to the system! Finally, Jeremy, I would strongly recommend that you get in contact with your NSC and discuss your belongings, they can - and will - help you! Forget about stealing licences on the Internet and learning C/AL on your own by “Try and Error”. Best regards, Jörg

Hi Joerg

quote:


Originally posted by stryk

[quote]
… So, IMO it ONLY depends on the developers qualification - and everyone has a chance to get this qualification! …


I totally agree with you! bye André

quote:


Originally posted by EBloom
On the subject of solution developers vs. end user developers, it depends entirely on the quality of the developer, but I have never seen anything in four years of working as a consultant written by an end user that a good solution developer could not have bettered.


I think you have just summoned the wrath of the “End-User Development” fraction [:D][:D][:D] First off, I have never seen anything written by anybody that could not have been improved by somebody with better qualification (wow, what a grammatical behemoth! [8D]). Second, I’m still finding and fixing bugs in Navision and NSC code as well as developing our own modules, integrations, reports etc. For some strange reason, our own code always works as specified [;)] As Joerg said, it depends on the qualification of the programmer. I couldn’t agree more. In addition, I also think you have to know your limits. I have a university degree in computer science, but no specific Navision training other than basic report design. There are some parts in the system I would never dare to touch. IMHO, most problems arise if people start messing around in code they don’t understand [}:)]

quote:


most problems arise if people start messing around in code they don’t understand


Ooooohhhh yeaaahhh !!! And this also goes to some … uhm … let’s call them “NSC-Professionals”! [}:)] Most horrible example I found here NF DE1.20 (I won’t tell the Name of the NSC): Codeunit 22 "Artikel Buch.-Bl.-Zeile Buchen" Function "EinstPreisAktualisieren" // begin ao.js (name of developer changed - for obvious reason) EXIT; // end ao.js (name of developer changed - for obvious reason) ... To make it clear: this code was not replaced by something else or for any specified reason, just because the developer “had some problems with it” … NO FURTHER COMMENT … BTW: The NSC is out of business since 1999 - I don’t wonder why [:D] Jörg

quote:


Originally posted by stryk
To make it clear: this code was not replaced by something else or for any specified reason, just because the developer “had some problems with it”


Gosh… They didn’t even put in something like “This function intentionally left blank” or the like? [:p]

Okay, back to the question… What is the best way to learn C/AL? The company I’m working for has the software, and license - so that’s not an issue. I’ve programmed IBM Midrange systems for 15 years - mostly RPG, BUT other languages/platforms/products. I’ve been trying to learn C/AL since around October, and it’s a challenge. I’m also struggling with a lack of documentation[:0]. Most of what I’ve learned has come from looking at the code, a few hours training with an NSC, and using the new 3.6 Debugger - which has some great functions[:)] (compared to the old one!), but again, lack of documentation[}:)] means I don’t use them to their fullest I’m sure! I just laugh when I press the help button on the debugger panel! hahaha! I DO KNOW how I’ll make my first million…I’m going to learn this stuff and write C/AL FOR DUMMIES [;)] !!! So, any of you experienced User-Developers wanna share your methods for education, or any tips…PLEASE?

quote:


I DO KNOW how I’ll make my first million…I’m going to learn this stuff and write C/AL FOR DUMMIES !!!


PLEASE, send me a copy when finished!!!Here some advices for learning C/AL:- First: Yo need to understand the logic of all - relevant?! processes, e.g. what’s going on, when you post an invoice, etc.; therefore the Debugger and the “Software Developer Kit” (former impuls Workbench) are helpfull. Also some good books are available (at least in Germany)

  • Read the “Application Designer’s Guide”, and the “C/SIDE Reference Guide” from the Standard-Help, and all other docu you can get (look at the product CD and ask your NSC)
  • Use the “Symbol Menu” and read the helptexts for syntax, examples, etc.
  • When developing a solution, try to find examples in the “Standard”, copy them and modify them
  • Test your solutions with “Debugger” and “Code Coverage”
  • When problems occur, discuss them with other developers - from your NSC and/or this Usergroup
  • At Last: Play with the system! When ever you have spare-time try something new, maybe something you’ve read in this forum, no matter if you currently need this solution - maybe you will need it sooner than you can think of!
    Over all that above is one “Golden Rule”: NEVER DO ANY DEVELOPMENT ON THE PRODUCTIVE-SYSTEM! Use a Development/Test-System and implement modifications to the PS when you are SURE it works! Hope this helps a little. Best regards, Jörg

quote:


Originally posted by eromein
sure, but you could always download a license to learn to program. Just leave it by learning. Don’t go developing on your own in your live database. Why you ask? 1.) Course you should leave that to people who know what they are doing. 2.) You really need the garantee on the developements. 3.) It’s always cheaper hiring solution developer. He’s faster and better. 4.) Hobbiests always develop the wrong solution. (this is true!)


Well… i cannot agree with your 4 reasons: 1) Agree… unless you also know what you’re doing. 2) Let’s say that’s ok. 3) It’s not cheaper hiring a solution developer. It depends of the case. When i was in the “customer” side i made my own developments (we already bought application builder license) and it was cheaper for my company as i was an employee (payed by payroll), so no matter if my work lasted a week or two my salary was the same. About the speed that’s not always true: sometimes you’re just needing a small change on the application (let’s say when you validate a field on a table showing an error if a certain condition, like being higher than 0, it’s not met, or doing a testfield before calling the posting routines). When you’re having to contact a solution developer for that purpose it usually takes you more time than if you BOUGHT the adecuate license and do the change yourself, as they’re usually also busy on other issues and not always have the time for attending you right in the moment, but may be two hours later. 4) That’s not true either… .it depends how good the “hobbiest” is and how clear he has what he’s going to do and what the standard application is doing also. I should not recommend using “downloaded” licenses… but the reasons are mainly different ones: 1) It’s illegal… no matter if you think they’ll never catch you… the NSC can always discover your use of an illegal license by just having a look on your database and discovering new objects you’re not having permission for. Also, when working with the real company, you’ll probably need more sessions or companies on your license than the ones includes on the “downloaded” license, so for using the objects you’re creating you’ll probably need in a day ordering more tables/forms/reports or codeunits to your NSC… and if your license is not allowing you to create such objects… it’s easy to know something it’s strange… 2) If you’re really needing a development, get a quote from your NSC and analize what your priorities on that development are and the prices. If the price it’s too high for that development and you’re having time enought for training a person on your own company, may be it’s a good option for your company paying the amount needed for buying the application builder license and training a couple persons for making such development. If you’re not having that time for the trainment or the price of such trainment and license costs don’t compensate you… use your NSC as developers. Regards,

quote:


Originally posted by Andre DDB

quote:


Originally posted by EBloom
… Remember, if your NSC makes a mess of things, they have to fix it for free. If you do, well…you had better get the coke & pizzas in, because it will probably be a late night[}:)] …


[:D] I spend a lot of time and had a lot of cokes and pizzas while testing the codes from Navision and our NSC.[;)]


So did i when being an end-user… and sometimes sending the fixes to the NSC because their code was wrong… but as solution developer now i’m having that i’m having sometimes to get coke and pizza anyways for fixing errors in the standard that will not be fixed for the version the customer is having but for the next version … sending them to Navision… so… what’s the difference??? :slight_smile:

quote:


Originally posted by stryk

quote:


most problems arise if people start messing around in code they don’t understand


Ooooohhhh yeaaahhh !!! And this also goes to some … uhm … let’s call them “NSC-Professionals”! [}:)] Most horrible example I found here NF DE1.20 (I won’t tell the Name of the NSC): Codeunit 22 "Artikel Buch.-Bl.-Zeile Buchen" Function "EinstPreisAktualisieren" // begin ao.js (name of developer changed - for obvious reason) EXIT; // end ao.js (name of developer changed - for obvious reason) ... To make it clear: this code was not replaced by something else or for any specified reason, just because the developer “had some problems with it” … NO FURTHER COMMENT … BTW: The NSC is out of business since 1999 - I don’t wonder why [:D]


Well… when i was en-user we get a lot of troubles with our former NSC (we went to court with them because the didn’t comply with the contract at the end). I don’t mind telling their name because they’re not anymore on the Navision’s family since about two/three years ago… but on the code you could find a lot of things that having values that could be zero (like amount) and getting errors because “somebody” (yup… Anabel… it was you…) was having things like begin value1 := quantity / amount; end; without just checking taking care of the zero values and similar things that when i was starting developing i already detect on their code… I’ve to agree… it depends only on how good the end-user is and how good the solution developer it’s also… and about not seing any good development from end-users that could not been done better by a solution developer… you should have seen my developments when i was an end user also… the solution developers of our NSC were impressed… [:)] Regards,