March, 2010

  • Microsoft Dynamics NAV Team Blog

    Saying Farewell to the Native Database

    • 14 Comments
    I've met many people who imagine that everyone who works at Microsoft must be of a single mind, with one goal - much like a hive mentality. Nothing could be further from the truth. We are an organization of individuals, often passionate about our beliefs and very emotionally invested in the work that we do. We're very proud of our successes and we want to learn from our failures. We're very human. And as such, when I was asked to work with a team that would decouple the NAV product from our native database, it was with an element of sadness that I agreed. I can also admit that I wanted to do the job because, like many of you, I've worked with this product for over a decade and I wanted this one to happen by someone who understood what we were saying farewell to.    

    You shouldn't be burdened with the technical details about decoupling the files from our build system, generating the lists of extra dlls that we no longer need to install, or reviewing documentation that has references to the database format. When we are about to commit a huge change like this to our internal systems, we send an email to all team members informing them of an impending ‘Breaking Change' and to give teams a last chance to speak up about the impact this will have in their work cycles. There were almost no issues raised but I did receive a large number of comments from team members along the lines of "are you sure we want to take this away," "aren't we giving up the NAV simplicity," and "this is sad."  And a part of me agreed.

    But it's not really sad. The day we committed this change was a bit like the last day of High School. We've all had a fabulous time but our future is ahead.

    It's not sad because the original goal of Navision was not to become a best of breed database product - we wanted to build business applications. We happened to build a very clever little database at the same time but it was never the goal to have the database as the reason that people buy NAV.

    It's not sad because now we focus on SQL Server and we can ensure that SQL is the platform we do our enhancements on. And aim to improve performance on. And benchmark on.

    We can spare our Quality Assurance (Test) organization the pain of testing on a legacy platform and double our efforts into the SQL stack. We can spare our developers from maintaining data connections for two different platforms and spare ourselves the discussion about how to take advantage of SQL features without impacting the way the native database is used. 

    I'm looking forward to everything we can now do and I hope you will join us too.

    -Stuart Glasson

    For more information about the Statement of Direction for Microsoft Dynamics NAV where we talk about ending support for the native NAV database, see this blog post.

  • Microsoft Dynamics NAV Team Blog

    How to create/read xml file from Microsoft Dynamics NAV without using xmlports

    • 9 Comments

    Periodically we receive support requests about XMLport errors, which really are missing features in xmlport's functionality.
    However most of these requests are rejected because: xmlports are not supposed to fulfill all possible xml standard scenarios.
    So there always will be xml file which can't be created or readed by NAV xmlport.
    Possible workaround could be to use XML DOM automations.

    Create it by codeunit:

    ----------------------------------------

     OBJECT Codeunit 50052 xml create
    {
      OBJECT-PROPERTIES
      {
        Date=03/24/10;
        Time=[ 1:33:31 PM];
        Modified=Yes;
        Version List=;
      }
      PROPERTIES
      {
        OnRun=BEGIN
                CREATE(xmlDoc);
                xmlMgt.SetNormalCase;
                xmlProcessingInst:=xmlDoc.createProcessingInstruction('xml','version="1.0" encoding="UTF-8" standalone="yes"');

                CurrNode := xmlDoc.appendChild(xmlProcessingInst);
                CurrNode := xmlDoc.createElement('soapenv:Envelope');
                CurrNode := xmlDoc.appendChild(CurrNode);


                xmlMgt.AddAttribute(CurrNode,'xmlns:soapenv','http://schemas.xmlsoap.org/soap/envelope/');
                xmlMgt.AddAttribute(CurrNode,'xmlns:mbs','http://www.microsoft.com/mbs/xml');

                xmlMgt.AddElement(CurrNode,'soapenv:Header','','soapenv',NewChild);
                  CurrNode:=NewChild; //One level deeper
                  xmlMgt.AddElement(CurrNode,'soapenv:Body','','soapenv',NewChild);
                       CurrNode:=NewChild; //one level deeper
                       xmlMgt.AddElement(CurrNode,'mbs:enumeration','','mbs',NewChild);
                            CurrNode:=NewChild; //one level deeper
                            xmlMgt.AddElement(CurrNode,'mbs:table','Customers','mbs',NewChild);

                         recCustomer.SETRANGE("No.", '10000','20000'); //Filter only few records
                         IF recCustomer.FINDFIRST THEN BEGIN
                           REPEAT
                            vName   :=recCustomer.Name;
                            vNo     :=recCustomer."No.";
                            vContact:=recCustomer.Contact;
                              recCustomer.CALCFIELDS("Balance (LCY)");
                              vBalance:= FORMAT(recCustomer."Balance (LCY)");
                            vSPcode :=recCustomer."Salesperson Code";


                            xmlMgt.AddElement(CurrNode,'mbs:Customer','','mbs',NewChild);
                                  CurrNode1:=NewChild; //One level deeper, but keep current level too
                                  xmlMgt.AddElement(CurrNode1,'mbs:CustomerAuthentication','','mbs',NewChild);
                                         CurrNode2:=NewChild; //One level deeper to sublevel
                                         xmlMgt.AddElement(CurrNode2,'mbs:No',vNo,'mbs',NewChild);
                                         xmlMgt.AddElement(CurrNode2,'mbs:Name',vName,'mbs',NewChild);

                                  xmlMgt.AddElement(CurrNode1,'mbs:CustomerData','','mbs',NewChild);
                                         CurrNode2:=NewChild; //One level deeper to sublevel
                                         xmlMgt.AddElement(CurrNode2,'mbs:Balance',vBalance,'mbs',NewChild);
                                         xmlMgt.AddElement(CurrNode2,'mbs:SalespersonCode',vSPcode,'mbs',NewChild);
                                         xmlMgt.AddElement(CurrNode2,'mbs:Contacts','','mbs',NewChild);
                                             CurrNode1:=NewChild;//One level deeper
                                             xmlMgt.AddElement(CurrNode1,'mbs:Contact',vContact,'mbs',NewChild);


                            CLEAR(vName);
                            CLEAR(vNo)  ;
                            CLEAR(vContact);
                            CLEAR(vBalance);
                            CLEAR(vSPcode);

                           UNTIL recCustomer.NEXT=0;


                           xmlDoc.save('D:\xmlFile.xml');
                           CLEARALL;
                           MESSAGE('xmlFile.xml is created');
                         END;
              END;

      }
      CODE
      {
        VAR
          xmlDoc@1000 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{F6D90F11-9C73-11D3-B32E-00C04F990BB4}:'Microsoft XML, v6.0'.DOMDocument";
          CurrNode@1003 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF80-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMNode";
          CurrNode1@1005 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF80-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMNode";
          CurrNode2@1013 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF80-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMNode";
          NewChild@1004 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF80-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMNode";
          xmlProcessingInst@1001 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF89-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMProcessingInstruction";
          xmlMgt@1002 : Codeunit 6224;
          "---- Variables----"@1006 : Integer;
          recCustomer@1012 : Record 18;
          vName@1007 : Text[30];
          vNo@1008 : Text[30];
          vContact@1009 : Text[30];
          vBalance@1010 : Text[30];
          vSPcode@1011 : Text[30];

        EVENT xmlDoc@1000::ondataavailable@198();
        BEGIN
        END;

        EVENT xmlDoc@1000::onreadystatechange@-609();
        BEGIN
        END;

        BEGIN
        END.
      }
    }

    ---------------------------------------

    And can be read by codeunit: 

    OBJECT Codeunit 50050 xml read
    {
      OBJECT-PROPERTIES
      {
        Date=03/24/10;
        Time=12:25:26 PM;
        Modified=Yes;
        Version List=;
      }
      PROPERTIES
      {
        OnRun=BEGIN
                ffile.OPEN('D:\XmlFile.xml'); //this must be your file name
                ffile.CREATEINSTREAM(strInStream);

                IF ISCLEAR(xmldomDoc) THEN CREATE(xmldomDoc);

                xmldomDoc.load(strInStream);

                xmlNodeList1 := xmldomDoc.getElementsByTagName('mbs:Customer');

                ii:=xmlNodeList1.length();

                FOR i:=0 TO xmlNodeList1.length()-1 DO BEGIN
                 xmldomElem1:= xmlNodeList1.item(i); //mbs:Customer
                 IF xmldomElem1.hasChildNodes() THEN
                    BEGIN
                      xmlNodeList2:= xmldomElem1.childNodes();
                      IF NOT ISCLEAR(xmlNodeList2) THEN
                      xmldomElem2:= xmlNodeList2.item(0); //mbs:CustomerAuthentication
                      IF NOT ISCLEAR(xmldomElem2) THEN
                      IF xmldomElem2.hasChildNodes() THEN
                         BEGIN
                         xmlNodeList3:= xmldomElem2.childNodes();
                         IF NOT ISCLEAR(xmlNodeList3) THEN
                          xmldomElem3:= xmldomElem2.firstChild();//mbs:No
                         IF NOT ISCLEAR(xmldomElem3) THEN
                          txtNo:=xmldomElem3.text();
                         xmldomElem3:=xmlNodeList3.item(1); //mbsName
                         IF NOT ISCLEAR(xmldomElem3) THEN
                          txtName:=xmldomElem3.text();

                      xmldomElem2:= xmlNodeList2.item(1); //mbs:CustomerData
                      IF NOT ISCLEAR(xmldomElem2) THEN
                      IF xmldomElem2.hasChildNodes() THEN
                         BEGIN
                         xmlNodeList3:= xmldomElem2.childNodes();
                         IF NOT ISCLEAR(xmlNodeList3) THEN
                          xmldomElem3:= xmldomElem2.firstChild();//mbs:Balance
                         IF NOT ISCLEAR(xmldomElem3) THEN
                          txtBalance:=xmldomElem3.text();
                         xmldomElem3:=xmlNodeList3.item(1); //mbsSalesPersonCode
                         IF NOT ISCLEAR(xmldomElem3) THEN
                          txtSPcode:=xmldomElem3.text();
                         END;

                         xmldomElem3:=xmlNodeList3.item(2); //mbs:Contacts
                         IF NOT ISCLEAR(xmldomElem3) THEN
                            txtContact:=xmldomElem3.text();

                     END;
                END;
                      MESSAGE('This is record "%1"\No "%2"\Name "%3"\Contact "%4"\Balance "%5"\Salesperson code "%6"\of Total "%7"',
                      FORMAT(i+1),
                      txtNo,
                      txtName,
                      txtContact,
                      txtBalance,
                      txtSPcode,
                      ii);

                END;
                ffile.CLOSE;
                CLEARALL;
              END;

      }
      CODE
      {
        VAR
          xmldomDoc@1000 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{F6D90F11-9C73-11D3-B32E-00C04F990BB4}:'Microsoft XML, v6.0'.DOMDocument";
          xmlNodeList1@1005 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF82-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMNodeList";
          xmlNodeList2@1017 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF82-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMNodeList";
          xmlNodeList3@1019 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF82-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMNodeList";
          xmldomElem1@1007 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF86-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMElement";
          xmldomElem2@1010 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF86-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMElement";
          xmldomElem3@1011 : Automation "{F5078F18-C551-11D3-89B9-0000F81FE221} 6.0:{2933BF86-7B36-11D2-B20E-00C04F983E60}:'Microsoft XML, v6.0'.IXMLDOMElement";
          txtNo@1001 : Text[30];
          txtName@1002 : Text[30];
          txtContact@1009 : Text[30];
          txtBalance@1012 : Text[30];
          txtSPcode@1013 : Text[30];
          ffile@1003 : File;
          strInStream@1004 : InStream;
          i@1006 : Integer;
          ii@1018 : Integer;

        EVENT xmldomDoc@1000::ondataavailable@198();
        BEGIN
        END;

        EVENT xmldomDoc@1000::onreadystatechange@-609();
        BEGIN
        END;

        BEGIN
        END.
      }
    }

    That's all
    Special thanks to
    Rainer Kuhnlein

    Gedas Busniauskas (gediminb)
    Microsoft Customer Service and Support (CSS) EMEA

     

  • Microsoft Dynamics NAV Team Blog

    Microsoft Dynamics NAV 2009 SP1 installation moment...

    • 7 Comments

    Recently i met customer problem where NAV 2009 SP1 components didn't work after "correct installation".

    Problem is: customer installs NAV 2009 SP1 components by run msi file - for example "Microsoft Dynamics NAV SDK.msi". But this way doesn't install "Prerequisite Components" needed by NAV 2009 SP1. And it could be these installed NAV components will not work (because it missing prerequisites).


    Only supported way to Install NAV 2009 SP1 components is - run "setup.exe".

    However "setup.exe" will uninstall previous NAV version and installs new NAV 2009 SP1 version. If you need to have few NAV version installed - you need to run msi (instead of setup.exe).
    So conclusion: both ways have it strength and weakness. You can choose what you want, just you need to know about possible issues...

    Gedas Busniauskas (gediminb)
    Microsoft Customer Service and Support (CSS) EMEA

  • Microsoft Dynamics NAV Team Blog

    Platform Update 2 for Microsoft Dynamics NAV 5.0 SP1

    • 5 Comments

    Update 2 for Microsoft Dynamics NAV 5.0 SP1 incorporates over 40 hotfixes and resolves various additional known issues reported since the previous update. It is verified to run on Windows 7 and on Windows Server 2008 R2. It provides updated stylesheets to support export of PictureBoxes to Microsoft Office Word and Excel. See the Release Notes provided with the update for details.

    Platform Update 2 for Microsoft Dynamics NAV 5.0 SP1 

    A CustomerSource login is required. Scroll down to the Downloads section of the page. For the selected country, click the link in the Platform Update 2 column.

  • Microsoft Dynamics NAV Team Blog

    Export of Pictures using Send-To MS Word/Excel functionality

    • 3 Comments

    With release of update 2 for NAV 5.0 SP1, the client now supports exporting picture box using style sheets (send-to Word/Excel) functionality.

    Both Client and style sheets have been modified to align with this change. If you don't normally have picture fields on the form you're exporting, you would add the field through codeunit 403, where additional data is normally added to the export (runtime). For simplicity I added a PictureBox contatining Picture field to Item form - and that is all there is to it really. When using send-to functionality, generated output will show item picture in the document. Now testing this with export to Word, one might note the crossed icon if the picture is not available. Though that should not be an issue either, modifying the style sheet to ignore the control if data is not present, should this really be necessarry, is as simple as a single if-test.

    So to illustrate this, I've changed the following part of NavisionFormToWord style sheet (changed lines marked with comments), to add an if test around 'pict'-  tag, and


        <xsl:if test="@data != ''"> <!-- IF TEST BEGIN !-->
              <w:pict>
                <w:binData xml:space="preserve"><xsl:attribute name="w:name">wordml://<xsl:value-of select="@id"/>.png</xsl:attribute><xsl:value-of select="@data"/></w:binData>
                <v:shape id="_x0000_i1025" type="#_x0000_t75">
                  <v:imagedata o:title="CRONUS">
                    <xsl:attribute name="src">wordml://<xsl:value-of select="@id" />.png</xsl:attribute>
                    <xsl:attribute name="o:title"><xsl:value-of select="@name" /></xsl:attribute>
                  </v:imagedata>
                </v:shape>
              </w:pict>
        </xsl:if>   <!-- IF TEST END !-->

    Note that this is even easier if we're controling field export through coudeunit 403, where this test can be implemented instead, to control availability of the control based on data content.

    Jasminka Thunes 

    Microsoft Norway

    Microsoft Customer Service and Support (CSS) EMEA

     

     

  • Microsoft Dynamics NAV Team Blog

    Transfooter and Transheader functionality in RDLC(SSRS) reports

    • 3 Comments

    Please note that I have posted a new blog for this subject here. /Claus Lundstrøm

    In our Classic reports we have the possibility to use Transfooter and Transheader. A typical use for classic Transfooters and Transheaders are to show a current subtotals up to the end of the current page or sums per page

    These functions are not directly mapped from Classic reports to RDLC reports in Dynamics NAV 2009, but in this post I will go through how this is done in RDLC reports:

    1. Create new report blank report with table 18

    clip_image001

    2. Create DataItem ”Customer”

    clip_image002

    3. Go to Section Designer and add the following fields:

    · No.

    · Name

    · Debit Amount

    clip_image003

    4. Save the report as ID 50000 – Transfooter / Transheader

    clip_image004

    5. Now go to Visual Studio (View / Layout)

    clip_image005

    6. Create table and add the fields No, Name and Debit Amount

    clip_image006

    7. Give this table the name “MainTable”

    clip_image007

    8. Now we have added the basic for this report. But I would also like to have a Grand total of the Debit Amount so I add this as well. I add this in the Footer of the table

    ="GrandTotal: " & sum(Fields!Customer__Debit_Amount_.Value)

    clip_image008

    9. Now if my report is printed I get a list of my all my customer with Debit Amount displayed and with GrandTotal in the end of the report:

    clip_image009

    10. Now I would like to see the accumulated sum of the Debit Amount on each the page footers, and on the next page display this accumulated sum from previous page. So I will add Transfooter and Transheader functionality to the report.

    11. First we need to do some intermediate calculations to accomplish this.

    Add 3 new columns to the existing table in Visual Studio;

    clip_image011

    12. In the first column enter this expression:

    =RunningValue(Fields!Customer__Debit_Amount_.Value, Sum, "MainTable")

    And give this name “Subtotals1”

    clip_image012

    13. In the Second column enter this expression:

    =RunningValue(Fields!Customer__Debit_Amount_.Value, Sum, "MainTable") - Fields!Customer__Debit_Amount_.Value

    And give this name “Subtotals2”

    clip_image013

    14. In the Third column enter this expression:

    =RunningValue(Fields!Customer__No__.Value, Count, "MainTable")

    And give this name “SubCount”

    clip_image014

    The 3 columns should now look like this:

    clip_image015

    15. As these 3 columns are only used for calculation I will make them really small and set Visibility “Hidden=True” and make the font red so I remember that these columns are hidden.

    Your report should now look like this:

    clip_image016

    16. Ok, it’s now time to add a Transfooter and Transheader. Enable Page Header and Page Footer in the report. You report should look like this:

    clip_image018

    17. In the Page Footer I place a text box with the following expression:

    ="Transfooter subtotal = " & Last(ReportItems!Subtotals1.Value)

    And then I set BackgroundColor, and Color just so this Transfooter stands out in my report, and right align text:

    clip_image019

    clip_image020

    18. In the Page header I place a text box with the following expression:

    ="Transheader subtotal = " & (First(ReportItems!Subtotals2.Value))

    And then I set BackgroundColor, and Color just so this Transfooter stands out in my report, and right align text:

    clip_image021

    clip_image022

    19. Now I’m almost done but I would like to not see the Transheader on the first page and not to see the Transfooter on the last page, so I select properties on the Page Header and set the “PrintOnFirstPage=False”

    clip_image023

    20. Now I could do the same on Page Footer, but maybe I would like to display the Page Footer, but not with the Transfooter displayed, so here is a little trick for how to do this.

    21. Insert a text box below the table and set the expression to “=True”, Name=LastPageControl, Hidden=True and color red.

    clip_image024

    22. With this field added after the table we can now check to see when we are on the last page.

    So I add the following Visibility Expression on the Transfooter textbox:

    =ReportItems!LastPageControl.Value

    clip_image025

    23. Now I’m done, I save, import into NAV and compile. After some fit and finish on the report it now looks like this when I print:

    clip_image027

    clip_image029

    You can download my report here as FOB and XPS.

    Thanks,
    Claus Lundstrøm, Program Manager, Microsoft Dynamics NAV

  • Microsoft Dynamics NAV Team Blog

    Directions EMEA 2010 (May 19-21)

    • 1 Comments

    Directions EMEA 2010 is a partner conference focused entirely on Microsoft Dynamics NAV, with an expected attendance of 500 people from over 30 Countries, taking place in the beautiful city of Prague, May 19-21, 2010.

    Over the years, the Directions EMEA event has grown to become a prime conference for our Microsoft Dynamics NAV partners creating a platform where you can meet and connect, share knowledge and engage in new business opportunities as well as network with Microsoft representatives and executives.

    The primary goals of this event are to:

    • Help build a stronger and more engaged Microsoft Dynamics NAV community.
    • Enhance the relationship between Microsoft and you, our Microsoft Dynamics NAV partners.
    • Provide you with the latest product and business information helping you win in the market.

    Since there is a mutual interest within a community consisting solely of Microsoft Dynamics NAV partners, the dialog with Microsoft is direct and open. Often this has a direct effect on development and strategy concerning the future of Microsoft Dynamics NAV.

    In order to achieve this, the agenda contains:

    • Keynotes: covering areas of general interest, based on input from the channel, and latest information about product and business development.
    • Technical sessions: providing you with background information and knowledge.
    • Sales/Marketing sessions: giving insight into go-to-market strategies, positioning and selling tactics.
    • ISV sessions: where partners present their products and services to an EMEA audience.
    • Partner exhibitions: to show solutions and build contacts.
    • And of course lots of opportunity to partner and network.

    I therefore encourage you to attend this year's event in Prague and take advantage of the great possibilities provided to you. Registration has already begun and the complete agenda can be found at: http://www.directionsemea.com/.

  • Microsoft Dynamics NAV Team Blog

    New Training Titles Released for Microsoft Dynamics NAV 2009 SP1

    • 0 Comments
    The following training titles have been released  and are available on PartnerSource and CustomerSource (log-in required):

    What's New in Microsoft Dynamics® NAV 2009 Service Pack 1 - Application:

    A one-day instructor-led training (ILT) course that provides students with the knowledge and skills to recognize the key differences in the application features for Microsoft Dynamics NAV 2009 SP1.

    CustomerSource: https://mbs.microsoft.com/customersource/training/trainingmaterials/student/course80237

    PartnerSource: https://mbs.microsoft.com/partnersource/communities/training/trainingmaterials/student/course80237

    What's New in Microsoft Dynamics® NAV 2009 Service Pack 1 - Installation and Development:

    A one-day instructor-led course that provides students with the knowledge of what is new in Microsoft Dynamics NAV 2009 Service Pack 1 (SP1). The course provides an explanation of how to install and configure Microsoft Dynamics NAV 2009 SP1, and describes new features in the Page and Report Designers, changes in developing Web services solutions, and other partner productivity features.

    CustomerSource: https://mbs.microsoft.com/customersource/training/trainingmaterials/student/course80236

    PartnerSource: https://mbs.microsoft.com/partnersource/communities/training/trainingmaterials/student/course80236

    Data Upgrade and Code Upgrade from Microsoft® Business Solutions-Navision® 3.7 to Microsoft Dynamics® NAV2009 SP1:

    A two-day instructor-led course that provides students with the necessary tools to help them perform an upgrade from Microsoft Business Solutions-Navision 3.70, Microsoft Dynamics NAV 4.0, or Microsoft Dynamics NAV 5.0, to Microsoft Dynamics NAV 2009 SP1. This includes planning and performing data and code upgrades of Microsoft Dynamics NAV with customizations, in addition to testing the upgraded solution. The training is designed to offer students best practices to address the typical pain points of an upgrade.

    CustomerSource: https://mbs.microsoft.com/customersource/training/trainingmaterials/student/course80234

    PartnerSource: https://mbs.microsoft.com/partnersource/communities/training/trainingmaterials/student/course80234

    The Microsoft Dynamics NAV 2009 SP1 What's New training is also available as E-Learning in the Element K Catalog for partners and customers on a service plan.

    In addition, the following translated trainings have been made available; these trainings apply to Microsoft Dynamics NAV 2009:

    Title Language Type Available on PartnerSource and CustomerSource

    Finance in Microsoft Dynamics® NAV 2009 Extension for Italy

    French

    Extension

    2/1/2010

    Gestion des stocks dans Microsoft Dynamics® NAV 2009

    French

    ILT

    2/5/2010

    Commerce dans Microsoft Dynamics® NAV 2009

    French

    ILT

    2/5/2010

    Lagerverwaltung in Microsoft Dynamics® NAV 2009

    German

    ILT

    2/5/2010

    Handel in Microsoft Dynamics® NAV 2009

    German

    ILT

    2/5/2010

    Gestión de inventarios en Microsoft Dynamics® NAV 2009

    Spanish

    ILT

    2/5/2010

    Operaciones comerciales en Microsoft Dynamics® NAV 2009

     

    Spanish

    ILT

    2/5/2010

    Lager i Microsoft Dynamics® NAV 2009

    Danish

    ILT

    2/5/2010

    Handel i Microsoft Dynamics® NAV 2009

    Danish

    ILT

    2/5/2010

    Voorraadbeheer in Microsoft Dynamics® NAV 2009

    Dutch

    ILT

    2/5/2010

    Handel in Microsoft Dynamics® NAV 2009

    Dutch

    ILT

    2/5/2010

    Gestione magazzino in Microsoft Dynamics® NAV 2009

    Italian

    ILT

    2/5/2010

    Acquisti e vendite in Microsoft Dynamics® NAV 2009

    Italian

    ILT

    2/5/2010

    Finance in Microsoft Dynamics® NAV 2009 Extension for Denmark

    Danish

    Extension

    2/12/2010

    Microsoft Dynamics® NAV 2009 Produktion I

    Danish

    ILT

    2/16/2010

    Microsoft Dynamics® NAV 2009 Produktion II

    Danish

    ILT

    2/16/2010

    Production I dans Microsoft Dynamics® NAV 2009

    French

    ILT

    2/16/2010

    Production II dans Microsoft Dynamics® NAV 2009

    French

    ILT

    2/16/2010

    Produktion I in Microsoft Dynamics® NAV 2009

    German

    ILT

    2/16/2010

    Produktion II in Microsoft Dynamics® NAV 2009

    German

    ILT

    2/16/2010

    Fabricación I en Microsoft Dynamics® NAV 2009

    Spanish

    ILT

    2/16/2010

    Fabricación II en Microsoft Dynamics® NAV 2009

    Spanish

    ILT

    2/16/2010

     

  • Microsoft Dynamics NAV Team Blog

    Convergence 2010 Atlanta (April 24-27)

    • 0 Comments

    Convergence 2010 Atlanta, the premier Microsoft Dynamics event, offers "a unique opportunity to network with your peers, partners, Microsoft team members, and industry experts together to share ideas and knowledge—all in one place." For more information and registration details, see the Convergence 2010 Atlanta site.

    Also on this site, check out the Session Catalog to find the latest and greatest information about sessions, roundtables, workshops, labs, and interactive discussions. You can filter on the Microsoft Dynamics NAV track to see all things NAV-related.

    Finally, take a look at the Microsoft Dynamics ERP Community Team Blog and select the Convergence 2010 Atlanta tag to read blog posts that are sure to get you excited for the event.

    Hope to see you there in April!

  • Microsoft Dynamics NAV Team Blog

    Final Update to Microsoft Dynamics NAV 2009 Developer and IT Pro Help

    • 0 Comments

    Our final update to the Microsoft Dynamics NAV 2009 Developer and IT Pro Help has been published on MSDN and the Microsoft Download Center. You can download the updated .chm file and copy it into your NAV 2009 installation to update the Help you receive from F1. The cumulative changes to the Help are available on the What's New page.

    Some of the new and updated content areas for this release include:

     As always, let us know what you think, what's missing, what's helpful, and what you like and dislike about Help.

    - Bob, Jill and John (the writers for NAV Developer and IT pro Help)

Page 1 of 1 (10 items)