Inspired by the comments on my previous post I will try to continue the journal of one of the largest, if not THE largest, RTC customer conversions.
Today we spent another day on site with the customers develpers with the goal to get one role completely working in the RTC. And we succeeded. (Almost).
Creating Role Centers from Menu Forms
As I wrote earlier, this customer upgraded from 3.70 to 2009 classic but they remained their Form Menu's, never went Menu Suite.
This lead to the idea today to see if we could convert a 3.70 menu form to a 2009 RTC Rolecenter page. And guess what, YOU CAN!
If you convert a menu form in the transformation tool you'll get a Card page with the menu options as action. You can change the page type to Role Center and have a starting point.
There are limitations. We are used to starting up Card forms from the old menu's so they have to be changed to list pages. Also the Reports from the Report List need to be manualy converted to ReportItems in the RoleCenter. But it is a starting point that makes is less easy to forget something.
This role is using close to 50 pages in the main process, maybe little more and we concentrated on the ones used most. Spent some time on promoting actions, creating new action categories and argued about the limmitation of the available bitmaps.
As some pages we noticed that when you use a lot of OnAfterValidate or OnFormat triggers in Forms on long field name, you'll get double functions. The Transformation Tool generates functions for all these functions combining the Field name with the name of the Trigger, but beaks it down after a number of characters. In our case we had a number of pages with double function names. Be aware of that.
Debugging (or the lack of)
Debugigng in the RTC is difficult. Difficult if you have a database on your laptop with full control. When the Database is on a customer SQL server and the Service Tier on another customer server it becomes close to impossible.
Here I always start using the old Message debugging. But what if you want to see the values of a record variable.
This is where an old trick is useful. A trick that also works in the classic client.
This will show a message box with all the field values of the Record. Amazing! And very usefull.
Using Functions in Print Reports
The RTC supports using classic reports. Great. But it does not support sending values to it first using a function and then running the report. You can only directly run the report.
In our scenario we had a report that ran on temporary data. Damn. So this seemed like a good time to introduce the Suggest Report Layout function to my customer, and I said, be aware, this does not work as charming as the Transformation Tool.
But the report was perfect! Is was not a high tech rocket science report, but not simple either. Good job Microsoft!
And after the RDLC layout was generated the report ran fine.
And we have a Wizard
When we started pushing one of the actions we got a strange page. It was showing a next and a finish action in the action pane. Weird... So it seemed that we were having ourselves a wizard.
But it was easier than I thought to get it to work. The only things I changed where the PageType, to NavigatePage. I changed the InFooterBar propery of the actions to Yes, and removed the Promoted property. And it works. Amazing.
If you want to see how easy Wizards are to create in the RTC, look ate page 5077 in Cronus.
Last issue of the day was coloring. This customer, as a lot of customers, use coloring a lot for their end users. We implemented two solitions. In one page they only used the color RED as an indicator that something is wrong. Here we implemented Emhpasys. Easy and straigt forward.
At an other point they used up to 20 colors to show they type of service. Here we implemented Cristians BLOB solution. http://blogs.msdn.com/b/cabeln/archive/2010/03/17/showing-bitmap-flags-in-the-repeater-without-add-ins.aspx
When we finished this process and everything was working, the customer said, wait, we have more of these processes. I said sure, lets fix them. But most of these processes are complete page copies of the orriginal page with other actions but the same code. So we have to implement the same solutions, promote actions, code rewite in all the places. DAMN, that's booring work.
TIP: Try to see if you can replace this with Profile Personalisation. If I have time I wll try to write a blog about this topic, but bottom line is that using Profile Personaliation you can personalise pages for a group of users. So you can use the same page object but hide or show options, such as reports for some departments in your company and show it for others.
Let's be honest, this is the main reason why so many customers have so many redundant forms.
Next week I won't be going on site since I will be in the US of A attending Directions.
This is an exiting week for the knowledge of Microsoft Dynamics.
This week THREE new books are released and/or announced! Amazing!
Here is a list:
1. Microsoft Dynamics Sure Step 2010 | Chandru Shankar, Vincent Bellefroid
2, Microsoft Dynamics NAV 2009 SP1 Programming Cookbook | Matt Traxinger
3. Microsoft Dynamics NAV Administration | Amit Sachdev, Sharan Oberoi
From writing a book myself I know how dificult it is to accomplish such amazing task! Thumbs up guys! Good job.
For the last book in the list I have also been doing some review work, even before I started writing my own book. I am curious to see the results.
I seems that October (and just before Directions) is a good month to release a book. My book was also scheduled for this month, but I pushed it forward because we moved houses.
Buy the books, enjoy the knowledge!
And don't forget! Next week I will sign your book at Directions USA!
In the classic client we are used to getting a runtime error when a flowfield cannot be calculated if the key metadata is missing:
This no longer is the case in the RTC, it will just show zeroes:
I'm not sure if this is a bug or a design decision.
Yesterday I went to the customer with most of the pages stuffed in my briefcase. I felt proud to have done the job within (fixed price) budget but also scared to see the first test results.
After moving all the pages from my briefcase and putting them into the database we could start the first "Testing". Now you should know, I don't know the details of how this customer works and 90% of their main processes is done in the add-ons outside of standard NAV.
So the joyride started. The first discovery was that the customer had forgotten to order Granule 9100. Remember this: you cannot use the RTC with an upgraded database unless you buy this license! So we used our development license to run the pages and their Solution Developer license to design the pages. FUN! Anyway, this should be fixed at next weeks visit.
First task was to create a new role center and put their most important pages in there.
As you know, a Role Center exists of a minimum of three objects: Two Pages and One table.
The first page is the actual Role Center that contains the definition of the Left and Right part of the role center which are either sub pages or system parts AND the Menu options which are defined by the actions.
The second page is the Activities page which contains the cues which are merged with the Role Center menu as you can read in this post.
The cues are based on flowfield in a cue table.
Create a cue table for your company (or add-on) and store all the companies cues in that table. You can built several Activity pages on that table but always move cues from one department to another.
My Second Advice:
Start with the Small Business Owner role center. This Role Center contains a ton of shortcuts and menus to all the parts of Dynamics NAV. Using this as a template you can remove what you don't want either by personalisation (profile or person) or design.
So this is what we did, we created these three objects based on the SBORC and added some menu's.
This is where the penny starts to drop.
Designing a role center is difficult. These end user developers where used to the 3.x menu's and now have to think in workflows.
Another important difference is starting with a list rather than a card. But this is something that you get easily used to.
When you don't use the TIF editor part of the Transformation Tool the pages are generated without a CardFormID. This is a new propery that should be populated in each list page that is started from the Role Center. This defines the Card Page that is activated when you double click, Edit or View a record from the list. It can be defined as the Vice Versa of the good old LookupFormID property, only this property is on page level, not on table level.
The second issue we ran into (which was planned and foreseen) was the page type. The Transformation tool transforms most forms into Card pages. This results in a compile error if your Subpage is a card instead of ListPart which is mandatory.
My third advice:
Fortunately we were lucky, our Add-On is designed by the Famous Gary Winter. Most of the Subforms are called ...Subform or ...Lines so we can export the pages to txt format and to a find & replace of the pagetype property.
Actions on Subpages:
When testing we found out that some of their functions where mixing data from the subpage and the page using the CurrPage.Lines.FORM.GETRECORD function. Now, this gets converted by the Transformation Tool and actualy compiles, but does not work. The function always returns the first record in the filter of the subpage.
We rewrited the code... and will use this trick.
The Test Result
After changing these issues we were able to test one of their main processes from start to end. All of the other pages worked exept one wizard page that needs major redesign. But we know that wizards and Matrixes are solved differently in the RTC.
In this process two dataports are used. THIS DOES NOT WORK IN THE RTC. All dataports need to be resesigned. This can be done by either creating a flat file XML Port (Microsoft definately needs to change the name) or using a file variable in a codeunit or report.
The End Result
At the end of the day we had achieved to goals. One of their main processes was working in the RTC. And the customer is more aware of the impact of the RTC on their business.
Designing Pages and Role Centers is very different from designing Forms. It requires different thinking. Something that still a lot of people in the Dynamics NAV channel need to get used to.
We had a fantastic day with great results and a lot of fun. Looking forward to next week. Are you enjoying these blogs? Then reply something otherwise I might stop.
Inspired by the Belgian Dynamics Community, there is now also a Dutch Dynamics Community.
I have been visiting some of the events for the BDC for some years now, enjoying the content and inspired by the entousiasm.
At this years DBC party event Arend Jan Kauffmann was also there and asked me, why can't this be done in The Netherlands and I said sure, but someone has to start.
Weeks had passed and nothing happened until Luc van Vugt started this thread on Mibuso about the old Pizza sessions we had with MSFT in the past.
Together we scheduled some meetings and decided to found the "Stichting Dutch Dynamics Community".
The idea is to start small with informational event evenings to share knowledge about Dynamics NAV. Hopefully we later extend to other Dynamics applications.
The first event is scheduled for October 26th 2010 where we will discuss Form Transformation and Webservices.
The location is in Barneveld, close to the old Dutch Navision Location. Pizza's will be provided. The event is FREE for everyone who is interested; Partners, End Users, Freelancers, etc.
Here is the invitation text in Dutch:
Aanmelden: stuur een mail naar firstname.lastname@example.org
De eerste avond van de Dutch Dynamics Community wordt gehouden op dinsdag 26 oktober 2010 aan de Anthonie Fokkerstraat 2 te Barneveld.
18:00 - 18:45 Eten (pizza's!)18:45 - 19:00 Welkom19:00 - 20:00 Parallel sessies 20:00 - 21:00 Naborrelen
NAV 2009 Form Transformation - Mark Brummel
Velen klinkt de term Form Transformation bekend in de oren, maar is het toch geen dagelijkse kost. Hoe begin je, wat zijn de benodigde tools, waar moet je aan denken, enz, enz. Allemaal drempels die je er van kunnen weerhouden om een vliegende start te maken met de Role Tailored Client van NAV 2009. Jammer natuurlijk, want het biedt zo veel mogelijkheden. Na deze presentatie, die gegeven wordt door Mark Brummel, zul je veel gemakkelijker en zekerder de stap ondernemen om je Forms om te zetten in Pages. Vanuit de brede kennis en ervaring die Mark inmiddels opgedaan heeft leidt hij je door het proces, geeft de valkuilen aan en helpt hij je op weg.
Over de webservices van NAV 2009 is al veel gesproken en geschreven. Eindelijk is NAV ontsloten voor de buitenwereld en is het mogelijk om rechtstreeks de business logica van NAV aan te roepen vanuit externe applicaties. Hoe werkt het eigenlijk, wat zijn de aandachtspunten, wat zijn de mogelijkheden, de do's en dont's? In deze presentatie neemt Arend-Jan Kauffmann de webservices onder de loep. Het belooft een praktische presentatie te worden waarin ook code voorbeelden gegeven worden. Je gaat naar huis met tips en trucs zodat je webservices direkt kunt gaan toepassen in je dagelijkse werk.
Tijdens, maar ook na beide sessies is er ruim voldoende gelegenheid om vragen te stellen en gezamenlijk verder te praten over de onderwerpen.