« April 2008 | Main | June 2008 »

Fun with the Dynamics NAV Debugger

Recently I had to debug some custom code I added in Dynamics NAV. Some object was throwing an error because of an overflow converting Text 60 to Text 30. Because in the code were the error occurred, many other objects were called, it was not so easy to see were the error originated from. But then I noticed a nice feature of the Dynamics NAV debugger that pointed me in the correct direction.

Let's make an example. Codeunit 365 is frequently used to format addresses when running reports. Let's say that when running a Sales Invoice something goes wrong when calling the FormatAddr function.

For example, someone has changed the table design of the Sales Invoice table and enlarged the 'Bill To Customer Name' from 50 to 100 characters. The FormatAddr function expects a parameter Name that can be maximum 90 characters in length. When printing an invoice for a customer with a name bigger than 90 characters this will result in an error.

Go to Tools and enable the debugger (Breakpoint on Triggers is not required for this example):

Then, run the report. You will notice that the debugger stops here (when the error is thrown):

The question now is, can we trace this back to the report and see via which objects and code the report called this function?

Yes, we can. In the debugger you have a special window for this:

The little yellow arrow shows you in what object you are debugging. BUT, here comes the great feature, you can double-click on the underlying objects, and then the debugger will jump to the code of that object.

The little Green arrow shows now where we are debugging, and you can directly see which code in what object was responsible for calling the FormatAddr function.

Even more usefull you can see the object number, name and the trigger/function…

And you can even go further back by double-clicking on the object(s) below this one!

How cool is that?

Conduct key user training early on

Keyusertraining Microsoft Dynamics Sure Step Methodology plans "key user training" as of the start of the Analysis phase.

It should primarily focus on educating the customer resources in the capabilities of the application so they can participate in business process analysis, gap/fit discussions, application configuration, and customization design. It will help both the implementing organization and the customer to develop a common language and mutual understanding.

During training I had a lot of interesting discussions regarding this "key user training". Some students confirm the great benefit of key user training early in the process others disagree.

I found a real good blogitem about this subject on the blog of Vjeko. The article is called "Standard enemy" and illustrates another great advantage of "key user training" early in the process. You can read it here. Enjoy.

What about the Always Rowlock option?

Since Dynamics NAV 4.0 SP1 a new database option, for Dynamics NAV on Sql Server, became available: Always Rowlock:

By default it is not enabled and by enabling it Dynamics NAV will send 'WITH ROWLOCK' hints towards Sql Server. Without it, we let SQL Server decide what kind of locks to use.

Rowlocks require memory to maintain, so some times, SQL Server will convert many rowlocks into one table lock when it thinks that it can use its memory better in other places. The ROWLOCK hint will prevent this.

If the ROWLOCK is not issued then SQL Server has the freedom to choose at what level it will lock: row, page or table.

  • The up side of this is that it is a big reduction in lock maintenance and memory required for many rowlocks, which instead will be replaced with page locks è improved performance.
  • The down-side is that page locking is not as fine-grained and therefore a user can be locking 'too much' data that can impact other users è reduced concurrency.

Forcing ROW Locking keeps the lock-granularity small; the probability of getting blocks is smaller. The disadvantage is that by forcing the small granularity, this could cause a high "pressure" on the master database: administering many Row-Locks is more "costly" than administering few e.g. Range-Locks etc...

If you have a high transaction volume, dealing with large result-sets, "Always Rowlock" could cause an overall decrease of performance if the master-db reacts too slowly due to the high number of lock-administrations.

Finally, "Always Rowlock" reduces blocking-conflicts (actually it is just disguising them) but could be at cost of the overall performance (which could be compensated by sufficient hardware resources).

So, if you activate "Always Rowlock", you may get fewer table locks, but SQL Server may need more memory. It's impossible to say in general, how it will affect each individual system. If you think you have quite a lot of memory, then the only way to see the effect is to turn it on, and see if the system works better. I'm afraid that I don't know of any better general rules, when to advice to turn "Always Rowlock" on or off.

Maybe you could share with us your own experiences with the Always Rowlock option?

Workbreakdownstructure in Microsoft Dynamics Sure Step Methodology

A good technique to master and manage your project scope is the use of a Work Breakdown Structure (WBS).

What is a WBS?

Wikipedia definition:
A work breakdown structure or WBS is a fundamental project management tool. A common technique for defining and organizing the total scope of a project, is to use a hierarchical tree structure. The first two levels of the WBS (the root node and Level 2) define a set of planned outcomes that collectively and exclusively represent 100% of the project scope. At each subsequent level, the children of a parent node collectively and exclusively represent 100% of the scope of their parent node. More generally, outside of it's original mil standard and PERT/CPM context, a WBS is a mapping from one level of system specification to another, for example a requirements cross reference matrix mapping functional requirements to high level or low level design documents. A well-designed WBS describes planned outcomes instead of planned actions

In Microsoft Dynamics Sure Step Methodology WBS structures are included. The planning tools (MS Projects) are also based on the available WBS structures. The only thing not there is a nice visualization of the tree structure. On the web I found a nice tool called WBS Chartpro. You can use this tool to create WBS structures but also it can create a WBS automatically based on a MS Project file.

WBS Chart Pro can be used to generate WBS charts directly from existing Microsoft Project plans. WBS Chart Pro uses the Outline created in Microsoft Project to generate a hierarchical view of the data. A WBS toolbar button can be installed into Microsoft Project for easy transfer of data. As you organize and change your project in Microsoft Project, a WBS chart of that data is only a button away.

Get into the Groove

Grooveicon Microsoft Office Groove is a peer-to-peer application targeted at teams with members who are usually off-line or who do not share the same network security clearance.

Groove is desktop software designed for the collaboration and communication of the members of small groups, developed by Ray Ozzie for the Windows platform. Note that this is not a "cloud service". So "Live Mesh" (see previous blog item) is a cloud service, while Groove is desktop software.

GrooveThe basic idea for Groove is a set of files to be shared plus some aids for group collaboration which is a shared workspace. A Groove user invites other Groove members after creating a workspace.

By responding to an invitation the person becomes an active member of that workspace and is sent a copy of the workspace that is installed on their hard disk drive. All data is encrypted both on disk as well as over the network, with each workspace having a unique set of cryptographic keys.

Members interact and collaborate in the workspace which is a private virtual location. All changes being made are tracked by Groove and all the copies are synchronized via the network in a peer-to-peer manner, almost instantaneously.

All the members are sent the changes made to the workspace by any of the users and the documents are updated automatically. The change is queued and synchronized to other workspace members, if that member is offline at the time the change is made, but the user's copy is updated when the member comes back online. The change is temporarily stored at the server, if Groove Server is used, which is relayed when the user is back online. Multiple copies are kept for the editors, when more than one person edits a document at the same time, who must agree which changes to save.

Microsoft office Groove operates by means of a client and two servers: Groove Server Manager and Groove Relay server.


You can use and deploy Groove in three ways:

  • as an unmanaged account (free version)
  • as a hosted account (hosted by Microsoft)
  • as an onsite account (setup and managed in your own infrastructure)

(Note: Microsoft Gold Certified partners are entitled to a hosted account for free )

A workspace exists out of tools. For each workspace you can decide which tools to use. For each tool you can assign rights. Some examples of tools are:

  • agenda
  • file sharing
  • discussions
  • forms (own Groove forms)
  • infopath forms
  • notes
  • Issue tracking
  • ... many more

You can also integrate Groove with Sharepoint (file repository). This brings us to an interesting subject. Why would you use and Sharepoint and Groove?

In a way, you could see Groove as an offline client for Sharepoint (certainly the upcoming version). Sharepoint users need an URL and security settings. For Groove this is not necessary. Groove can be setup much faster and easier when you work with external people. Groove is really interesting for field workers.

Can you store project emails in Groove and  sync a calendar?
At first the answer was no but with GrooveIT! you can. GrooveIT! is the way to take full advantage of Groove workspaces by linking them with your daily work tools.

GrooveIT! is a great tool for your Groove 2007 and Outlook environment. It will sync tour email from Outlook to Groove 2007. New for the 2.0 version is:

  • Share your RSS feeds
  • Transfer your Outlook tasks
  • Create GrooveIT! rules on calendars, tasks list, contacts list, RSS feeds
  • Discover improved Groove tools including support for Groove links, attachments management, filtering
  • Build discussion threads of your emails, avoid duplicates
  • Update calendar events, contacts and tasks already published in Groove

Use the Web as your File Sharing Hub with Microsoft Live Mesh

Live_meshMicrosoft recently unveiled a tech preview of its Live Mesh service. Have all your devices—PCs, and soon Macs and mobile phones—working together to give you anywhere access to the information you care about.

A clear example of a "cloud service", Microsoft believes in "cloud computing".  Live Mesh synchronizes and shares data across multiple machines — currently that means Windows PCs, but look for Windows Mobile as well as Mac OS X support to be added later this year. Mesh offers one-click sharing for desktop folders, remote desktop connections, web-based file access and a news feed to keep track of it all. Eventually Microsoft would like to add Xbox, DVR and other devices to the list of syncing/sharing possibilities.

In his first Channel9 interview, Ray Ozzie, Microsoft's Chief Software Architect talks about Live Mesh, a new technology and platform that enables synchronization and storage "to the cloud." You'll hear about the history of Live Mesh, how it has been influenced by Ray's previous work on products like Groove (more to come on Groove on this blog ...).

Key elements for Live Mesh are:

  • All your devices working together
  • Access from anywhere
  • Simple to share
  • Stay informed

Notice that this is quite a change for Microsoft and represents a significant step away from the desktop. Eventually Microsoft hopes, as Ozzie says, that “social mesh notions of linking, sharing, ranking and tagging will become as familiar as File, Edit and View.”

Some video's on Live mesh

October 2011
Mon Tue Wed Thu Fri Sat Sun
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

powered by FreeFind
© 2005 Plataan bvba | info@plataan.be