Tag: online

  • No-code Customizations with North52 Formula Manager, Part 2: Line Items

    In a previous post I wrote about how the North52 Formula Manager solution can help you build some common customizations that would otherwise require writing Javascript for Dynamics CRM entity forms. The scenarios included:

    • Setting default values for lookup fields
    • Dynamically changing the field requirement level
    • Displaying popup warnings
    • Launching dialog process windows

    This time I will show a few examples of the Formula Manager capabilities that would typically fall into the domain of writing C# plugin code to enhance the business logic of Dynamics CRM. Being a functional CRM consultant that doesn’t normally deliver a single line of code (at least for production environments), these scenarios would traditionally require me to hand over the task to a CRM developer. What we’re about to see is an alternative method of creating just formulas with the graphical tools available in the solution package to get the same job done.

    Updating Opportunity, Quote, Order or Invoice Products

    In Microsoft Dynamics CRM 2011 you can trigger workflow processes on the line items of Opportunities, Quotes, Orders or Invoices. This allows you to execute custom logic when, for example, new Quote Product rows are added for a Quote record. Unfortunately what you cannot do with standard workflows is to actually update the line item record itself.

    Workflow_update_quote_product

    Well, this surely looks like a dead-end for most of the use cases you could think of for triggering the workflow process in the first place. If I wanted to, for example, pull information from the selected Product record and save it on the Quote Product’s fields, such as product description, vendor details or a line item number to sort the quote rows, this apparently cannot be achieved with CRM’s workflow functionality.

    Let’s look at how we can solve the problem with Formula Manager instead. In our scenario we would like the description field of the Quote Product record to be updated with the description field contents of the selected Product record. What we therefore need is a “Save – To Current Record” type of formula that is triggered on the Create & Update events of the Quote Product entity. We can limit the update events only to the Existing Product field by setting the Source Property value. The Target Property of our formula should be the Description field.

    Finally, we need the actual formula that will feed the values from the related Product record into the Quote Product’s description field. To retrieve the description field contents we’ll use the FindValue function and tell it to search for a Product record that has the same productid as the existing product selected on the Quote Product record. While we’re at it, let’s also ensure that the Quote Product actually has an existing product instead of a write-in product by verifying the productid field contents with the ContainsData function. The end result will look like this:

    if(ContainsData([quotedetail.productid]), FindValue(‘product’, ‘productid’, [quotedetail.productid], ‘description’),’NoOp’)

    FormulaManager_update_quote_product_description

    Now when we navigate onto a Quote and add a new Quote Product record underneath it, the description field will inherit the value from the related Product and display it directly on the Quote Product form (assuming you’ve made this default field visible on the form in the first place).

    Quote_product_description

    Not that much more complicated than building a workflow rule, just as long as you familiarize yourself with how the formulas work and how to format the parameters required by the functions.

    Creating Line Items

    Let’s proceed with exploring the world of line item records in the sales process. Updating existing records automatically is a nice capability to have for sure, but what about automating the complete process of creating the line items for an Opportunity, Quote, Order or Invoice? For example, if we wanted to ensure that there is always a standard Delivery Fee or other persistent item included whenever we’re creating an Order of a specific type (or for a specific customer group), then this is another area where the out-of-the-box functionality of Dynamics CRM workflows can’t be used, since new Order Product records cannot be created through a workflow rule.

    With Formula Manager we have no such limitations in place, rather we are free to create any type of records we want with the CreateRecord function. The example formula below was actually provided to me by North52’s John Grace to demonstrate the solution’s functionality. The Save – Perform Action formula is attached to the Create event of an Order record, which in turn triggers the creation of a new Order Product record. The contents of this auto-created line item can be defined either directly in the formula or alternatively queried with the FindValue function familiar to us from the previous example.

    CreateRecord(‘salesorderdetail’,
    1,
    ‘salesorderid.salesorder.’ + [salesorder.salesorderid],
    ‘productid.product.’ + FindValue(‘product’, ‘name’, ‘Bike’, ‘productid’),
    ‘uomid.uom.’ + FindValue(‘uom’, ‘name’, ‘Primary Unit’, ‘uomid’),
    ‘quantity.10’
    )

    FormulaManager_create_order_product

    Now, as a limited time special offer, any new Order that we create (or a Quote that we convert) will get 10 Bike products added onto it with their unit price dynamically retrieved from the Price List selected on the Order. What a sweet deal!

    Order_Products

    Cloning Records

    For a Dynamics CRM administrator these type of automated steps can be really handy in enforcing business rules and ensuring correct entry of data onto sales records. If we’d show them to your typical salesman, though, he might not be so impressed with this type of detailed process automation functionality.

    “Sure, it looks like we could save a few clicks with these formulas. But here’s the deal: many of the quotations I make are practically identical. They contain the same line items every time, with only some variations in quantity and discounts given. What I’d really want to do is simply select a quote I’ve created for another customer and create a copy of it. You know, the “Save As” button that’s found in all the other Office applications. Why couldn’t CRM also have that? It would be a huge time saver for me.”

    Ever had this kind of a discussion with your CRM users? If you have, then you’ll surely appreciate the fact that Formula Manager provides a Clone function that allows you to create a new copy of any existing record. Not only that, but the function also clones all the related 1:N & N:N records, which means you can create a copy of both the Quote and Quote Product line items with a single function!

    To get an understanding of how the function could be leveraged in delivering the “Save As” functionality your sales users have been asking for so long, watch this video that demonstrates not only the formula in action but also how you can use the Ribbon Workbench to build a custom Clone button for the required entities.

    Clone_Quote

    Think these type of features would be useful to have in your Dynamics CRM organization? Then go ahead and grab the fully functional Standard Edition of Formula Manager that allows you to have 10 active formulas at a time, for test or production use.

  • Dynamics CRM Data Visualization with Excel 2013 GeoFlow

    Excel_2013There are some great new features available in Excel 2013 that can take your Dynamics CRM data visualization onto a whole new level without the need to invest in new server infrastructure or build traditional OLAP cubes on your SQL Server. With the recent announcement of the GeoFlow Preview for Excel 2013, I decided to see what I could make of this tool when combined with some data pulled from CRM.

    Working with Cloud Data

    Although the feature parity of CRM Online and Dynamics CRM on-premises is on quite a high level these days in terms of the application platform capabilities, one unfortunate limitation has been that you can’t easily tap into the CRM Online data with analytical applications like Excel PowerPivot. Naturally the direct SQL database table connection is unavailable, but also the OData feeds that would be such a neat way for performing some pivot magic have been off limits, as PowerPivot doesn’t support the claims based authentication of CRM Online. Oh, and as far as I know, this also applies to an IFD configured on-premises server  (if anyone knows how to connect to the OData feed with AD authentication while using an IFD CRM, do leave a comment below).

    With the new capabilities of Excel 2013, there is now a workaround available that allows you to access OData feeds from CRM that require Windows Live ID / Microsoft Account / Office 365 authentication. You’ll also need the CRM Outlook client on your workstation to facilitate the initial connection, although with another workaround for the sign-in prompt on the Excel sheet you might be able to do without one.

    Here’s a great video from former Dynamics CRM Team member Ed Martinez that walks you through the steps needed in order to connect your Excel 2013 (note: Excel 2010 is not supported AFAIK) to a Dynamics CRM Online OData feed:

    (For all the Finnish speaking CRM folks out there, you can also check out this video clip by Sulava’s Markku Suominen.)

    As a summary, what you need to do is:

    • Copy the OData feed address from the developer resources menu of your CRM
    • Export any set of data from CRM to a dynamic Excel sheet
    • Open the file and refresh the data (thus establishing the authenticated connection), the save it in .xlsx format
    • Add a new data source by clicking on “Get External Data, From OData Data Feed”
    • Paste in the address you previously copied from CRM

    That’s it. Now you can connect an Excel sheet to a CRM Online (or IFD) data source through OData and refresh the content to reflect the live data as your CRM source system gets updated.

    Power View in Action

    For my own lil’ “Big Data” scenario I decided to point my OData enabled Excel 2013 towards a Dynamics CRM instance where ClickDimensions is storing the website visitor data from this blog (sorry, you’re being tracked, but it’s all for a noble cause, trust me). I proceeded by following the instructions above, adding a new OData data source into a dynamic Excel sheet, selecting the entities (“sets”) that I wanted to use in my analysis. Then I waited… and waited… and waited some more.

    OData_data_feed_connection_wizard_CRM

    A word of warning: OData data feeds can be slow. It’s nothing like using a direct database connection, and not even the type of performance you get with a dynamic Excel in an IFD environment that uses an Excel Web Query to “screen scrape” the data over http. My data set was retrieving around 100,000 records and I saw the counter ticking on the bottom right corner of the Excel sheet at a rate of roughly 200 rows per second, which translates into some 10 minutes of waiting before the download from CRM is complete. Oh well, it’s not like we’re in a rush to create a real life report for the boss who wants to have it in his inbox within 15 minutes. Let’s be grateful that we can at least retrieve more rows in one go than the default MaxRecordsForExportToExcel setting for this CRM organization would otherwise allow (which is 10,000). (more…)

  • No-code Customizations with North52 Formula Manager

    North52North52 Formula Manager is a very interesting solution that promises to simplify the process of customizing and extending Dynamics CRM by offering a graphical toolkit to implement custom business logic that would otherwise require developing plug-ins in C# or adding Javascripts on the forms. Instead of writing custom code, the business logic can be configured through the N52 entities inside CRM, with the help of a Silverlight based editor to write formulas that check conditions, perform validations, update fields etc.

    In this article I’ll show you a few simple examples of how a person with no coding skills can perform some customizations that go beyond the GUI tools that Dynamics CRM offers. I’ll use the opportunity entity to add some client side actions to make the sales process a more guided experience for the end user. You can grab the free Standard edition of Formula Manager and use it’s 10 available formulas to try out these examples in your own CRM environment, or watch some of the training videos from North52 that cover several other scenarios.

    Default values

    The sales records in Dynamics CRM contain a few fields that sometimes don’t deliver any added value to the user, but they still need to be filled for each record. One common example is the usage of the price list. If your organization only has a single valid price list at any given time, the CRM users would surely appreciate it if the system could automatically populate the lookup field with the default price list when creating a new opportunity.

    Opportunity_default_price_list

    This is a very simple formula where all we basically need to do is populate a lookup field with a static value. To get the GUID of the price list, open it’s form in a new IE window by pressing Ctrl+N and find the string like “3F2504E0-4F89-11D3-9A0C-0305E82C3301” from it. Then create a new N52 Formula record and define the formula type as Save – To Current Record. We’ll set the mode as Client Side Classic and set it to run on the Create event, as we want the price list field to be populated with the default value only once – when the user creates a new opportunity record. The source and target entities should both be set to opportunity, as we’re updating the current record. The source property in this case is the event that triggers the formula, so let’s select OnLoad to fill the field immediately when the form is opened. Finally, the target property should be the field that will be updated with the results of the formula, in this case Price List.

    Different field types on the CRM form require different kinds of update procedures. Since we’re dealing with a lookup field and populating it as a client side event, let’s pick the SetClientSideLookup function from the N52 Formula menu and give it the required parameters of the entity name, record GUID and record display name:

    SetClientSideLookup(‘pricelevel’, ‘5EF541AA-67B6-E211-93F7-08002719F2F4’, ‘Default List’)

    FormulaManager_opportunity_default_pricelist

    Now we’ll just need to publish the formula and go test it out by creating a new opportunity record and verifying that the price list gets set to the record we wanted. In case you get an error prompt from N52 Formula Manager while opening the form, please revisit the formula record and verify that you’ve selected the correct options.

    Required fields

    Changing the requirement level of a field based on another field on the form is another common requirement. Let’s assume we have a simple sales process with three stages (picked up from the default CRM sample opportunity data): 1) Prospect, 2) Qualify, 3) Closing. We’ll use the Status Reason field’s (customized) values to drive the process and we want to enforce the following business rules:

    • If stage = 2) Qualify then make Estimated Close Date field required
    • If stage = 3) Closing then make Estimated Close Date and Estimated Revenue fields required

    In the UI the user would see the requirement level change dynamically when he or she changes the Status Reason field value and clicks elsewhere or tabs out of it.

    Opportunity_required_fields

    To achieve this feature with Formula Manager, we would build a formula that references the statuscode ID values and the schema names of the fields we want to set as required. Something like the following if-statements:

    if(([opportunity.statuscode]=’2′), SetRequiredFields(‘estimatedvalue’), if(([opportunity.statuscode]=’3′), SetRequiredFields(‘estimatedvalue’, ‘estimatedclosedate’), SetNotRequiredFields(‘estimatedvalue’, ‘estimatedclosedate’)))

    Basically what we do in the formula is first check for the stage 2, then stage 3 and finally use a default action for stage 1 to return the fields into not required status (so we also support moving backward in the stages). We’ll set the formula to run on the opportunity entity as a Client Side – Perform Action formula, tied to the source property of the Status Reason field, which effectively means it’s triggered with the OnChange event of that field as the user manipulates the form values. (more…)

  • Side effects of the Polaris UI

    Side effects of the Polaris UI

    Here are some of the gotchas you can expect after switching to the new UI that is introduced in December 2012 Service Update, known by the friendly name “Polaris” release. I previously compiled a summary of the changes in the new UI and publish it as the “What’s New in Polaris” slides, but I thought I should highlight a few situations that may come as a surprise when trying to adapt your existing CRM processes onto the updated user experience of Polaris.

    Relationship attribute inheritance

    As I’ve written earlier, the new forms don’t work all too well with the concept of adding child records from the parent record’s form. Previously in CRM 2011 the ribbon provided a rich, extensible set of actions you could perform on a view of related records or a form subgrid, say contacts related to the parent account or quotes related to the opportunity. While the new Command Bar is about to take the ribbon’s place as the menu of available actions for the main entity form, there’s nothing yet in place to provide similar functionality for related records. Given that CRM by nature is all about managing relationships between different objects, this currently presents quite a severe limitation on the application’s ability to fulfill its purpose.

    “Hey, don’t we have those new plus signs on the subgrids that we can use for adding related records?” Unfortunately the answer is not quite as simple, because the actions the button offers are unconfigurable and in most cases suboptimal. Here’s a take from the CRM Online Resource Center article on customizing the forms in the new sales process:

    You may add sub-grids to the new process forms as you would with existing entity forms. Note that the behavior of the “+” sign in the new sub-grid will vary, depending upon which controls you have in place on the form. Note that sub-grids cannot be customized to display charts.

    • Add Existing and Add New, both. If both are present, the “+” sign control will function as Add Existing.
    • Add New only. The “+” sign will open a new record form.
    • Add Existing only. The “+” sign will open the classic lookup dialog box.

    In most cases we have both options available, which means that instead of the new record form we’re given the Add Existing dialog. Imagine the most basic CRM scenario of them all: adding new contacts for an existing account. Here’s what you get from the form subgrid when clicking the plus sign:

    Polaris_add_related_contact

    Ok, so it’s not exactly as nice and clean as getting a new contact form right away (the classic experience), but guess we could live with that, since there’s a “New” button available there anyway. However, this reveals one of the hidden but nasty side effects of Polaris: the relationship mappings that you’ve defined in your 1:N Parent Customer relationship between the account and contact entity are not respected when using the New button in the Add Existing dialog. This means that your new contact record will not inherit any values from the account you currently have open, including common fields like address and telephone information. Even the Parent Customer field will be empty, as the system no longer understands the context in which you are adding the new record into the database.

    This shortcoming of Polaris renders many common use cases unnecessarily cumbersome. For example, try sending an email from the web UI to a contact record using the new process forms. Although a user who’s completely new to Dynamics CRM might accept the fact that he or she needs to always navigate back to the main window and choose the type of record to create, then fill out all the lookup fields and other non-inherited values, selling this to an existing user of the system would be very tough.

    Opportunity products

    The new process form for the opportunity entity does not show the opportunity products or quotes subgrids/sections by default, you’ll need to enable the visibility in form customization to menu to show them. Once you do, the layout is not very attractive, so you may want to do some clean-up on the form sections. After this exercise you can start to leverage the familiar functionality of adding line items on the opportunity record. No, inline editing of the opportunity products still isn’t possible, but maybe it will one day be in a future release.

    As we add more product lines on the opportunity we start to notice that the total amounts are no longer up to date with the latest additions. In the previous UI we would have reached out to the ribbon to click the Recalculate button to force the system to update the record. The new Command Bar doesn’t offer such an option, however. We can’t click the save button either, as there’s nothing to be saved on the actual parent opportunity itself. Our only options to get the totals updated are to A) close and reopen the opportunity form, or B) update any arbitrary field on the opportunity form. In fact, we might as well create a new checkbox field on the form called “switch to update”, to be changed each time we want to perform the calculation. The new auto save feature will then (in no more than 30 seconds) retrieve the updated value, without even flashing the form.

    Polaris_opportunity_products_small

    Recalculation is not the only issue here, however. Referring to the relationship attribute inheritance problem that the Polaris UI suffers from, this manifests itself also in the further steps of the sales process. Suppose you’ve added a subgrid for quotes on the opportunity form (or rather made it visible), to allow you to proceed with preparing an offer document to the customer. Clicking on the plus sign works nicely here for a change, since there’s no Add Existing option available for opportunity quotes, so we’re presented with the quote record containing the right header level sums and discounts we entered on the quote. We then click save and… WHAT?!? Where did all my monetary values disappear?!  Why is the quote empty now?

    Polaris_quote_products_missing

    The reason this happens is that the quote products were never created. The lack of inheritance doesn’t only limit itself to actions the user performs on the UI, but apparently some of the platform functionality also gets broken when using the Polaris forms. The Add New relationship does carry over the total values from the opportunity form onto the quote form, but none of the line items on the opportunity get added onto the quote. This means that the moment you click save and an update form is opened, the recalculation of the quote level fields takes place, thus deleting the values that existed while we were still on the create form. Sure, you could retrieve the products from the parent opportunity by using the Get Products button on the quote ribbon (as this entity still has the classic experience), but you probably wouldn’t be very happy with this workaround, knowing how it used to work before.

    As a part of the Polaris update, the default value of the Revenue field has been changed from “System calculated” to “User provided” in Polaris, as outlined in article KB2806842. I think that sends a clear signal: if you’re working with line items in your sales process, you’d be better off not enabling the new process forms. In which case, don’t forget to go and set the default back to “System calculated” after the update if that’s how you build your opportunities. (more…)

  • eXtreme CRM 2013 Rome takeaways

    eXtremeCRMThere are no more Microsoft Convergence events held in Europe, but luckily the eXtreme CRM organization has stepped in to arrange a bi-annual conference where all the Dynamics CRM professionals can meet up and share information & thoughts on what’s happening around the product and the surrounding ecosystem. Last year in Berlin was the first time I attended the eXtreme CRM conference and this year it was time to head down south to Rome for eXtreme CRM 2013. Here’s my travel report from the event, focusing on the product roadmap details that were revealed and the direction that Microsoft Dynamics CRM seems to be heading towards, based on my interpretation.

    It’s been a bit rough

    The opening keynote by Bob Stutz, corporate vice president of Microsoft Dynamics CRM, was a somewhat unusual appearance compared to the traditional Microsoft way of highlighting their past achievements and future opportunities. From the European viewpoint, the typical US style keynotes often go over the top in building up hype for the success of the products, but Bob came onto the stage with a different kind of a message. Basically he apologized for all the problems that have surrounded Dynamics CRM recently: the delay of cross-browser support, CRM Online performance/reliability issues and the sad saga of recent Update Rollups being pulled.

    Bob_Stutz_eXtremeCRM_keynoteI think most of the MS partners in the room had shared the pain from these issues, especially when having to explain them on a day-to-day basis while working with customers. In the software business it’s of course nothing unheard of that  such problems may occur, but there’s been an elevated sense of frustration recently with the lack of information given to partners on what’s going on at Microsoft. Communication is the most effective cure in recovering from such events and I bet that it would have been far easier for all parties if there had been more transparent exchange of information on each of these issues earlier on, but it’s good to see the top management acknowledge this now and hopefully do what is necessary to straighten these things out.

    One thing that Bob Stutz promised to change was to return the Update Rollups back to pure hotfix packages instead of vehicles for new feature delivery that they’ve turned into after Microsoft adopted the agile release policy for Dynamics CRM shortly after the 2011 version came out. What this means in practice is that MS will need to come up with a new delivery vehicle for introducing the new features into on-premise CRM environments at least once a year. While this can potentially improve the stability of those environments, the gap between CRM Online and on-premise feature release schedule can also grow even larger as a result of this, which could introduce it’s own challenges through an increased platform fragmentation.

    The mobility story

    This time last year Microsoft made a big announcement of their upcoming “CRM Anywhere” prodcut offering. Following the aforementioned turn of events, the cross-browser support got eventually delayed up until Polaris / Update Rollup 12 while the mobile strategy was gradually revised, scrapping their planned partnership with CWR Mobility and opting to develop in-house mobile apps instead. Individual pieces of news around the mobility offering have become available during the past fall and now at eXtreme CRM 2013 Rome the following mobility roadmap slide was presented:

    Dynamics CRM Mobility Roadmap & Vision

    From this slide and the accompanying presentation I was able to pick out the following pieces of data:

    • The iPad Safari web client that was postponed from the actual Polaris rollout is arriving this month for CRM Online customers, on-premise support will be in Orion
    • Tablet devices will receive a dedicated app, not only the Windows 8 Sales Workspace but also a similar iPad native app appears to be scheduled for Orion, with further Service and Marketing apps in the horizon
    • iPhone and Android support will be limited to the Mobile Express client even after Orion, all the way until Leo
    • No details on whether Windows Phone will receive any new features in addition to the WP7 Activity Feeds app that was released a bit over year ago
    • Customization options as well as offline data support will be rolled out gradually to these clients

    One thing that Bob was emphasizing during the keynote was Microsoft’s decision not to charge additional licenses for access to these mobile and tablet applications. Choosing to take the longer route of build vs. buy in the mobile CRM gives MS a wider range of options to adjust their commercial offering to market needs, but the prolonged period of uncertainty means that many customers will also be postponing their investment decisions on mobile CRM deployment until they have facts available on what level of functionality is going to be baked into the core platform. At the same time ISV’s like Resco and more recently also CWR Mobility are working hard to be able to offer a HTML5 platform for developing customized mobile and tablet apps for Dynamics CRM for those customers who need to equip their mobile workforce with CRM solutions already today.

    Update 2013-02-16: Microsoft partners can now download the Microsoft Dynamics CRM Mobility Roadmap slide deck from PartnerSource (login required).

    From Polaris to Orion via Gemini

    The new “Flow” UI of Dynamics CRM has been rolled out to existing CRM Online customers. This has caused both a lot of excitement as well as anxiety, since the new design and integrations (Bing Maps, Yammer etc.) are very tempting to be demonstrated as the next generation user experience, but the feature set of Polaris takes away many of the standard customization options that rely on form event scripting. I’ve covered the Polaris new features & gotchas in a previous post, in case you haven’t had a chance to dig deeper into the updated CRM Online version yet. Just to repeat once more what I’ve been trying to emphasize ever since latest Statement of Direction document was released: on-premise customers won’t get the new UI with Update Rollup 12, it arrives in the Orion release.

    Orion_the_next_version_of_Dynamics_CRMWith that in mind, let’s get the big news out of the way before digging any deeper: Orion is not an Update Rollup or even Service Update type of a release, it is the next major version of Dynamics CRM. In his closing keynote Bill Patterson pretty much confirmed that it would be called “Microsoft Dynamics CRM 2013” (or 2014) for the on-premise customers. Not a whole lot of other details were shared, apart from the fact that the target release date is in Q3 2013. Although Bob Stutz was hesitant on giving any dates in his speech, July was mentioned more than once, but whether that refers to general availability or CRM Online is anybody’s guess as of now.

    Before that, we’ll have time for another star in the spring sky: Gemini. Yes, it looks like there will be even more frequent releases for CRM Online than previously communicated. Gemini arrives in Q2 2013 and will focus on bringing the Marketing Pilot features acquired last October available to Dynamics CRM users. The feature set was shown in a very brief run through of slides, since the network issues that plagued the whole eXtreme CRM 2013 Rome event held at Marriott Park Hotel forced Bill to skip the live demo and resort to screenshots instead. Not much can be said about what to expect from Marketing Pilot at this stage, but here are some facts I picked up: (more…)

  • What’s New in Microsoft Dynamics CRM Polaris Release: The Slides

    On January 21st, 2013 the official announcement on “broader availability” of the Microsoft Dynamics CRM December 2012 Service Update (formerly known by codename Polaris) was made on the CRM Connection blog. Even though not all the CRM Online organizations have yet been updated, new trials in US and shortly in EMEA & APAC will get the latest functionality installed upon provisioning.

    The absolutely best way to get familiar with the future UI of Dynamics CRM is to get a 30 day trial organization for yourself and play around with the demo data. In fact for a large share of the existing customers this will be the only possible way, since there will be no on-premise version of Polaris. You’ll get the cross-browser support, API updates, and, contrary to previous information, the updated Activity Feeds solution when installing Update Rollup 12 for your CRM server (currently not yet available for download after having been pulled). Sorry, you’ll have to wait for the Orion release that’s coming out sometime later in the year 2013.

    Since I know many of you must be busy with deploying, supporting, developing and actually using  the current on-prem version of CRM 2011, I’ve created a summary of the new features  in the December 2012 Service Update just for you. No, not just a list of the bullet points that Microsoft has already communicated, but rather a hands-on exploration of how the new version works differently from the old CRM 2011. You’ll find it on SlideShare available for download or you can view it below (although the image quality in the streamed version is a bit crappy).

    The 34 slides cover those features I personally found noteworthy when getting to know the Polaris release. It’s not an exhaustive list by any means, but I’ve tried to highlight the changes and gotchas that a system customizer or administrator familiar with the previous versions should be aware of. The topics include:

    • Sitemap changes
    • Activity Feeds filters (see this earlier post for more details)
    • New process form structure and components (previously known as the “Flow UI”)
    • Swithing between new and Classic forms
    • Updated subgrids and limitations on working with related records in general
    • Extended case management functionality
    • Support for creating leads for existing accounts
    • + Many more!

    With this release Microsoft has done an excellent job with publishing a plethora of training videos on the Dynamics CRM December 2012 Service Update on the Microsoft Dynamics YouTube channel for anyone to watch, with no login required to access the materials on Customer/PartnerSource, so do take advantage of them. Unfortunately I haven’t yet found an official MS index page to these videos, so I suggest you refer to this post by Donna Edwards with the video links, because the video titles are impractically long when browsed on YouTube (hmm, wonder if this says anything about Microsoft’s product naming convention… probably not 😉 )

    And that’s not all, folks! By browsing through the updated Resource Center content online you can access detailed help articles on topics such as installing product updates, turn on the new sales and service process forms or customizing the forms in the new sales process. There’s so much more to this release than just the cross-browser support (although that’s bound to keep people busy as CRM 4.0 scripts start to break) that I urge you to have a look, even if you’re not working on a CRM Online environment. By starting early you’ll have a better understanding of how to prepare for the next on-premise release, what comes out of the box in Polaris and what type of customizations are sensible to make when knowing the upcoming form architecture and user experience that will arrive in the Orion release.

  • Windows 8, Outlook 2013 and Dynamics CRM – part 2

    Back in August I wrote about my initial experiences of using a Windows 8 PC with Office 2013 to connect the Outlook client to Microsoft Dynamics CRM. During that time we only had the preview versions of both the OS and Office, so some quirks were naturally to be expected. Now that Windows 8 is generally available and also the RTM bits of Office 2013 can be downloaded from MSDN (with commercial launch expected by end of January), it’s a good moment to revisit the topic. Upon my latest test I came across a few configuration gotchas that I though might be useful to share for anyone who’s struggling with the same issues.

    Connecting to CRM Online with WLID

    Our official work setup is still on Windows 7 / Office 2010 level, but being the kind of eager early adopter that I am, my home PC’s have moved to the brave new world of Windows 8 some time ago already. I installed Office Professional Plus 2013 on a Windows 8 64-bit laptop that’s not joined to a domain, so my login credentials to Windows are linked to my Microsoft Account (previously known as Windows Live ID). In my first tests in August this was a blocker for using a CRM Online organization where the user’s WLID / Microsoft Account was different in CRM and on the local machine.

    Update Rollup 11 removed the need to manually enable Windows Identity Foundation (WIF) on Windows 8, but out of old habits I checked that it was available before configuring CRM. Launching the CRM client Configuration Wizard and selecting CRM Online on the Server URL field of the Configure Organizations prompt gave a familiar error: “Cannot connect to Microsoft Dynamics CRM server because we cannot authenticate your credentials.” Just like before, it appears that the Configuration Wizard automatically attempts to use the Microsoft Account of the local user for logging in to CRM Online. Logging out of the account in Internet Explorer and then logging in to CRM Online in the browser didn’t seem to resolve the issue with the Outlook client connectivity, as a further error message was presented later in the Initializing the Organization phase:

    There is a problem communicating with the Microsoft Dynamics CRM server. The server might be unavailable. Try again later. If the problem persists, contact your system administrator.
    [Expanded Information]
    Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8082. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

    The KB article referenced in the error message discusses the following issue: “You receive an error message when you run a SQL Server Compact 3.5-based application after you install the 32-bit version of SQL Server Compact Edition 3.5 Service Pack 2 on an x64 computer.” However, downloading and installing the x64 version of Microsoft SQL Server Compact 3.5 Service Pack 2 for Windows Desktop didn’t resolve the CRM configuration error, so I opened a support ticket with Microsoft. They instructed me that I also needed to install the Cumulative Update 2 for SQL Server Compact 3.5 Service Pack 2, which is a hotfix that you need to request a download link to be sent to you by email. After my SQL CE 3.5 had been updated to build 3.5.8082.00, I was finally able to connect my Outlook 2013 with our CRM Online demo organization.

    Connecting to CRM on-premise with IFD

    During the previous test with CRM Online I had also tried to connect the Outlook 2013 CRM client  to our production on-premise CRM server that is IFD configured. I kept receiving the following error: “Cannot connect to Microsoft Dynamics CRM server because we cannot authenticate your credentials. Check your connection or contact your administrator for more help.” Looking at the error details there was a message claiming “no credentials are available in the security package.” (more…)

  • The new Polaris UI in practice

    CRM Online users may have already started thinking about when their organization would be getting the December 2012 Service Update. The good news is that we have an actual release date now, but the bad news is that it’s not in December 2012. Check out this link for more details, including the release date for cross-browser support for on-prem CRM in the form of Update Rollup 12.

    Anyway, as we await for the new process flow oriented user experience to be enabled in the cloud, here’s some nice live footage of how the new UI works in practice. In this YouTube video Reuben Krippner walks us through the changes you can expect to see in your CRM once the December 2012 Service Update has been applied.

    Some things worth paying attention to in the video include:

    • The browser client running on Chrome (including administrative UI)
    • New social dashboard including the Activity Feeds web part
    • Inline editing and adding of subgrid items (notice the lack of any save buttons)
    • Recording a completed phone call directly on the lead form
    • Lookup existing contacts or accounts from the Process Control component
    • Transition from a lead to an opportunity without any popup window appearing
    • Moving forward and backward freely in the process stages
    • Editing process stage fields with the Process Control Customization Tool
    • The new forms in the customization UI (and the lack of support for any form scripts in this release)
    • Simplified UI of the iPad Sales Experience browser client on Safari

     

  • Signing up for CRM Online in the Microsoft Online Services era

    Starting from July 19th, you no longer can/need to use a Windows Live ID to sign up for a 30 day trial of Microsoft Dynamics CRM Online. Instead you’re directed to the Microsoft Online Services Portal (a.k.a. MOP) to follow the same registration steps as you would when starting an Office 365 trial subscription. So, how does it work in practice then? Let’s sign up and see.

    There are a few additional steps in the registration process now. In addition to specifying the name of your company, you also need to select a new domain name, such as “yourcompany.onmicrosoft.com”. You’re given the chance to check for domain name availability, but it’s important to note that this only checks the .onmicrosoft.com domain. Your actual CRM Online organization will still be at yourcompany.crm.dynamics.com (depending on the region) and if the name given already exists on that side, the CRM provisioning process will automatically adjust the URL (I sure hope it’s better than those org85fs321nad type of CRM organization name monsters we had before). Additionally, since we don’t yet have a Microsoft Online user account in this case (if we did, the process would be somewhat easier), we’ll need to provide a user name and password.

    Once the data input has been accepted, we’re greeted with the administration portal that’s familiar to anyone who’s been managing an Office 365 subscription. Instead of the Exchange, Lync and SharePoint services we’ll see Dynamics CRM as the only available option. The actual provisioning process can take a while, so you may need to keep your eye on the spinner and refresh the screen quite a few times. In the US data centers the process took just a couple of minutes, but in EMEA I had to wait for half an hour before CRM was enabled in the Microsoft Online trial subscription. Presumably things will speed up as CRM becomes an everyday part of the Online portal.

    Under Dynamics CRM there’s a Manage link, so let’s click on that and off we go… Ouch, grey screen! You weren’t using a non-IE browser, now were you? Just because Office 365 web apps are compatible with most browsers, doesn’t mean Dynamics CRM would be. Remember how that cross-browser support was re-scheduled to Q4 2012? That’s ok, it’s easy to forget such minor details. Also, since Microsoft still doesn’t want to make it clear to the potential customer what the system requirements for Dynamics CRM are, many of them will surely be greeted with the below screen once they login to their CRM Online trial with Chrome, Firefox or Safari, puzzled about why they’re seeing this mobile UI instead of the pretty charts and familiar Office experience they were promised.

    After we click on the CRM link inside MOP with Internet Explorer, we get an additional dialog that used to be a part of the CRM Online sign-up form: selecting the base currency for the CRM organization. Once done, the familiar CRM provisioning screen is presented, alongside the promotional WMV video telling us how Dynamics CRM will improve your productivity etc. Wait a couple of minutes and you’re given the button to launch CRM Online.

    From this point onward the user experience is exactly the way it used to be back in the Windows Live ID days. Once you go to add more users into your CRM Online subscription there is however something new in the UI: instead of allowing you to add new CRM user records, a popup window will instruct you that in order to add more users to Microsoft Dynamics CRM Online, you’ll need to go to the Microsoft Office 365 Admin Portal.

    Ok, let’s click on the Add and Licenses Users button. We’re taken to the Online Services portal and get to specify a name for the new user. There’s also a “bulk add” option available, but since that would require creating and uploading a CSV file, we’ll skip that for now. Similarly to the subscription administrator (the first CRM user you created), the new users will be given a user@yourcompany.onmicrosoft.com user name. You can enter more details for the user, but not an email address (more on that later).

    Moving forward, we’re given the option to grant a CRM user license to the user. However, unlike the native CRM dialog windows for adding users, the MOP dialogs won’t allow you to assign any CRM security roles to the new users. Instead, you’ll need to go back to the Dynamics CRM administration menus to perform this operation. Don’t forget this part, as otherwise your users will have a user account but no access rights to CRM.

    Ok, we’re now almost done and are presented with the option of sending details of the new user name and temporary password by email. By default the recipient will be the admin user. Don’t send it there. Why? Because even though it looks like an email address and MOP considers it to be one, there is no email service available for you to access this inbox. Remember: you’re just configuring a CRM Online trial, not Exchange Online. So put a real email address in there, or then just copy & paste the data from the next screen.

    Once the new user account becomes available in the CRM users view (it can take a couple of minutes), you can open up the record and assign the required security roles to the user. Another thing you should do is to specify the real email address of the new user, so replace the @onmicrosoft address with a proper business email. While you’re at it, you may notice that not all user profile fields are available for editing on the CRM user form like they would normally be. Changing details like job title, main phone, mobile phone etc. needs to be done in the Microsoft Online Services portal and not CRM, as these are part of the user information maintained in MOP’s directory. Unlike in a traditional on-premises implementation with Active Directory, changes to the user profile fields will actually be updated onto the corresponding CRM user record after it has been created. See the following MSDN article for details: Sychronized Users in Microsoft Dynamics CRM Online and Office 365.

    In addition to user management, also the subscription management for CRM Online now utilizes the Office 365 platform capabilities rather than the old system that was used for billing Xbox Live credits and other consumer services. What this means is that a potential customer might as well go and sign up for an Office 365 trial to go alongside their CRM Online trial. All it takes is finding the link under Subscriptions – Purchase – Microsoft Office 365 (Plan E3) – Trial and they can take the Exchange, SharePoint and Lync functionality for a test drive. Cross-sell opportunities galore!

    Are there any benefits then for a customer who just wants CRM from the public cloud and not Office 365? Yes, because the new Microsoft Online based authentication allows setting up an integration with the existing Active Directory that the customer has. No need to manage separate credentials for CRM Online anymore if you configure AD federation between your domain and the cloud services hosted in Microsoft’s data centers to offer the users a single sign-on (SSO) experience. It requires some level of effort, though, so start by getting to know the following article: Plan for and deploy AD FS 2.0 for use with single sign-on.

    Another nice addition is the access to a CRM Online Service Health dashboard. Similar to what Office 365 has offered, you can now also see information about the current status and pas issues related to various CRM Online service components. While Microsoft has actively promoted the new CRM Online Trust Center, effectively it’s just a static page with information regarding security policies and certifications. In comparison, the Office 365 (and now CRM Online) Service Health dashboard will tell you what’s going on with the service right now and what maintenance breaks are planned. Compared to, say, trust.salesforce.com, it’s less transparent due to the requirement of having an administrator login to access the information, but it’s a good start.

    What if you’ve already implemented CRM Online and want to take advantage of the integration with Office 365 user accounts or on-premises AD? At the moment, there’s not much you can do. The changes introduced on July 19th only apply to new CRM Online organizations, which will now be provisioned onto the Online Services Delivery Platform (OSDP). Existing organizations on the old Commerce Transaction Platform (CTP) will eventually be migrated, but there is no official schedule for this yet.

    My guess would be that we’re not going to see any updates for existing CRM Online customers until the Office 2013 wave of updates rolls out to Office 365 customers, as Microsoft will surely put all its resources behind ensuring the Windows 8 launch with the accompanying business apps is a success. With plenty of other things on the Dynamics CRM development roadmap, it may take another year before we can finally say goodbye to the Windows Live ID based authentication in CRM Online. In the meantime, why not sign up for an Office 365 Enterprise Preview to see what the 2013 wave has to offer on SharePoint, Office and other products?

    Edit 2012-07-31: here’s a list of a few Office 365 issues that can cause problems for new CRM Online organizations:

    • Setting an integration user account to Non-Interactive access mode doesn’t reduce the count of assigned CRM licenses in MOP, as there are no free service accounts on Office 365 at the moment. In the past CRM Online allowed 5 free non-interactive user accounts. This is no longer the case, so any integrated application with its dedicated credentials will consume a full license on CRM Online. Unless this policy changes, it will increase the license cost for existing customers when they are eventually migrated from CTP to the new OSDP environment.
    • Developer toolkit and plugin registration tool cannot connect to CRM Online, default discovery service URL has changed from dev.crm.dynamics.com to disco.crm.dynamics.com (see thread on CRM forum)
    • Internet Lead Capture functionality is currently unavailable for new organizations in US (other regions have never had this functionality to begin with)
    • Instead of *.live.com, now you’ll need to add *.microsoftonline.com and *.accesscontrol.windows.net into IE Trusted Sites alongside *.dynamics.com to avoid prompts during the authentication process
  • When will my cloud get updated? CRM Online and Update Rollup status

    The benefits of running your Dynamics CRM application in Microsoft’s cloud is that you don’t have to worry about installing update rollups to your server, since MS takes care of all that maintenance. The downside is that you can’t be sure when exactly the updates take place. As we’re coming closer to the expected release date of Dynamics CRM R8, it’s a good time to reflect on the past update schedules of CRM Online.

    As of mid-June, CRM Online organizations are still running only the Update Rollup 5 version (at least on the EMEA CRM4 data center), while on-premises environments may already be running Update Rollup 8. No matter if you use an existing environment or sign up for a new trial organization, the version you get is 5.0.9688.1561. This corresponds to roughly the build number of on-premises UR5, which is 5.0.9688.1533, whereas Update Rollup 6 is 5.0.9690.1992 already. How can you check the version of your CRM Online application? Simple: on the browser client just click File – Help – About Microsoft Dynamics CRM. You’ll see version from the top of the pop-up screen.

    So, where do I go to translate those ten digits into a human readable version name? For the list of detailed build numbers, related KB articles and other information, be sure to bookmark this page on the Dynamics CRM In The Field blog: Microsoft Dynamics CRM 4.0 and 2011 Update Rollup Release Dates, Build Numbers, and Collateral. That page is being updated as new rollups are released and it also has in the past contained projected release dates of upcoming updates as well. Has, since at the time of writing it no longer does. Also note that the CRM Online build numbers and release schedules can and will differ from on-premises, as we’ve already seen.

    How to check the Update Rollup version on CRM Online

    Back when Update Rollup 7 was released on March 22nd, the accompanying post on the CRM Team blog promised the CRM Online Datacenter update schedule to “Mid to Late April, 2012”. This was also the information on the related article KB 2600643, but things have changed since then, as now all the post UR5 KB articles read:

    For online customers Infrastructure improvements are being made to CRM Online. Because of this, update rollups will not be applied to servers until the improvements are complete. Through the System Notifications page for the system maintenance window, you will be notified of when your organization will be updated to the new infrastructure. The latest updates will be applied at that time. 

    It’s no secret that Microsoft is working on bringing the Dynamics CRM Online and Office 365 clouds onto a single platform and unifying many of the surrounding components, such as subscription management or user authentication. This has apparently caused the planned schedules of Update Rollups to CRM Online get changed from those earlier communicated. When UR5, also known as the Q4 2011 Service Update, was released, it was deployed first to CRM Online environments before becoming available for on-premises and hosted environments. Since then we’ve seen UR6, UR7 and UR8 all get released to the on-premises environments first, with CRM Online remaining in the “UR5+” status for quite some time. Note that the builds are not exactly the same and there are likely to be differences in what the terminology means for different platforms. For example, UR6 brought support for SQL Server 2012, but we’ve already heard Microsoft say that CRM Online was running on SQL 2012 long before that.

    What the current status of updates to the Microsoft hosted cloud means that CRM Online customers are not yet able to leverage enhancements brought in UR6-8, such as the read-optimized forms introduced in Update Rollup 7. Also any server side bugfixes and functional changes beyond UR5 must be assumed to be lacking from CRM Online organizations, although we can’t know for sure what may have been applied as hotfixes. For example, problems with connections not merging when deactivating duplicate records was fixed in UR7.

    On the client side things are a bit different, since all the Update Rollups are rolling onto CRM Outlook clients through Microsoft Update. There is no longer a separate client version for Online and on-premises, so everybody gets the same hotfixes. Even though Microsoft recommends that the client and server Update Rollup versions should be kept close to one another, they don’t need to be identical. Here’s what it says on the CRM In The Field blog:

    The general rule of thumb is to try to keep the versions in sync as much as possible. However, it is permissible (though not recommended as a long-term solution) to run mismatched Update Rollup versions on Outlook client and server, as Microsoft does do some testing of such combinations.

    So, since the CRM Online version difference is obviously well known by MS, the UR combinations shouldn’t be an issue for Outlook users who’ve deployed the latest Microsoft Update packages. Even if you’re using the offline database in your CRM Outlook client, I assume compatibility between the CRM Online database has been taken into consideration. Of course in the field of IT, you should never assume anything, rather you should test any Update Rollups in a dedicated test environment, but smaller CRM customers may not always have that luxury. Which gets us to the following rule of thumb: don’t ever be the first one deploy the latest Update Rollup once it’s released. Wait a few weeks and check out the CRM forums and blog posts to read about the experiences other users have with the latest update, only then decide to deploy the update onto production devices (first onto your own test servers and clients, if you have them available). The Dynamics CRM community tends to be quite effective in reporting new issues that arise with UR’s, so leverage the wisdom of the crowd and save yourself from some unpleasant surprises.

    The big question that many people are searching for an answer to is: when exactly will Dynamics CRM R8 / Update Rollup 9 / Q2 2012 Service Update be released? (In case that previous terminology trio made no sense to you, be sure to read my explanation of the “Dynamics CRM update & version madness”.) I wish we knew, but in reality only Microsoft has that information and it hasn’t been publicly communicated. We’ve got less than two weeks to go on the Q2 of 2012, which makes it a tight schedule to keep if also Online organizations would need to be updated in addition to releasing the on-premises bits. We need to remember that R8 is a very significant update due to the added cross browser support, which will surely keep many CRM developers busy with fixing legacy scripts, so any issues that the R8 beta program may have revealed certainly need to be thoroughly investigated and I’m glad if Microsoft is taking extra time to get the whole CRM Anywhere experience right with UR9.

    Status update 2012-06-20: As reported on XRM Services blog, the US data center CRM Online organizations were updated to 5.0.9690.2174 on June 19th, which translates to Update Rollup 7+ but still a bit below the Update Rollup 8 available for on-premises environments. A similar update has been scheduled to take place on EMEA data centers one week later, on June 26th. Since it’s quite unlikely that there would be several maintenance breaks on consecutive weeks, this appears to indicate that at least for CRM Online customers the long awaited R8 release, also known as Microsoft Dynamics CRM Q2 2012 Service Update, appears to be delayed from the original schedule and now seems to become “Q3 2012 Service Update”. It is of course still possible that the on-premises bits for Update Rollup 9 will be released before the end of June.

    Status update 2012-07-04: It’s Q3 now and we know for sure that the release of R8 has been delayed from Q2 2012. The service break for CRM Online on June 26th in EMEA didn’t actually bring any updates to the CRM application, but now there’s another maintenance break scheduled for July 11th. Since the US data center went from UR5+ to UR7+ in the previous round, this may just be EMEA catching up on the delayed Update Rollups.  I’ll update the post again as we see the results or hear announcements from Microsoft so watch this space.

    Status update 2012-07-07: Finally we have a release date of July 19th for CRM Online. However, the “CRM Anywhere” functionality has been dropped from the update and will not arrive until six months later in Q4 2012. Read my analysis on the announcements from this blog post.