Welcome to the Dynamics blog-o-sphere! #8
2014-9-18 22:32

Now that I started introducing I might just as well continue with this one. Actually my mind got running on a blog introduction because of the one I am on to now: Erik Hougaard's blog. And it wasn't his blog, but the fact that I met Erik for the very first time at Directions 2014 (US) and, shame on me, learned about him for the very first time. Due to the simple fact that Erik has been assigned NAV MVP, finally; after ages of having been working with NAV (since 1990, who of us can say the same) Erik has come out of the shade and started to move into the community by, among others, blogging.

Welcome to the Dynamics blog-o-sphere, Erik, and keep the posts flowing.

Welcome to the Dynamics blog-o-sphere! #7
2014-9-18 22:16

Today I was surprised to stumble over a new blog. You know there are so many blogs and forums to get your information from. And when googlebingen you will obviously hit one of those that have been around some while. But not today. I have totally forgotten to register what I was searching for, but I that I clearly stumbled over this blog that was started only recently. Although he seems to have been around the business for quite some while, NAV Viking aka Johannes Gudmundsson apparently has decided to share his findings and thoughts with which we all can only but be feel blessed about. What I have been reading seems worthwhile to me, as even though for some these may seem open doors, there is clearly a personal touch in that I always find worthwhile.

So definitely welcome to the Dynamics blog-o-sphere, Johannes.

NAV 2015 Glance 3: ShowMandatory Property
2014-9-16 14:43

You might have noticed that now, with GA (General Availability) communicated by Microsoft, as mushrooms blog posts and tweets are popping up addressing the new things NAV 2015 will bring to us. Look for example @MVPKine, Mohana, @masaccio1401 and waldo. And myself. Cool

As MVP's we have been involved in the road that led to NAV 2015 so we have been seeing (some of these) things in an earlier stage, gotten enthusiastic about them - or maybe not -, but we're tighten by NDA and had to hold back from shouting out loud. Clearly the NDA has been lifted and off we went. To be the first to shout, to be able to inform you about what is there (or will be there very soon). I guess there is no plan behind about whom is going to shout what. So each of us will probably find himself writing something - having been gloating on it already for some time - seeing the other getting away with it. Wink

This happened to me with this specific topic. Clearly Mohana outpaced me on the ShowMandatory property. Sh..t.. I mean, congrats, Mohana, But fortunately he left a crumb for me to pick up. Yep, even though I am getting close to 52 I still value crumbs. Big Smile Surely if the are essential, like IMHO in the case of the ShowMandatory property.

Complementary to ShowMandatory setting the NotBlank property to Yes on a primary key (PK) field will mark the field with a red asterisk on the UI.

Now setting the ShowMandatory to FALSE in the PK field control on the page will not override the behavior of the NotBlank property that was set to TRUE.

BTW ...

... the value of show ShowMandatory can be set to true, false, or using an expression.

NAV 2015 Glance 2: UI Elements Removal
2014-9-16 2:12

Way back in 2004 at Microsoft we had a project running called Elba. The goal of it was to release a wrap pack version of NAV (or Microsoft Business Solutions-Navision as it was called in those days) and was popularly known as Navision Light. Now with NAV 2015 Easy to Use pillar this project came to my mind again. Back then one of the attempts to get Navision lighter was to 'wipe out' needless UI elements with respect to the Elba user license, which obviously would have been much more restricted than the average user license used to be in those days. The thought up technical solution was to process all forms based on this Elba user license in such a way that all these needless UI controls would be removed from the object when building the application. Hence the eventual form objects would often be much lighter than their original version. In a way it resembles the UI Elements Removal feature that NAV 2015 entails even though they are technically totally different.

But before elaborating further, I first should confess that I somewhat have been sleeping since NAV 2013 R2 was released as part of this feature was already implemented in it. Cool

Nevertheless, now in NAV 2015, this has been extended. So what is this UI Elements Removal feature about? In a nutshell you could say that any UI element that accesses an object that your license or your role permissions do not grant you right to, will not be shown to you. This might be a field, an action or a page part. When rendering the UI this element will not appear on screen. Note that there are various facets to this 'story':

  • Those UI elements that have an implicit relation to an object outside your license will be removed on the fly; for example fields that reference an outside object by means of a TableRelation or a FlowField CalcFormula (already available on NAV 2013 R2)
  • But as developers we can now also set up a relation to such an outside object by means of the new AccessByPermission property, which you would typically use for UI elements that do not have an implicit relation or to overall such an implicit relation (like in the case of the Shipping Agent Code on TAB18 as shown in the following screen shot); note that the UI element will be removed if the user does not have permissions to outside object as specified in the Access By Permission window


  • In conjunction with the above the eventual result is determined by the mode the application server is running. On NAV 2013 R2 it was the RemoveUnlicensedUIElements key of the server that enabled you to turn it on or off. With NAV 2015 this has been replaced by a new key:

    <add key="UIElementRemovalOption" value="LicenseFileAndUserPermissions" />


    I guess the three options are self explanatory, but let me be somewhat redundant. When running the server ...
    • in the standard mode (i.e. with option LicenseFileAndUserPermissions) a UI element is removed if the related object is not included in the license file and the user does not have permissions to the object as defined in the AccessByPermission property
    • with option LicenseFile a UI element is removed if the related object is not included in the license file
    • with option None all UI elements are displayed


  • When configuring pages, make sure that the UI Elements Removal field is set to its default (i.e. LicenseFileAndUserPermissions) so that you only see the relevant UI elements are shown in the Customize window
  • In the same manner make sure, when developing, that the UI Elements Removal field is set None so that all UI elements are visible when you review the UI

You know ...

... even thought at first Elba looked promising it was 'killed' way before it even got to the market (by Microsoft's current CEO Satya Nadella). Some years later Entrepreneur suffered more or less the same fate.

[added the day after]

Now rereading the full post I was somewhat wonder-struck by the last paragraph as I now read is as a kind of premonition. NAV 2015 might go the same why. Ouch, no. Surely not. I think NAV is better shaped than ever. I guess some kind of old bewilderment just popped up. Zip it!

NAV 2015 Glance 1: Non-Default Property Values Bolded
2014-9-15 8:32

For me as a developer this is one of these simple adjustments to the IDE that makes my day. To help me to grasp (more or less) instantly the pattern that I am looking at. In this case to instantly see which object properties carry default values and which non-default values. To support me in seeing what properties will be exported (to the .txt object file) and which not. I guess we, developers, more or less have been thinking about such a feature many times, consciously or unconsciously. And now it's there! Have a look:

by Luc van Vugt | with no comments
Filed under: , ,
Directions US 2014: NAV 2015 General Availability
2014-9-15 7:27

Today in the keynote at Directions 2014 in San Diego, Microsoft officially announced the general availability (GA) date of NAV 2015. For new customers on 1st of October, and for existing customers on 6th of October. A rough outline of this new release has been communicated to the market at WPC of which my fellow NAV MVP has written a resume on his blog in July.

But today not only GA was announced, we were also shown a demo of the various details during this keynote. In addition the various topics have been (or will be in the next 2 days) presented in depth during 35 sessions and workshops by 40 MSFTE.

Based on the three pillars of NAV 2015 (being Quick to Implement, Easy to Use and Power to Support) Marko Perisic, director of Program Management (MS) and at team of 4 program managers, walked us through these three pillars showing the new and fast way of upgrading both code and data (Quick to Implement), the new tablet client, User Experience enhancements being expressive tiles (cues) and simplified pages, document reporting using Word and more Office 365 integration (Easy to Use) and finally a redesigned and extended Cash Management (bank data conversion service, payment export and reconciliation) and integration with Microsoft Social Listening (Power to Support).

And various figures flew around: a 30% faster Web Client with 4 x less bandwidth; 75 % less merge issue with te data upgrading (merge) utilities; 35 % more customers adds in FY14; passing the 1000.000 customers in FY14 MS has set the goal of another 100.000 in the next 5 years; the tablet client will be available for the three major tablet OSs and free for download from these store: App Store, Google Play and Windows Store.

More details on NAV 2015 will follow in follow up post, on the next Dutch Dynamics Community NAV event and on Directions EMEA 2014.

Thoughts on Training #1: Getting Started
2014-6-9 18:32

I tend to think I am not that a sentimental goof, but probably this alone proves I am. Nevertheless I vision myself looking forward and spotting the opportunities that lie out there, rather than being a sourpuss. Or say, being the Waldorf and Statler of the Dynamics world (or at least one part of this illustrious couple). Even though, every now and then, I label myself more or less like that.

Having been into C/SIDE training intensively lately, I cannot help but getting somewhat retrospective on this subject. At the same time I dare think that it might be somewhat entertaining to share this with you. If it all proves not to be of any value to you, just let me warble in my chair and you just pass by.

Way back in 1999 I made a major shift in my working live, moving from being a high school teacher to being a fulltime C/SIDE trainer for the Dutch Navision Software subsidiary. The move wasn't as strange as it might sound at first. Having graduated from the Delft University of Technology as an engineer in applied physics, my first engagement was as a scientific software developer at a small company that developed medical instruments based on small computer systems. FORTRAN and C had been my software hinterland for quite some years already. Hence, eventually getting into C/AL, wasn't that big a move at all and surely it was fun, and after all these years still is. Albeit that things have changed in many aspects.

Just take the simple matter of getting the systems up and running for a course. In those days the students would gather at our training location mostly without a machine. It might have been that some did bring a laptop, but that clearly wasn't custom yet. Whatever system they would be using, the only requisite it did need to comply with was that it was running Windows; nothing more was needed.

After a small introduction I would hand out a Navision Financials product CD and let each of the students run the installation wizard by applying Next > Next > … > Next > Finish. Within less than 5 minutes everyone was up-and-running with a clean demo installation of Navision Financials.

No SQL Server, no .NET framework, report viewer or Visual Studio. How many NAV pros in that time had even heard of Visual Studio?

No hassle with specific builds to be sure everything compiled right. Always possible to import .fob files from older versions (who did ever decide that I cannot import a NAV 2013 .fob into NAV 2013 R2?).

Only 5 minutes that separated us from diving into the subject, not being distracted by technology.

Honesty says it still isn't taking very long to get your system "training ready" and it definitely takes a zillion time less than getting "training ready" for AX. However, it isn't as easy as it used to be and there are dozen more reasons that can make your installation do something you do not want to focus on during a training.

by Luc van Vugt | 2 comment(s)
Filed under: ,
How-to: Jump to a Function from C/AL Globals
2014-6-9 0:42

Pentecost weekend. Finally I have moved somewhat out of the razzle-dazzle of months passed. Glad I succeeded to have planned Friday off, going to the hockey World Cup in The Hague. Sit, simmer (in the sun) and shout. And I don't care about all those Canadians thinking this is not hockey. Probably they never achieved something in this sport. Cool

So here is me picking up blogging again. Haven't been doing that a lot lately and can't say my list of subjects diminished. You know it's not only time that helps this list to grow. Performing C/SIDE courses, which I have been doing a lot lately, typically contributes to it also. Sitting in one room with NAV pros, independent of their experience level, always brings useful thing "on the table". Just like this undocumented feature: jump to a function. Never had been aware of it myself for the 15 years working with NAV now. Or has it been added only recently? Still never to old to learn. Wink

OK, I find myself inside a C/SIDE object looking a the list of user-defined functions on the C/AL Globals window.

Now I want to jump right to this function, taken CheckBlockedCustOnDocs in Table 18 as our example. I can make use of the Go To Defintion functionality right clicking my mouse.

This works great and it will bring focus to the C/AL Editor window. But you know, probably I am old fashioned, but the lesser I can use my mouse the more I prefer it. Hence instead of using the mouse it turns out that clicking the F9 key achieves the same.

Customer Survey: Microsoft Dynamics NAV upgrade
2014-4-24 16:00

Microsoft is really working hard on improving the Dynamics NAV upgrade story. Those who took part in the round table we held at the Dutch Dynamics Community with Dmitry Chadayev and Morten Jensen from Microsoft on last March 11, and those that attended the Upgrade session by Dmitry later that day, can tell. Both Dmitry and Morten, but probably more of their colleagues are really committed to this. And while they have been and are still working hard on this they are still very much interested in input form the field. And for sure not in the least from customers.

So because of that they have published a survey on Customer Source and are asking you all to contribute to their effort by providing them with your input.

So go there an do your thing.

The Anomaly of the XMLport Request Page
2014-4-8 18:31

The user interface of the XMLport has always been somewhat of a black swan. On the classic platform it was absent and you had to work around it yourself. With the emerge of the windows client (RTC) we did get a request page as one of the incentives for us to start adopting the 3-tier technology. And of course, with NAV 2013, the XMLport became the lawful heir of the deprecated Dataport. Nevertheless, it remains a black swan as the request page does not meet some of the standard features we know from pages and report request pages, as I only found out a couple of weeks ago. Talking about a black swan. Geeked

Did you notice that the About This Page feature is lacking on the XMLport request page?

And what about that Copy Link to XMLport action on the ribbon?

Why has this been implemented different from the same on the report request page and page objects? Just for completeness have a look at the objects:

I wouldn't call this a consistent UX.

OK, the Link to ... does what it should do even though UX-wise it's not consistent, but the lacking About this Page is something different. I have no means to identify the ID of the XMLport  and use that in a bug report ...

Of course I created a msconnect entry here to ask for more consistency (or at least get an About This Page feature for the XMLport).

Poisson d'Avril - The Sequel, part #4
2014-4-1 15:46

4th time in a row Microsoft has given me the MVP award. Even though I personally feel I haven't been on the edge of things as in the previous years, I know I have been doing my best the past year to share my knowledge and experience and bother Microsoft enough. Having been engaged primarily with a dev team at an end-user clearly got me off-edge, not saying that it hasn't been worthwhile as it clearly was, not in the least due to the people I have been working with, but also the change of perspective. Thanx, guys!

I surely haven't been writing a lot recently having been very busy with different projects like SEPA updates, conducting and organizing course, the Dutch Dynamics Community, TFS consulting, etc. And of course, trying to balance it all with the rest of daily live, which continues to be challenge for me.

A big hand to all who have been part of this all and supported me very well.

Workshop NAV ALM using Team Foundation Server
2014-3-4 17:45

In close cooperation with the Plataan I will be conducting a 2 days workshop on NAV ALM using Team Foundation Server. You're welcome to join!

Plataan - Microsoft Dynamics - Learning + Competence Management

Please check out below our new workshop 'NAV ALM using Team Foundation Server'.

“A perfect - no, even better - alternative to the various home brewed source control and product planning systems is Visual Studio Team Foundation Server (TFS).”

TFS for NAV Development

Did you know that TFS is a powerful ALM (Application Lifecycle Management) tool that can support your NAV development projects? Do you know that you can build your fobs by using the TFS build systems?

In this unique two day workshop (10-11 April in Hasselt), Dynamics NAV MVP Luc van Vugt will show you how you can manage and control your developments projects better by using Team Foundation Server (TFS) for NAV development projects.

A hands-on development exercise

Luc van Vugt will learn you how to use TFS in your NAV development projects for source control, product and project planning, test planning and execution, requirements gathering and documentation, code history tracking, bug tracking and activity planning. Students will have the ability to practice these new insights with a hands-on development exercise.

You will learn how to use TFS with the NAV development environment that is not integrated with Visual Studio.

This unique MVP workshop will answer questions like:

- How can I get my organization to work with TFS?
- Which software and hardware do I need for TFS integration?
- How to integrate the NAV development environment with TFS?
- How to build fobs with the TFS build systems?
- How can I secure my code and get better insight in the history?
- How can I better manage and track my product development?
- How can I design and plan testing?
- How can I track bugs?

This is a unique session by an experienced NAV MVP specialized in integrating TFS and NAV.

Extend Go To Definition with Navigation History
2014-1-15 10:36

... and enable back and forth browsing.

I often find myself in the situation that I have been navigating through some C/AL code using the Go To Definition feature of which I recon each NAV developer is still very pleased with since the introduction of it in NAV 2009 R2. For sure I am still using it on a daily basis.

Now finding myself at the end of a "chain of Go To Definition actions" I would like to navigate back towards my starting point. Having navigated from one object to another this isn't to difficult as this simple means closing each object that has been opened. But when this chain occurs in one object I have no way of easily doing this.

So I am longing for a navigation history that allows me to navigate in reverse order; even select from this history an individual intermediate stage, likewise with any internet browser; or Dynamics NAV. Cool

If you think this awesome please go to msconnect and vote for the suggestion I created there.

by Luc van Vugt | 1 comment(s)
Filed under: ,
NAV ALM with Team Foundation Server | How-to Videos
2014-1-15 8:48

As you probably have noticed I have been detailing my NAV TechDays starting with branch and merge strategies. Meanwhile "TFS brother in arms" Soren Klemmensen has taken off with how-to videos. Very instructive!

Click on the image to go to Soren's blog.

Soren has already created two videos:

NAV Branching & Merging Matters: Incorporating Standard NAV
2014-1-11 13:09

Reading my posts NAV ALM with Team Foundation Server | Branch Strategy and NAV ALM with Team Foundation Server | Merge Strategy you probably have been thinking: "Thanks and well done Luc, but doesn't sound like NAV specific."
You're totally right! The setups I discussed there are totally product independent; and these are only three of them. You might even study the wider range of setups discussed in the Branching and Merging Guide by the Visual Studio ALM Rangers and choose (or conceive) one that fits your needs better.

Now the logical question following would be: "Aren't there any NAV specific matters to consider?"
Sure there are, such as:

  • In most cases we use NAV standard as the basis of the product we are developing
  • Potentially we are not the only one making changes to this standard code as MS is frequently releasing hotfixes that we might want or need to incorporate into our product
  • Using (other) add-ons into our product in the same matter as NAV standard
  • Developing a product for an international market, i.e. being released to various local countries

In this post I am going to elaborate on how you could incorporate NAV standard in case you are developing a product for a local market (bullets 1 and 2). In later posts I might pay attention to the more broader picture of the third and fourth bullets.

Local Add-on

So your add-on is being developed for a local market in, let's say, the Netherlands (NL), meaning your code is added to NAVNL. Partly new objects and partly customized NAVNL objects.
Therefor we need a container to hold the NAVNL code (NAV/main) which we branch to our add-on (add-on/main):

To this add-on branch we will apply a strategy as discussed in NAV ALM with Team Foundation Server | Branch Strategy.
The schematic TFS structure would then look as follows:

Applicable hotfixes issued by MS will first be checked-in into NAV/main from where it will be integrated into the add-on:

Additional Layers

In the different development setups I have been working so far I have implemented a number of extra layers, which more or less results in a structure as displayed below:

Note that ...

  • NAV contains copies of the RTM code of all versions that have been relevant to us so far; this not only has historical sense, but has proven its worth dozens of times when needing to compare current code with previous versions of NAV
  • NAV/main is the folder as discussed above and always contains the code of the NAV version we are currently "on" with our product
  • Above NAV you might have noticed that the folder dynamics_NAV_development; this is the name of the Team Project that holds our NAV code (next to possibly other team projects holding .Net code)
  • Anywhere product (or add-on) is mentioned this can also be applied to project
More Posts Next page »

Recent Posts


Email Notifications

This Blog


Favorite BLOGS


Team Foundation Server BLOGS