Microsoft Lystavlen - the Online display board

Lystavlen is the danish word for 'the display board'. This blog is all about sharing the beauty of Microsoft Online Services

October, 2013

  • New and updated topics to the CRM 2013 Implementation Guide

    New and updated topics to the CRM 2013 Implementation Guide


    Create and edit business rules
    Added two items to the list of Limitations for business rules about how business rules are cached for Microsoft Dynamics CRM for tablets and how lookup values are set.


    Create and edit processes
    Added the "Are processes active when they are imported?" section to describe new behavior when importing solutions that contain processes.


    Create an organization (PowerShell)
    Updated the sample code to correctly check the status of the operation.


    CRM for tablets and CRM for phones limitations and known issues
    Added a new topic that describes the limitations and known issues when you use Microsoft Dynamics CRM for tablets or Microsoft Dynamics CRM for phones.


    Customize CRM for tablets
    Added a note to the Change commands for CRM for tablets section to point out that icons configured for commands won’t display and labels that are too long will be truncated.


    Manage users
    Added the CRM user record fields populated from Active Directory section to describe the synchronization behavior and the fields populated in CRM user records from Active Directory.


    Mobile phone support for Microsoft Dynamics CRM 2013 and Microsoft Dynamics CRM Online
    Added a new topic that describes mobile phone support with CRM 2013 and CRM Online.


    Verify new areas are available in the navigation bar
    Added this topic to describe a new step added to the Post-upgrade steps for servers.

  • CRM 2013: Custom Tool Tips

    In CRM 2011, tool tips are minimal and typically repeat the display name attribute of the field.

    These type of tool tips are useful for unlabeled UI, however most form fields have labels assigned to them and users need more information when entering or selecting data. Explanatory tooltips provide helpful text to address known user questions, explain terminology or concepts, and help end-users make good decisions to stay on task.

    In CRM 2013, custom tool tips aim to improve your user experience by:

    • Providing information on how to use and complete forms, right on the page
    • Allowing your organization to display your business-specific information and processes to your users -- right in CRM forms.

    You can display entity attribute “Description” as tool tips on fields, buttons, etc. on existing forms for customizable entities. This will work against OOB and custom attributes.



       Fig 1: Hovering over the label "Fur Type" I get the tooltip

     

    To update tool tips when you are customizing an entity or entity attribute simply edit the "Description" attribute via the Settings -> Customize the System

     

    In the customazation interface you can work with the "Description" attribute through Form editor

    or the field editor

     

     

     

     

     

  • CRM 2013: Using Multiple Business Rules

    In my previous post I built a Business Rule to do simple calculations. For the sake of simplicity I purposedly left out the simple housekeeping that most people will want to do i situations like the one I used in the example.

    In this post I'll show you how the logic in the above example can be extended a bit, by invoking a second rule (set a field value and hide a field). In addition to invoking a second rule, I'll edit my original rule to make sure a field ("Result") is visible if the user opts for automatic calculations.

    On a side note - this example also shows you how to implement "If-Then-Else" logic using an option field and two rules, firing for respectively option 1 and option 2.

     

    So, continuing my example from the post "CRM 2013: Understanding Portable Business Logic"

    1. I revisit my Account entity and the underlying Business Rule
    2. I add a new rule "Zero Result"
    3. I edit the rule "Calc This"

     

    1. I navigate to "Customize the System", expand the "Showcase" entity, and click Business Rules. Then I click New to create a new Business Rule

    2. I name the second rule "Zero Result" and define one condition and two actions - if the two option field "DoTheMath" is set to "No" then set the value of the whole number field to 0 and hide the field

     

    3. I edit the existing rule "Calc This" - adding one more action to ensure that the "Result" field is visible if "DoTheMath" = "Yes"

     

    What I'm leveraging here is that if I add multiple business rules to an entity, the rules will run in the order they were added (the last modified business rule always runs last - not important in my scenario, though)

    From now on, when I select "Yes" in "DoTheMath" the calculation will be performed, a result will be set in the "Result" field, and the "Result" field will be visible

    On the other hand, if I select "No" in "DoTheMath" no calculation will be performed, the value zero (0) will be set in the "Result" field, and the "Result" field will be hidden

    I welcome you to give our new Business Rules a try yourself - they are pretty powerful. As seen above you can easily create If-Then-Else logic using two or more rules.

     

     

     

  • CRM 2013: Understanding Portable Business Logic

    In CRM 2013  you can do client side scripting without knowing anything about JavaScript!

    We are introducing a simple declarative interface to help you implement and maintain your fast changing, commonly used business rules. The rules will be applied to Main and Quick Create forms for the web application, Outlook and CRM for Tablets.Thats why we call them Portable.

    Business rules are designed to allow you - even if you have no programming experience - to create client side scripting to run on forms. You will use a business rule editor to create and modify these Business Rules through the UI (Solution Explorer: Settings -> Customizations -> Customize the system -> [ENTITY] -> Business Rules)

    The code behind the rules you create in the editor are bound by the client SDK and this will help reduce unsupported client customizations. Also, they are built on top of workflow infrastructure.

     

    Conditions and Actions

    Business rules consist of a collection of conditions and actions that can be used to enforce simple business logic of an organization.Conditions consist of a field, operator and operand (value, type or expression) that make up a logical statement that evaluates to true or false. If all the conditions of a rule evaluate to true, then the actions are executed.

     

    What you can do with Actions

    A subset of the capabilities provided by form scripts are available via the following Actions:

    • Validate data and show error message
    • Set field value
    • Enable or disable field 
    • Show or Hide a field
    • Set field requirement levels

    Validate data and show error message rules

    • Data in fields (as values) can be validated and comparison can be made between different fields.
    • If the action states throwing an error message, you can define the control that should display the message. 

    Show or Hide a field rules

    • You can change whether the field is displayed in the form. The options are Show Field and Hide Field.
    • These are applicable to only fields and not for tabs, sections or controls like web resources and iframes.
    • If you do not specify any conditions, this is similar to setting state by default.

    Enable or disable field rules

    • The options are Lock and Unlock. When the field is locked, you will not be able to edit the value in the field.
    • If you do not specify any conditions, this is similar to locking/unlocking the field by default.

    Set field value rules

    • Choose the Field and Type. There are three Types:
      1. Field - Use this type to set the value of one form field with the value of another field.
      2. Value - Use this type to set the value of a form field with a value you enter.
      3. Formula - This option only appears for numerical or date data types. It does not appear for fields that contain text. Use this type to set the value to the result of a simple calculation that may use either a value in another form field or a value you enter.
    • If you do not specify any condition, this is similar to setting a default value for the field.

    Set field requirement rules

    • The options are Not Business Required and Business Required. There is no option to set this to business recommended.
    • If you do not specify any condition, this is similar to setting the default business requirement state.

     

    Configuring Conditions

    To add a condition, click the "+" icon and a new condition row will appear with default values set.

    Type in the field name to set the Field and then choose the appropriate Operator (see later). Operator options will change depending on the data type of the field.

    You can chose three different types of conditions:

    1. Field - Use this type to compare the value of one form field with another.
    2. Value - Use this type to compare the value of one form field with a value you enter.
    3. Formula - This option only appears for numerical or date data types. It does not appear for fields that contain text. Use this type to compare the result of a simple calculation that may use either a value in another form field or a value you enter.

    When you are finished entering or editing the rule, click the check mark icon to save it or the (X) icon to remove it.

    Expressions

    • An expression always has two operands and an operator in the following format: <operand1><operator> <operand2>
    • The operands can be two fields of same/similar data type or between a field and a constant. The business rule editor ensures that a mismatch does not occur.
    • An expression can return a value <operand1><arithmetic operator><operand2> when it is using a formula.(E.g.: AnnualRevenue SUBTRACT attribute1)
    • Operators:

       

     

    To illustrate the above I've created an example. In this example I create an entity ("Showcase") with the sole purpose of helping me do automatic calculations if I so choose.

    If I pick Yes in a custom two option field "DoTheMath" my Business Rule will add the value I write in a custom whole number field "FirstInteger" to the value I write a custom whole number field "SecondInteger" and place the result in a custom field "Result".

    The defailt view for my new entity I call "Calculations"


       Fig 1: Two records, note the last record in which my rule has done the math for me

     


       Fig 2: I expose the new entity in the UI

     

    How its set up

    I create a custom entity, and I select where I want to access it from - which modules in CRM 


       Fig 3: The entity is available to me from several modules

     

    I also want to expose the entity in CRM for Tablets as well (see later) so I check the "CRM for Tablets" checkbox under the "Outlook and Mobile" section


       Fig 4: Important to check the "CRM for Tablets" to expose the entity there

     

    I create four fields

    • a two option field "DoTheMath" 
    • three whole number fields; "FirstInteger", "SecondInteger", and "Result"

     
       Fig 5: Four custom fields to my entity

     

    I create a view with four extra columns corresponding to the four custom fields


       Fig 6: custom view

     

    I modify the main form to accomodate the custom fields

     
        Fig 7: modified form

     

    I add a new Business Rule using the "Business Rules" entry in the sitemap and the "New" button


          Fig 8: Business Rules for my entity

     

    My business rule "Calc This"  is setup according to the screenshot below - if I have a "Yes" in the "DoTheMath" field AND values in the "FirstInteger" and "SecondInteger" fields, the rule will do the calculation for me


       Fig 9: conditions and action in the business rule

     

    Note that when I pick the "DoTheMath" field in field chooser to the left in the editor, and "Value" in the "Type" chooser, the "Yes/No" values corresponding to the type for the "DoTheMath" field is automatically made available in the condition


       Fig 10: building the first part of the condition

     

    I also want the "FirstInteger" and "SecondInteger" fields to contain data before calculations are done


       Fig 11: adding AND conditions

     

    Moving on to the Actions.

    My rule should set the value of the field "Result", using a Formula ("FirstInteger" PLUS "SecondInteger").

    First I pick "Result" in the Field chooser. Then I pick Formula in the Type chooser, to reveal a formula building block right below the Field/Type choosers.

    In the formula building block I pick the field "FirstInteger", then the operator "+" and the type Field, which lets me pick the "SecondInteger" field in the lower rightmost Field chooser


       Fig 12: Formula building block

     

    I activate the rule and I'm ready to test the rule (remember to Activate - otherwise it won't fire)

    Testing the rule, I pick "Yes" in the "DoTheMath" field and input numbers in the "FirstInteger" and "SecondInteger" field.


       Fig 13: Testing the rule

    If all conditions are met, the moment I click in any field (change focus) the rule will perform its action


       Fig 14: The rule have fired as expected

     

    If I pick "No" in the "DoTheMath" field, the rule shall do nothing (note: at this point you probably want to do more, eg. hide/clear the "Result" field - see how in this additional example)


       Fig 15: No means no calculation

     

     

    So the rule works as expected in the web client.

    Remember I ticked the "CRM for Tablets" checkbox when I created the "Showcase" entity? I did that because I really like my new CRM for Tablets app, and I'd like to leverage my new entity "Showcase", including the business rule, in that app as well.

    The default view in the CRM for Tablet app is the "Sales Dasboard", displaying six components ("My Activities", "My Open Opportunities" a.s.o)


      Fig 16: Sales Dashboard in CRM for Tablets

     

    In order to see my "Showcase" entity in the dashboard I'm going to replace the Lead component with my "Showcase" component.

    To edit the "Sales Dashboard" shown in the CRM for Tablets I must go to the web client and customize the system dashboard "Sales Dashboard". 


       Fig 17: editiing the Sales Dashboard

     

    The "Sales Dashboard" has the same limitations as all other Dashboards, including a limit of 6 components. I cannot 'just' add another component for my entity, so I click the component I want to edit (the component currently displaying "My Open Leads") 


       Fig 18: the component to edit is selected

     

    I point the component to my custom "Showcase" entity


       Fig 19: pointing the component to my custom entity

     

    I check to see the changes has been saved and Publish


       Fig 20: changes are saved

     

    Next time I open my CRM for Tablets the server side configurations are downloaded and I now have my entity "Showcase" available to me in CRM for Tablets as well


       Fig 21: Sales Dashboard now displays my entity

     

    I can now create new records of the "Showcase" type using the Commandbar button New Record (to display the commandbar on tablet I swipe up from the bottom of the screen - or rightclick if using a mouse)


       Fig 22: the 'New Record' button in Commandbar displays list of available entities, including my new entity

     

    And sure enough (thats why we call it portable business logic) my rule works as expected in CRM for Tablets too


       Fig 23: creating record

     


       Fig 24: input values

     


       Fig 25: business rule fired

     

    I hope you agree with me that the Business Rules is a powerful addition to CRM for non-programmers - and I encourage you to give it a try yourself. You can easily create a 30 day free trial and give it a go. The CRM for Tablets app is free for licensed CRM users, and ready for you as well in selected online stores.

     

    You might also want to check out the addition to this example - "Using Multiple Business Rules" to implement If-Then-Else logic (and some simple housekeeping).

     

    Notes:

    • Business rules cannot be run across different entities. They have to be defined within the same entity.
    • By default, the business rules are always created in a deactivated/draft state and must be activated to start executing for the form.
    • The event handlers are determined by the platform based on the rule definition and involve the on-load event for the form and on-change events for the attributes being checked in the condition logic.
    • A new privilege for “Activate Business rules” under customization tab for security roles has been added. Without activating the business rule first, it will not be executed
    • Business Rules are imported/exported with the entities that they are attached to. It is not possible to export or import just a collection of business rules.
    • If there are multiple solutions, business rules will be run in the order in which the solutions were imported and the latest installed solution’s rules will run last.
    • If you package a managed/unmanaged solution, the states of the Business rules will be transported as is into target system: activated rules will be activated and deactivated rules will be deactivated
    • There are no limits on number of actions that can be attached to the business rule.
    • Business rules run only when the form loads and when field values change. They do not run when a record is saved.
    • Business rules work only with fields. Form scripts can interact with other visible elements such as tabs and sections within the form
    • When you set a field value using a business rule, any OnChange event handlers for that field will not run. This is to reduce the potential for a circular reference which could lead to an infinite loop.
    • If a Business Rule references a field that is not present on a form, the rule will simply not run. There will be no error message on a main form or a quick create form due to null checks and control availability checks.
    • Calling other JavaScript web resources in the system via the business rule editor is not possible.
    • There is no ability to connect to external data sources.

     

    See also:

    • Using Multiple Business Rules - link (adding another rule to the mix to implement "If-Then-Else logic")
  • Just Released: CRM for Tablets now available in the Windows Store

    We just released Dynamics CRM for Tablets to the Windows Store.

    Dynamics CRM is the essential business tool to help you stay connected and productive wherever you are. Stay up to date with your customer info—even when you’re on the go. Arrive prepared for every appointment, and update your notes, tasks, contacts, accounts, leads, and opportunities while the details are still fresh in your mind. Requires Microsoft Dynamics CRM 2013.

    Features

    • Access your activities, accounts, contacts, leads, and opportunities from an easy-to-use dashboard
    • Quickly enter customer data with only a few taps
    • Track progress for key performance indicators visually with charts
    • Access your personalized views so that you see the data most important to you
    • Instantly access the information most important to you by pinning tiles to your Start screen or app dashboard

     

     

    Details

    • Languages: English (United States), German (Germany), Spanish (Spain), French (France), Italian (Italy), Portuguese (Portugal)
    • Supported processors: x86, x64, ARM
    • System requirements: 2 GHz or faster 32-bit (x86) or 64-bit (x64) processor, 2 GB RAM, Multi-touch screen
    • Please note that the app currently (Oct 21, 2013) is not supported on 8.1 versions of Windows

     

    If you didnt install any prerelease versions of CRM for Tablets then go here to install the app

     

    Important if you installed any pre-release versions of CRM for tablets

    Please make sure you uninstall any pre-release versions of CRM for tablets before installing the released version for the store.

    1. Uninstall the app whilst logged on as yourusername
    2. Login to your PC as a different user
    3. Browse to c:\users\yourusername\appdata\local\microsoft\internet explorer and delete the Indexed DB directory (its a cache)
    4. Login again as yourusername
    5. Re-install the app

     

    See also

    • 30 day free CRM trial - link
    • Dynamics CRM in iTunes - link (Requires iOS 5.0 or later. Compatible with iPad)
    • CRM for Phones - link
    • Know Issues for CRM for Tablets and Phones - link
  • CRM 2013: Understanding Multi-Entity Search

    One of the great features available in the upcoming CRM for Tablets is the ability to execute a Quick Find query across multiple entities at once.  Quick Find is a core feature of Microsoft Dynamics CRM that has been available since version 1 of CRM. 

    In the web application and Microsoft Dynamics CRM Client for Office Outlook, you are currently able to search against one entity at a time. 

    The ability to search across multiple entities at once is new with this release and is currently only available within CRM for Tablets.  When you perform a multi-entity Quick Find, results are grouped by entity and sorted by the order specified in the Quick Find View for the entity. 

    It is important to understand that this feature uses the underlying Quick Find feature.  The only thing that is different is the ability for the app to submit multiple Quick Find queries that are processed in parallel.  The results returned for each entity would be the same as if you performed that same Quick Find search for the entity in the web application. 

    As with any Quick Find query the generated query uses a “starts with” condition.  For example:  If you search for “Vestas”, it would return any results where the searchable columns were found to match records that started with those characters. 

     

    Example 1: Multi-Entity Quick Find

    In this example I have an Account ('Vestas Wind Systems') with one Contact ('Villy Vindfang') and one Opportunity ('Stormende CRM') associated to it

     

    If I switch to my CRM for Tablets app, and hit the Search icon, I get the Seach page and can start typing what to seach for. In my example I'm looking for what I have on 'Vestas'

    You see that I get results from three entities; Accounts, Contacts and Opportunities

     

    If I start a search from the dashboard, the search will default to search across all entities enabled for multi-entity Quick Find.  If I'm are viewing a form or grid for a certain entity (ex. Account) and then I start a search, the search will default to filter based on that entity type. 

    In the upper-right corner of the application I get a drop-down field to change the current entity filter.  I can choose to search against a specific entity or choose 'None' to search against all entities enabled for multi-entity Quick Find.

    In the "Filter With" drop down I can select to filter on single entities, eg. Opportunity

    I get the Opportunity 'Stormende CRM'

     

    Example 2: configuring Quick Find

    Out of the Box I wouldn't have had a hit on Opportunities (when searching for 'Vestas') since the word 'Vestas' isnt found in the Opportunity Title ('Stormende CRM'). The reason why I *am* getting a hit is that I've configured the Quick Find Columns for the Opportunity entity to include the associated Account also.

    To do that I go to Settings -> Entities -> Opportunity -> Views and double-click the view 'Quick Find Open Opportunities'

    In the View I click Add Find Columns

    In the Add Find Columns I check the checkbox next to 'Account', click OK and then Publish Customizations

    With the above configurations I'm searching the Accounts also for Opportunities from now on.

     

    Search Configuration

    Seven entities are enabled for multi-entity Quick Find by default.  The default list of entities include:

    1. Account
    2. Contact
    3. Lead
    4. Opportunity
    5. User
    6. Competitor
    7. Activities

    If you are a System Administrator or System Customizer, you can customize which entities are available in your organization.  You can enable a maximum of 10 entities for multi-entity Quick Find. 

     

    Example 3: Adding Entities to the Search

    In this example I will add the Note entity to the search

     

    I navigate to Settings

    I open System Settings under Administration

    On the tab "General" I scroll down to the area "Set up Quick Find". I make sure that Yes is selected, and then click the Select button

     

    In the "Set up Multi-Entity Quick Find for Default Search" dialog I select Note in the list of 'Available Entities', and the click the Add button

    The Note entity is now added to the 'Selected Entities' list, ie the entitites that will appear in the multi-entity Quick Find results. 

    You can select entities from the Available Entities list and add them to the Selected Entities list by using the Add button.  Similarly you can select entities from the Selected Entities list and use the Remove button to prevent an entity from appearing in multi-entity Quick Find results.  You can select entities in the Selected Entities list and use the Move Up or Move Down buttons to change the order of the entities that appear in multi-entity Quick Find results.

    This change to the number of entities searched (done in the web client) wont be applied to the CRM for Tablets app automatically. However, next time you open the app, you'll have the option to download the changes to the Server Configuration.

    Click the Download button

    Once the changes are downloaded to your app, you'll be able to search Notes

    To test I create a new note

    I'm giving the note a title of 'Vestas Vinder'

    And sure enough, I now get at fourth column in my search results - I'm not only getting search results from the entites Accounts, Contacts and Opportunities - I'm also now getting results from the entity Note

     

    I hope you will get bundles of joy from the new Multi-Entity Quick Find feature available for CRM for Tablets (Windows 8, Windows RT and iPad)

     

     

    Notes

    • The multi-entity Quick Find configuration is not solution aware.  This means that if you export your customizations and settings from one organization to another, these settings will not be included.
    • Multi-Entity Quick Find query across maximum of 10 entities at once
    • You need to type at least 3 characters before you can perform a multi-entity Quick Find search.
    • When you configure the list of entities for Quick Find, the list will contain all entities and is not limited to those enabled for CRM for tablets.  However, when CRM for tablets executes a multi-entity quick find, it will filter out the entities that are not enabled for the mobile application.
    • Although it is possible to add a wildcard character (Ex. *Ski), this type of search should be avoided as it will not allow SQL to take advantage of any indexes. This can result in performance issues.

     

    Disclaimer

    "Microsoft Dynamics CRM 2013" is a pre-release product under development. The information in this blog post represents my personal understanding and expectations as of the date of this blog post. All pre-release product release dates and features specified are preliminary based on current expectations, and are subject to change without notice.

  • Demos: using the Legacy Feature check and Custom Code Validation Tools for Upgrade to CRM 2013

    The India Dynamics CRM Team Blog has published a blog post with two useful video walk-throughs on how to use two of the most important tools for customers about to upgrade to CRM 2013:

    • Microsoft Dynamics CRM 2013 Custom Code Validation Tool - designed to scan client side scripts (onLoad, onChange, onSave events) to detect code pieces using unsupported methods
    • Legacy Feature Check Tool - designed for CRM On-premise customers to scan a CRM 2011 organization for unsupported customization on server side

    See more here