June, 2010

  • Microsoft Dynamics NAV Team Blog

    Outlook Addin error: The related item for the synchronized Outlook item is not found in the specified folders. The following values were expected:.

    • 6 Comments

    When working with tasks and appointments, the following error could show up:

      The related item for the synchronized Outlook item is not found in the specified folders. The following values were expected:.

    It took us a while to find out why this error occurred. Let me first describe how this can be reproduced:

    First of all, create two contacts in the Contacts table in Dynamics NAV and use the following data:

    First Contact:
    John Doe
    Downingstreet 10
    1234 XX NL
    johndoe@dummy.nl

    Second Contact:
    John Doe
    Johningstreet 12
    5678 XX NL
    doejohn@123.nl

    - then install Demo installation of Dynamics NAV 2009 SP1 using domain user account called DOMAIN\Administrator
    - install NAS of Dynamics NAV 2009 Sp1 and populate it with the correct values
    - go to Administration / Application Setup / General / Change Log Setup
    - enable Change Log Activated
    - go to Sales & Marketing / Sales / Salespeople
    - press F3 and use the following data to create a salesperson

    MME
    Marco Mels

    - go to Administration / Microsoft Office Outlook Integration / Outlook Synch. User Setup
    - add the following to the Outlook Synch. User Setup window (Bidirectional):

    mmels CONT_SP        
    mmels CONT_COMP WHERE(Salesperson Code=CONST(MME))
    mmels CONT_PERS WHERE(Salesperson Code=CONST(MME))
    mmels TASK WHERE(Salesperson Code=CONST(MME))             1
    mmels APP WHERE(Salesperson Code=CONST(MME))               1

    - press Setup, select Register in Change Log Setup for CONT_SP, CONT_COMP, CONT_PERS, TASK and APP
    - start up Outlook and configure the Outlook profile with the correct settings for Mailbox enabled user account called Marco Mels
    - configure the Outlook Addin with the following folders:

    CONT_SP: Mailbox - Marco Mels\Contacts\Salespeople
    CONT_COMP: Mailbox - Marco Mels\Contacts\Company Contacts
    CONT_PERS: Mailbox - Marco Mels\Contacts\Person Contacts
    TASK: Mailbox - Marco Mels\Task
    APP: Mailbox - Marco Mels\Calendar

    - perform a Full Synchronization
    - go to the synchronized contact Marco Mels and populate it with an E-mail address
    - perform a normal Synchronization
    - go to Sales & Marketing / Sales / Salespeople
    - create a ToDo of Meeting type for salesperson Marco Mels
    - add a Contact attendee called John Doe (
    johndoe@dummy.nl) and finish the meeting creation
    - go to Sales & Marketing / Sales / Salespeople 
    - create a ToDo of Meeting type for salesperson Marco Mels
    - add a Contact attendee called John Doe (
    doejohn@123,nl) and finish the meeting creation
    - synchronize the ToDo's

    Result:
    The ToDo is created as a meeting in Outlook
    The Outlook Addin contains a red light showing an error for the created meeting:

    The related item for the synchronized Outlook item is not found in the specified folders. The following values were expected:.

    The Scheduling tab of the synchronized meeting contains one underlined entry:
    Marco Mels: underlined
    John Doe: not underlined

    - press CTRL+K and select the correct John Doe and press OK
    - synchronize the meeting requests, etc.

    Result:
    The ToDo is created as a meeting in Outlook.
    The Outlook Addin now does not contain a red light showing an error for the created meeting:

    In the beginning of the analysis we thought that this behavior was only seen if you had contacts with the same name, but with different email addresses. Then it would be natural Outlook behavior and the error message would just indicate that the user should verify the meeting and ensure the right contacts. The proposed solution to prevent the error message when it is not needed. The suggested fix now also ensures the the email address is being used in the attendee field. Combining the two fields name and email address would ensure that Outlook has enough information to actually resolve who is the contact.

    A hot fix exists for this issue and is described in KB article:
    983614 The related item for the synchronized Outlook item is not found in the specified folders. The following values were expected:.
    https://mbs.microsoft.com/knowledgebase/KBDisplay.aspx?scid=kb;EN-US;983614

    Marco Mels
    CSS EMEA

    This posting is provided "AS IS" with no warranties, and confers no rights

  • Microsoft Dynamics NAV Team Blog

    Useful, Usable, and Desirable

    • 5 Comments

    Today, I would like to tell you how the User Experience team for Microsoft Dynamics NAV does research to validate that our products are indeed Useful, Usable, and Desirable.

    My name is Arne de Booij and I am a so-called User Experience Researcher working with the Microsoft Dynamics NAV team. That means that I need to understand on a personal level what your relationship to our product is. I support various development teams by answering their user related questions through performing all kinds of research activities with current and future users. Questions I get asked a lot are, for example:

    • Can people actually figure out what to do here?
    • What is someone trying to accomplish when they do this?
    • Does someone really want or need this functionality?

    There are various ways to answer these questions, depending on, for example, whether we are getting ready to make software and therefore are looking at an early sketch of the user interface or whether we are out at a customer site where our product has been installed and have direct access to the users that this particular user interface has been designed for. The answers that we get from this research will help make our product better for our users by answering their needs and helping them work more efficiently.

    Recently, we completed a quite extensive research project to answer some questions about the RoleTailored Client (RTC) that we shipped with Microsoft Dynamics NAV 2009. This new client enables our users to “tailor” the software to their own unique needs in their own unique role. Delivering the product was the result of a very long design and development process and we wanted to know how our users are using this new client so that we can assess what adjustments, if any, we should make as we continue down the path of RoleTailored applications. We wanted to know things like:

    • Which new features of the RTC are people using?
    • Which aren’t they using and why?
    • How do users perceive the impact of the RTC on their productivity?

    During late 2009 and early 2010, we conducted research with the help of companies that were using the Microsoft Dynamics NAV 2009 RTC product to run their businesses. We visited each company for an entire day. During the visits, we started with a 1- 1½ hour interview with a company representative, usually someone from the IT department, to get more information about the company and their setup of Microsoft Dynamics NAV 2009. After that, we sat down at the desks of the people who actually use the RTC for their daily work. We asked them to show us how they performed their most important day-to-day tasks. During this time, we took photographs, asked follow up questions and of course, took a lot of notes. For each task they showed us, we also asked a few questions to help us measure the satisfaction they had performing that task in the RTC. After the visit, we continued to gather information by sending participants a link to a post-visit survey used to measure the level of productivity a participant experienced with the RTC. Let’s look at the results.

    In total, 53 participants, working for 16 different companies, participated in this research project. The companies were located in the United States, Canada, the United Kingdom and Germany. The companies where the participants worked were active in, for example, the Software industry, Wholesale and Manufacturing (19%), Distribution and Professional Services (13%), Charity, Retail and as a Dynamics Partner (6%).

    62% of participants had not used a previous version of Microsoft Dynamics NAV before they started using Microsoft Dynamics NAV 2009. 38% had used a previous version of Microsoft Dynamics NAV before.

    Most participants (42%) were working in the Finance department of their company. Other main departments were Warehouse (13%), Customer Service (9%), Purchasing (8%), IT (8%), Sales (6%) and Operations (6%). Participants had used Dynamics NAV 2009 for an average of 5.4 months (range 1-24 months) and were using Dynamics NAV 2009 for an average of 5.7 hours per day (with a range spanning 2 – 8 hours).

    Like any good research study, we learned a lot!

    The results told us that there a lot of good things our users are experiencing when they use the RoleTailored client. For example, people on the product reported high satisfaction and productivity while performing the tasks that are most important to them.

    But the results also shed a light on some things we need to improve. For example, there are still some tasks that require too many clicks or areas where finding the right information is still not immediately clear.

    But the biggest takeaway for us, by far, was that a lot of companies and their users were not taking full advantage of the many ways they can configure and personalize their own experience. For example, for things that our users do every day—like accessing a customer record or taking an order—we have enabled them to add those actions directly to the Action Pane. Because our users weren’t doing that, they have to perform unnecessary actions every time they needed that functionality, which decreases their level of productivity. Same holds true for not having all of the lists a user needs ready and loaded into their navigation pane--a very simple personalization to do. That means that users are forced to go to Departments to find that information.

    So what did we learn? We’ve still got work to do. Job security--they call it. Seriously though, there could be a lot of reasons that some users are not taking full advantage of the features in the product that allow them to tailor the solution to their specific needs, so we are continuing to investigate this.

    Which brings me to you… if you are reading this and have seen something similar in your company, please help us help you! Feel free to leave a comment with your thoughts on why this is the case and what we can do to help you get the most from your user experience.

    To learn more about RoleTailoring, try out these links:

    - Thinking RoleTailored Presentation at Microsoft Convergence 2010

    - Microsoft Dynamics is familiar to your people

  • Microsoft Dynamics NAV Team Blog

    Web services crash after first web service call

    • 4 Comments

    If you are testing out NAV Web services and find that you cannot make any calls beyond your initial and then find that the NST is no longer running, please try the following:

    Compile the following:

    Type

    ID

    Name

    CU

    6810

    EP Request Handler

    CU

    8700

    Mobile Document Dispatcher

    CU

    99008528

    BizTalk Appln. Srv. Startup


    The error commonly occurs because one or more of these three codeunits do not have an entry in table 2000000071 - Object Metadata. They are all called in codeunit 1 on CompanyClose(). This then means that the call itself will run fine, but the closing of the connection will cause the failure and the NST to crash.

     

     

    Lars Thomsen
    Support Engineer
    Microsoft Support

  • Microsoft Dynamics NAV Team Blog

    Synchronizing Company contacts and Person contacts to one dedicated Contacts folder using a new Outlook Synch. Entity

    • 4 Comments

    There have been many requests for some weeks if it is possible to synchronize contacts of Company type and contacts of Person type in Dynamics NAV to one single folder in Outlook. The answer is: Yes, this is possible. The question is: How should we do this? This blog posting will describe how this can be done. It is not difficult, but some steps needs to be done very careful.

    First of all, ensure the Outlook Synch User Setup form is empty. To do so, follow steps below:

    • Go to Administration, Application Setup, Microsoft Office Outlook Integration
    • Select Outlook Synch. User Setup
    • Select all rows and press F4 to delete the lines
    • Press Yes to confirm deletion

    Second, I would reset all demo entities to default values. To do so, follow steps below:

    • Go to Administration, Application Setup, Microsoft Office Outlook Integration
    • Select Outlook Synch. Entities
    • Select Code and press F5
    • Select CONT_SP
    • Press Sync. Entity button and select Reset to defaults
    • Select Microsoft Dynamics NAV Salespeople
    • Press OK
    • Repeat the above steps for the other entities taking the following order into account: CONT_COMP, CONT_PERS, TASK and finally repeat the steps for APP entity

    Now it is time to create a new entity. To do so, follow steps below:

    • Go to Administration, Application Setup, Microsoft Office Outlook Integration
    • Select Outlook Synch. Entities
    • Select Code and press F3
    • Type a name in the Code field, e.g.: CONT_ALL
    • Press Sync. Entity button and select Reset to defaults
    • Select Microsoft Dynamics NAV Contacts of the Company type
    • Press OK
    • Select Description and remove Microsoft Dynamics NAV Contacts of the Company type
    • Type in a new name, e.g.: Microsoft Dynamics NAV Contacts

    Another step that needs to be done is to create the correct dependencies for the TASK entity. To do so, follow steps below:

    • Go to Administration, Application Setup, Microsoft Office Outlook Integration
    • Select Outlook Synch. Entities
    • Select Code and press F5
    • Select TASK
    • Select No. of Dependencies next to the Outlook Collection Links and press F6

    The following will be shown:

    • Select a new line to add CONT_ALL as a new Depend. Synch. Entity Code
    • Select Table Relation for CONT_ALL and press F6
    • Ensure the following line is added  WHERE(No.=FIELD(Contact No.))
    • Close the Outlook Synch. Entity Element Task 10000 - Outlook Synch. Dependencies form

    Similar steps that need to be done are to create the correct dependencies for the APP entity. To do so, follow steps below:

    • Go to Administration, Application Setup, Microsoft Office Outlook Integration
    • Select Outlook Synch. Entities
    • Select Code and press F5
    • Select APP
    • Select No. of Dependencies next to Recipients and press F6

    The following will be shown:

    • Select a new line to add CONT_ALL as a new Depend. Synch. Entity Code
    • Select Condition for CONT_ALL and press F6
    • Ensure the following line is added  WHERE(Attendee Type=CONST(Contact))
    • Select Table Relation for CONT_ALL and press F6
    • Ensure the following line is added  WHERE(No.=FIELD(Contact No.))
    • Close the Outlook Synch. Entity Element APP 20000 - Outlook Synch. Dependencies form
    • Select No. of Dependencies next to Links and press F6

    The following will be shown:

     

    • Select a new line to add CONT_ALL as a new Depend. Synch. Entity Code
    • Select Condition for CONT_ALL and press F6
    • Ensure the following line is added  WHERE(Attendee Type=CONST(Contact))
    • Select Table Relation for CONT_ALL and press F6
    • Ensure the following line is added  WHERE(No.=FIELD(Contact No.))
    • Close the Outlook Synch. Entity Element APP 30000 - Outlook Synch. Dependencies form

    Now, it is time to delete the original demo entities. To do so, follow steps below:

    • Go to Administration, Application Setup, Microsoft Office Outlook Integration
    • Select Outlook Synch. Entities
    • Select Code and press F5
    • Select CONT_COMP
    • Press F4 to delete the entity
    • Press Yes twice to confirm deletion
    • Select Code and press F5
    • Select CONT_PERS
    • Press F4 to delete the entity
    • Press Yes twice to confirm deletion

    The entity list now looks like this:

    Last but not least, the Outlook Synch. User Setup form will have to be filled in with correct date.

    The following could be setup in Dynamics NAV:

    The following could be setup in Microsoft Outlook:

    Regards,

    Marco Mels
    CSS EMEA

    This posting is provided "AS IS" with no warranties, and confers no rights

  • Microsoft Dynamics NAV Team Blog

    Style Sheet Tool Extended

    • 3 Comments

    For those that have not used this before, the Style Sheet Tool is a free code sample used as an addition to standard Dynamics NAV application, for enhancing send-to Word functionality on Dynamics NAV by allowing simple and user-friendly style sheet customization. After lots of feedback form partners, I have added an extra dimension to this tool: the ability to export several tables with multiple records. Up to now, any number of tables was allowed provided they all show one record each, in addition to one table showing multiple records.

    This ’constraint’ is now removed, or rather, the design is adjusted to allow several tables showing multiple records each, to be included in merge document design.

    To align the tool with this extension, the following code needs to be replaced:

    Codeunit 680 : Style Sheet Management

    Global variables: add following two variables to the list of global variables of this codeunit

    Name                                            DataType

    NoOfMultiLineTables                     Integer

    MLCounter                                    Integer

    ManageMultiLineChanges trigger   (this code change applies to all versions of the tool)

    Old Code: 

    ...

    RemoveEndOfMultiLine(NodeTextValue);

    EXIT(Return);

    ...

    New Code:

    ...

    RemoveEndOfMultiLine(NodeTextValue);

    // EXIT(Return);                           //changed line

    ...

    CreateMultilLineSection trigger (the code marked as old code here differs a bit in different versions of the tool. The essence of the change is still the same, MLCounter is to be 'started' at the beginning of this trigger)

    Old Code:

    // Create section for Multi-Lines

    ChildNode := IOChildNode.parentNode;

    ...

    New Code:

    // Counter for multiple multiline sections //added line

    MLCounter +=1;                             //added line

    // Create section for Multi-Lines

    ChildNode := IOChildNode.parentNode;

    ...

    CreateMultiLineBody trigger

    Local variables: the following local variable is added to the trigger

    Name

    DataType

    MultilineEnd

    Boolean

    (the code marked as old code below differs a bit in different versions of the tool, and this line is called in several triggers in some versions of the tool. The essence of the change is though the same:

    EACH references to  multiline-section-properties (contained within this line: LoadAttributes(1,'name','multiline-section-properties');)

    should be replaced with  LoadAttributes(1,'name','multiline-section-properties'+FORMAT(MLCounter)) as that creates unique references to different multi-line sections by adding a counter to the end of each, where there previously was only ONE, called multiline-section-properties

    The example below is from version 1.1

    Old Code:

    ...

    ParentNode := ChildNode.parentNode;

    LoadAttributes(1,'name','multiline-section-properties');

    AddElement(ParentNode,NewChildNode,Text043,1);

    ...

    New Code:

    ...

    ParentNode := ChildNode.parentNode;

    // Add counter to multiline section name, for unique reference         // added line

    LoadAttributes(1,'name','multiline-section-properties'+FORMAT(MLCounter)); //changed line

    AddElement(ParentNode,NewChildNode,Text043,1);

    ...

    The following code change applies to all versions fo the tool:

    Old Code:

    ...

    ChildNodeList := ParentNode.childNodes;

    FOR NodeCount := 1 TO ChildNodeList.length DO BEGIN

      ChildNode := ChildNodeList.item(NodeCount - 1);

      TempNodeName := ChildNode.nodeName;

      IF TempNodeName = Text043 THEN

        MultiLineNodeCount[1] := NodeCount;

      TempNodeValue := GetTextNodeValue(ChildNode);

      IF TempNodeValue <> '' THEN

        MultiLineNodeCount[2] := NodeCount - 1;

    END;

    // If MULTILINE_END is not found then set end to number of nodes.

    IF MultiLineNodeCount[2] = 0 THEN

      MultiLineNodeCount[2] := NodeCount;

    ...

    New Code:

    ...

    ChildNodeList := ParentNode.childNodes;

    NodeCount := 1;                                            //added line

    WHILE (NodeCount <= ChildNodeList.length) AND

          (NOT MultilineEnd) DO BEGIN                          //changed line

    // exit the loop when next multiline end is found          //added line

      ChildNode := ChildNodeList.item(NodeCount - 1);

      TempNodeName := ChildNode.nodeName;

      IF TempNodeName = Text043 THEN BEGIN                     //changed line

        MultiLineNodeCount[1] := NodeCount;

      END;

      TempNodeValue := GetTextNodeValue(ChildNode);

      IF TempNodeValue <> '' THEN BEGIN                        //changed line

        IF STRPOS(TempNodeValue,Text021) <> 0 THEN

          MultilineEnd := TRUE;                                //added line

        MultiLineNodeCount[2] := NodeCount - 1;

      END;                                                     //added line

      NodeCount +=1;                                           //added line

    END;

    IF NodeCount <= ChildNodeList.length THEN

      NodeCount := NodeCount -1;                               //added line

    MultilineEnd := FALSE;                                     //added line

    // If MULTILINE_END is not found then set end to number of nodes.

    IF MultiLineNodeCount[2] = 0 THEN

      MultiLineNodeCount[2] := NodeCount;

    ...

    The following code change applies to all versions fo the tool:

    RemoveEndOfMultiline Trigger

    Old Code:

    // Remove end node of Multi-Lines

    ChildNodeList := XMLDoc.getElementsByTagName('w:r');

    FOR NodeCount := 1 TO ChildNodeList.length DO BEGIN

      ChildNode := ChildNodeList.item(NodeCount - 1);

      ParentNode := ChildNode.parentNode;

      IF STRPOS(GetTextNodeValue(ChildNode),Text021) <> 0 THEN BEGIN

        ParentNode.removeChild(ChildNode);

        EXIT;

      END;

    END;

    New Code:

    Add the following parameter to this trigger:

    Name                        DataType    Length

    NodeTextValue  Text     250    

    // Remove end node of Multi-Lines

    // nodetextvalue = multiline_begin_tablename

    NodeTextValue := COPYSTR(NodeTextValue,17,MAXSTRLEN(NodeTextValue));  //added line

    ChildNodeList := XMLDoc.getElementsByTagName('w:r');

    FOR NodeCount := 1 TO ChildNodeList.length DO BEGIN

      ChildNode := ChildNodeList.item(NodeCount - 1);

      ParentNode := ChildNode.parentNode;

      IF STRPOS(GetTextNodeValue(ChildNode),Text021) <> 0 THEN BEGIN

      //Check if this is the right MULTILINE_END to remove                // added line

        IF STRPOS(GetTextNodeValue(ChildNode),Text021+'_'+NodeTextValue) <>0 THEN //added line

          ParentNode.removeChild(ChildNode);

      // EXIT; // remove all ends                                        //changed line

      END;

    END;

    Replace all occurences of the call to this trigger in the code:

    RemoveEndOfMultiline;

     with

    RemoveEndOfMultiline(NodeTextValue);

    The extended codeunit 680 object is also attached.

    Note: Code changes described apply to all versions of the tool, the codeunit attached applies to version 1.1 

    You can direct your questions or feedback to jthunes@microsoft.com

  • Microsoft Dynamics NAV Team Blog

    Now Available: Microsoft Dynamics NAV How Do I videos on MSDN

    • 2 Comments

    Check out the new videos on MSDN. http://msdn.microsoft.com/bb629407.aspx. These videos target the developer audience for Microsoft Dynamics NAV 2009 SP1. The current offerings include:

    • Outlook Synchronization Configuration
    • Warranty Lots in Warehouse Management
    • Revaluation Journal Process for Inventory
    • Expiration Lots in Warehouse Management
    • Exact Cost Reversal

    More videos are in the works and will target both the platform and the application, so check back often to see what's been added. All videos are in English.

     

  • Microsoft Dynamics NAV Team Blog

    Books! Five Options for Learning More About How to Create RoleTailored Solutions with Microsoft Dynamics NAV (Updated!)

    • 1 Comments

    [Updated with a fifth book!]

    This month the fourth fifth English-language book on Microsoft Dynamics NAV 2009 is being released. For those of us working on Dynamics NAV, it is exciting to see that partners are so invested in our product that they eagerly spend months writing a book to help other partners be more productive when creating Dynamics NAV solutions. The latest book is Microsoft Dynamics NAV 2009 Application Design by Mark Brummel, whom I recently met at Directions EMEA.

    Here's the list of all four five books:

    • Microsoft Dynamics NAV 2009 Application Design, by Mark Brummel. Mark walks the reader through the Microsoft Dynamics NAV application architecture, and explains in detail how a Dynamics NAV partner can customize and extend the application, particularly for industry verticals. Using an extended tutorial, he demonstrates how a partner would create a custom RoleTailored implementation. Finally, Mark provides some guidance on the full software development lifecycle, from requirements gathering to development, deployment, and on-going support.
    • Programming Microsoft Dynamics NAV 2009, by David Studebaker. After the Microsoft Dynamics NAV developer documentation (see MSDN), this book is the bible on how to program Dynamics NAV. While his previous book (Programming Microsoft Dynamics NAV) focused on the Classic client, this book is devoted to developing for the RoleTailored client. Dave explains in detail the C/AL language; how to debug your application; and how to create objects, use triggers, add business logic, and design pages and reports. If you are a Dynamics NAV developer, or a consultant who wants insight into Dynamics NAV design and development, you should read this book.
    • Implementing Microsoft Dynamics NAV 2009, by David Roys and Vjekoslav Babić. David and Vjekoslav introduce the reader to the new RoleTailored client and the power of RoleTailored solutions. They then provide guidance on how to implement a custom solution across the full software development lifecycle. They also cover extending Microsoft Dynamics NAV with web services and .NET-based add-ins. Finally, they provide a real-world tutorial on how to create a Dynamics NAV add-in. The book comes with a companion website: http://www.teachmenav.com/.
    • The NAV/SQL Performance Field Guide, by Jörg Stryk. Now that the Classic database is going away in NAV "7", it is more important than ever to understand how to administer and optimize performance in Microsoft SQL Server for Microsoft Dynamics NAV. Jörg provides specific guidance on how to tune both SQL Server and your Dynamics NAV code to increase application performance.
    • [UPDATE] ERP and Business Processes, illustrated with Microsoft Dynamics NAV 2009, by Hans van der Hoeven. In his primer on the processes that small and medium-sized companies use to run their business, Hans uses Microsoft Dynamics NAV 2009 to demonstrate how these business processes might be expressed in an ERP software package. While this is not a book about Dynamics NAV, consultants and business managers may find it useful to learn ERP concepts and processes by using the context of Microsoft Dynamics NAV.

    If you want to increase your skills on developing a Microsoft Dynamics NAV solution—particularly if you want to better understand how to create a RoleTailored solution—I recommend that you get your hands on one, or even all four five, of these books.

    — Paul Chapman

  • Microsoft Dynamics NAV Team Blog

    Outlook Synchronization: working with conditions in several scenario's

    • 0 Comments

    To limit the synchronized data and for simplicity reasons, we usually recommend to create conditions like the following:

    mmels APP                  WHERE(Salesperson Code=CONST(MME))               1
    mmels CONT_COMP WHERE(Salesperson Code=CONST(MME))
    mmels CONT_PERS  WHERE(Salesperson Code=CONST(MME))
    mmels CONT_SP       WHERE(Salesperson Code=CONST(MME))
    mmels TASK               WHERE(Salesperson Code=CONST(MME))               1

    Only contacts that have an assigned salesperson (MME in this example), will be synchronized. This is a good way to limit the data. For the contact entities, other suggestions are also possible. E.g.:

    mmels APP                  WHERE(Salesperson Code=CONST(MME))               1
    mmels CONT_COMP WHERE(Country/Region Code=CONST(EMEA))
    mmels CONT_PERS  WHERE(Country/Region Code=CONST(EMEA))
    mmels CONT_SP       WHERE(Salesperson Code=CONST(MME))
    mmels TASK               WHERE(Salesperson Code=CONST(MME))               1

    In this example above, only company and person contacts in EMEA will be synchronized. It would be nice to have the other regions synched as well, wouldn't it? In the Outlook Synch. Entities, we can easily create new entities and have them reset to default values. In the example below, company contacts in Latin America needs to be synched as well. You can of course do the same for any other region, company and/or person, etc.
    1. select Administration, Microsoft Office Outlook Integration, Outlook Synch. Entities
    2. select Code and press F3
    3. in the Code field type in CONT_LATAM
    4. press button Synch. Entity
    5. select Reset to Defaults, select "Microsoft Dynamics NAV Contacts of the Company type", press OK
    6. press button Synch. Entity, select Register in Change Log Setup

    Now for the Outlook Synch User, add the newly created entity and create a condition for Latin America, etc. The result would be like this:

    mmels APP                    WHERE(Salesperson Code=CONST(MME))               1
    mmels CONT_COMP   WHERE(Country/Region Code=CONST(EMEA))
    mmels CONT_PERS    WHERE(Country/Region Code=CONST(EMEA))
    mmels CONT_SP         WHERE(Salesperson Code=CONST(MME))
    mmels CONT_LATAM WHERE(Country/Region Code=CONST(LATAM))
    mmels TASK                 WHERE(Salesperson Code=CONST(MME))               1

    In this example, company and person contacts in EMEA will be synchronized but also company contacts in Latin America. Remember that per entity a folder in Outlook should be created and assigned via the Outlook Addin. In a later posting, I will describe how to create one entity that will synch company and person contacts to one folder. That is a really a nice to have.

    When working with TASK and APP, the conditions given in the example above are mandatory. A task in Outlook must contain an owner and an appointment in Outlook must contain an organizer.

    For the CONT_SP entity there is some flexibility. In the above example, only one salesperson would be synchronized for the Outlook Synch User called mmels.Let's assume a ToDo must be created in Dynamics NAV for a given contact and the required attendees are two salespersons / Outlook Synch Users. The manual tells us that when working with tasks and appointments in an Exchange Server environment, the E-mail field must be populated from the Exchange Address Book. Also see earlier blog and the relevant whitepaper:
    http://blogs.msdn.com/b/nav/archive/2008/11/04/tip-1-the-related-item-for-the-synchronized-outlook-item-is-not-found-in-the-specified-folders-the-following-values-were-expected.aspx
    After first full synchronization, the existing salespersons can be populated with an E-mail address and then synchronized back to Dynamics NAV via a normal synchronization.

    To avoid the situation that in this scenario only one salesperson is synchronized correctly and populated with the required E-mail field, we now recommend to remove the condition from the CONT_SP entity, The example above would now look like this:

    mmels APP                  WHERE(Salesperson Code=CONST(MME))               1
    mmels CONT_COMP WHERE(Salesperson Code=CONST(MME))
    mmels CONT_PERS  WHERE(Salesperson Code=CONST(MME))
    mmels CONT_SP     
    mmels TASK               WHERE(Salesperson Code=CONST(MME))               1

    Regards,

    Marco Mels
    CSS EMEA

    This posting is provided "AS IS" with no warranties, and confers no rights

  • Microsoft Dynamics NAV Team Blog

    Outlook Addin invisible or inactive with error in debug log Dump of exception type 'System.IO.FileLoadException'

    • 0 Comments

    Sometimes the Outlook Addin, especially after a reinstall, becomes inactive or the Outlook Addin does not show up at all. The reason behind this is that the two below mentioned files have different build releases which causes the assemblies not to be loaded. After enabling the debug log file, the following error log can be seen:

    Error: 23.04.2009 11:51:47 [1] Dump of exception type 'System.IO.FileLoadException'
    Message: Could not load file or assembly 'Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.resources, Version=5.0.26084.0, Culture=nb-NO, PublicKeyToken=4d69abd5d321bc2b' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
    Stack trace: at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
    at System.Reflection.Assembly.InternalGetSatelliteAssembly(CultureInfo culture, Version version, Boolean throwOnFileNotFound)
    at System.Resources.ResourceManager.GetSatelliteAssembly(CultureInfo lookForCulture)
    at Microsoft.Office.Core.CommandBarsClass.get_Item(Object Index)
    at Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.Connect.OnStartupComplete(Array& custom)
    Inner exception: System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.resources, Version=5.0.26084.0, Culture=nb-NO, PublicKeyToken=4d69abd5d321bc2b' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
    File name: 'Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.resources, Version=5.0.26084.0, Culture=nb-NO, PublicKeyToken=4d69abd5d321bc2b'

    The following two files have different build releases:
    - Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.resources.dll 5.0.25791.0
    - Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn .dll 5.0.26084.0

    A hot fix exists for this issue and is described in KB article:
    974581 The Microsoft Dynamics NAV Sync Add-in is not displayed or unavailable in Outlook and an error message is logged in the debug log: "Could not load file or assembly"
    https://mbs.microsoft.com/knowledgebase/KBDisplay.aspx?scid=kb;EN-US;974581

    Marco Mels
    CSS EMEA

    This posting is provided "AS IS" with no warranties, and confers no rights

     

  • Microsoft Dynamics NAV Team Blog

    Outlook Addin generates an error: This attendee already exists

    • 0 Comments

    There are two ways to create meetings in Outlook:
    1. directly from the Calendar folder
    2. directly from the Contact, right click on the contact, press Create and then select Meeting

    The latter would open a new form where you can enter the required data, etc. Not a big deal but after synchronization from Outlook to Dynamics NAV, the Outlook Addin gives an error:

      This attendee already exists

    When creating a meeting by right clicking a contact, a link is added to a meeting for that contact. In order to see the linked contacts, go to Tools, Options, Contact Options, Show Linking on all forms. It is then visible at the bottom of a meeting form.

    Linked contacts are synchronized as to-do antendees (tab5199) with a flag attendance type (field 3) set to false. While normal contacts have this flag set to true. If there is the same contact present as a meeting attendee in Outlook and as a linked contact, the error occurs when synching, "This attendee already exists".

    It is not supported to have multiple attendees with the same email in outlook, added as recipients or as links since this prevents a correct synchronization to Dynamisc NAV.  As a workaround, Links should be removed from the APP entity, alternatively a duplicate attendee or a link should be removed from a meeting in Oultook before synchronizing the meeting.

    To remove the Links from the APP entity, the following needs to be done:
    - go to Administration, Application Setup, Microsoft Office Outlook Integration, Outlook Synch. User Setup
    - select the APP entity, select No. of Elements and press F6
    - select Links and press F4, Yes to delete the Links Outlook Collection from the APP entity in the Outlook Synch. Entity APP - Outlook Synch. Setup Details form

    Marco Mels
    CSS EMEA

    This posting is provided "AS IS" with no warranties, and confers no rights

  • Microsoft Dynamics NAV Team Blog

    New Release of the Application Test Toolset

    • 0 Comments

    A new release of the Application Test Toolset for Microsoft Dynamics NAV 2009 SP1 is available on PartnerSource. This toolset builds on top of the testability features that were released with Microsoft Dynamics NAV 2009 SP1. These features add test capabilities to the development environment, the C/AL language, and the runtime platform. They enable the adoption of a test-driven development style and the development of automated test suites that execute fast and reliably.

    The main theme of this new release is the addition of a significant body of C/AL tests. Overall, it includes:

    • 226 application tests (covering areas such as service management, sales, purchasing, inventory management, jobs, and finance)
    • Application-specific test libraries (e.g., creation functions)
    • Generic test libraries (e.g., assertions, logging)
    • Backup management
    • Test case management

    Keep an eye on this blog for more posts on testing NAV solutions in the coming weeks.

     

    Bas Graaf

Page 1 of 1 (11 items)