Quantcast
Channel: Dynamics 365 Customer Engagement in the Field
Viewing all 393 articles
Browse latest View live

Memory management for Dynamics CRM in a virtual environment

$
0
0

We have been engaged with a customer to do a performance review, and they had no apparent issues of performance.  We set up performance counters on all machines and they were all within threshold. However the backend role machine showed interesting behavior. It had “Available memory” within threshold while “pages/ sec” far above threshold, other hardware metrics were also within threshold.

Available MBytes is the amount of physical memory, in Megabytes, immediately available for allocation to a process or for system use.

Pages/sec is the rate at which pages are read from or written to disk to resolve hard page faults. This counter is a primary indicator of the kinds of faults that cause system-wide delays

Investigating further it turned out this machine is handling a pretty good load of plugins, MSCRMAsync services and it is virtualized (VMware) as well.

Virtualization is supported as stated in Software requirements for Microsoft Dynamics CRM Server 2013

Checking the settings of the virtual machine it turned out it doesn’t have “resource reservation” at all, which is contrary to Microsoft recommendations.  Microsoft recommends using fully reserved memory to avoid all ballooning, swamping and “Double paging” problems (described in VMware white paper).

If the virtual machine memory size is too small, guest-level Paging is inevitable:

Ref: http://www.vmware.com/files/pdf/perf-vsphere-memory_management.pdf

Hardware virtualization technologies can provide significant advantages over traditional hardware-based implementations. However, software that is running in a virtualized hardware environment is affected by intrinsic
limitations, especially performance limitations.

Ref : http://support.microsoft.com/kb/957054/en-us

Having these settings in place stabilized the system and added to the general performance and stability of the system. So our advice here if your Dynamics CRM server machines are virtualized make sure you familiarize yourself with the best practices of the virtualization provider, and you understand their best practice for memory management. And of course “performance and scalability considerations” from kb 957054

By: Julien Clauzel, Fadi EL-Hennawy


PFE Dynamics @ Convergence 2015

$
0
0

For those attending Convergence 2015 in Atlanta, GA next week, I wanted to let you know that we will have members of the PFE Dynamics team there presenting some great content.  In addition, make sure to follow @PFEDynamics on Twitter to get updates on other PFE Dynamics activities at Convergence.  Below is a list of the sessions we will be presenting during the conference.  It would be great to meet you at our sessions, so please stop by and check them out! You can also find us at the Expo throughout the week in the Premier Support booth.  You can get more info on these sessions and others via the Convergence Session Catalog.

Can’t make it to Microsoft Convergence 2015 in person? Be sure to mark your calendar to watch the opening keynote with Microsoft CEO Satya Nadella and Executive Vice President, Microsoft Business Solutions, Kirill Tatarinov LIVE on Monday, March 16, 8:30-10:30am EDT on the Convergence website. You’ll also be able to watch the Convergence General Sessions live as well (check the Session Catalog for times and listings).  If you’re not able to catch the action live, nearly all sessions at the event (including keynotes, general sessions, concurrent and deep dive sessions) will be made available for on-demand viewing at our Convergence Video Library 24-hours after session conclusion. Don’t miss out on experiencing all the amazing content delivered at Convergence 2015!   

PFE Sessions @ Convergence 2015 – Be sure to follow @PFEDynamics on Twitter and we’ll tweet our session times & rooms as they come up. 

Note: We have changed the room size for our Customizations Tips and Tricks, Upgrade Discussion and Optimization Tips and Tricks sessions on the repeat sessions to ensure that we can fit everyone who wants to attend.  In years past we have had to turn people away because of capacity limitations, so this year we are going to try a larger room for the repeat sessions and give up some of the crowd back and forth interaction and rely more on microphones in a larger ballroom to ensure that everyone has a seat.

Click on the hyper linked names to see a real-time listing of sessions in the session catalog.  This will include scheduled repeats and room changes.

Session Date Time Presenters
ID15C350-R1 - Microsoft Dynamics CRM 2015: Upgrade discussion Mon 3/16 3:30-4:30 Shawn Dieken, Sean McNellis, Daren Turner
ID15C352-R1 - Microsoft Dynamics CRM: Optimization tips and tricks Mon 3/16 5:00-6:00 Shawn Dieken, Sean McNellis, Daren Turner
ID15X002-R1 - SQL Server performance rapid-fire Tues 3/17 9:00-10:00 Michael Posl, Rod Hansen, Chip Taylor
ID15C351-R1 - Microsoft Dynamics CRM- Customization tips and tricks Tues 3/17 2:00-3:00 Shawn Dieken, Sean McNellis, Daren Turner
DD15X101-R1 - Securing performance with Performance Analyzer for Microsoft Dynamics Tues 3/17 3:30-5:00 Rod Hansen, Pepe Sifuentes
DD15X101-R2 - Securing performance with Performance Analyzer for Microsoft Dynamics Wed 3/18 9:00-10:30 Rod Hansen, Pepe Sifuentes
ID15X002-R2 - SQL Server performance rapid-fire Wed 3/18 11:00-12:00 Michael Posl, Rod Hansen, Chip Taylor
ID15C352-R2 - Microsoft Dynamics CRM: Optimization tips and tricks Wed 3/18 11:00-12:00 Shawn Dieken, Sean McNellis, Daren Turner
ID15C350-R2 - Microsoft Dynamics CRM 2015: Upgrade discussion Wed 3/18 2:00-3:00 Shawn Dieken, Sean McNellis, Daren Turner
CS15X009 - Microsoft SQL Server AlwaysOn for your business Thurs 3/19 11:30-12:30 Rod Hansen, Chris Nowak
ID15C351-R2 - Microsoft Dynamics CRM: Customization tips and tricks Thurs 3/19 2:00-3:00 Shawn Dieken, Sean McNellis, Daren Turner

You may also find updates on our sessions through the following Twitter feeds:


I know that personally Convergence is my favorite onsite of the year as I get a chance to network and reconnect with so many great customers and partners.  I really enjoy hearing all of the success stories about how you are leveraging Dynamics products to accelerate and grow your business success!  I also enjoy hearing about any challenges you are having with your deployment and how we can help make it successful.

Thanks for reading and I hope to see you at Convergence 2015!

Shawn Dieken

Follow the conversation:
@sdieken
@pfedynamics | http://www.pfedynamics.com

Convergence 2015 Interactive Discussion Topics: CRM 2015 Upgrade discussion

$
0
0

Here are the 15 tips in 15 minutes that we shared as part of our Microsoft Dynamics CRM Upgrade Discussion interactive discussion (ID15C350-R1 & ID15C350-R2) at Convergence 2015. 

We wanted to share them in a blog article to those who attended (to reduce the need for notes), for those who could not attend, and help reduce our own need for more PowerPoint slides. For those in attendance, feel free to ask any questions during the last 45 minutes of our session, or come find is in the hallways at Convergence. For those of you who couldn’t attend please feel free to leave a comment.

  1. CRM Online
  • CRM Version Recap
    • Name Build # CodeName
      CRM 2011 5.0.9688.583 Titan
      CRM 2011 UR 12 5.0.9690.3236 Polaris
      CRM 2013 6.0 Orion
      CRM 2013 SP1 6.1 Leo
      CRM 2015 7.0 Vega
      CRM 2015 Update 1 7.1 Carina
  • Outlook Client Upgrade
  • Email Options
  • Entity Form Upgrade
  • Custom indexes 2013 & 2015
    • If you have not merged tables – only base table indexes will be preserved
    • If you have already merged tables and you have custom indexes, they are cataloged, then recreated upon your upgrade to CRM 2015
  • Merge Tables Prior to Upgrade
  • Legacy Feature Check
  • Real-Time/Synchronous Workflows (v6.0+)
  • Business Rules (v6.0+)
  • Server-Side Business Rules (v7.0+)
  • Migration Options 2011 –> 2013 –>2015
  • Evaluation Out of the box Features & Code Retirement
  • CRM Solutions Import/Export
    • CRM 2011 Imports to CRM 2013 and CRM 2013 SP1
    • CRM 2013 SP1 Exports to 2013 RTM Format
    • CRM 2013 & 2013 SP1 Imports into 2013 SP1 & 2015
  • Sandbox and Test Instances
  • Enjoy!

    Shawn Dieken, Sean McNellis and Daren Turner

    Follow the conversation:
    @sdieken
    @seanmcne
    @pfedynamics | http://www.pfedynamics.com

    Convergence 2015 Interactive Discussion Topics: Customization Tips and Tricks

    $
    0
    0

    Here are the 15 tips in 15 minutes that we shared as part of our Microsoft Dynamics CRM Customizations Tips and Tricks interactive discussion (ID15C351-R1 & ID15C351-R2) at Convergence 2015.

    We wanted to share them in a blog article to those who attended (to reduce the need for notes), for those who could not attend, and help reduce our own need for more PowerPoint slides. For those in attendance, feel free to ask any questions during the last 45 minutes of our session, or come find is in the hallways at Convergence. For those of you who couldn’t attend please feel free to leave a comment.

    1. Latest Update Rollup
    2. CRM Version Recap
        Name Build # CodeName
        CRM 2011 5.0.9688.583 Titan
        CRM 2011 UR 12 5.0.9690.3236 Polaris
        CRM 2013 6.0 Orion
        CRM 2013 SP1 6.1 Leo
        CRM 2015 7.0 Vega
        CRM 2015 Update 1 7.1 Carina
    3. Modal Dialogs deprecation
    4. CRM Performance Center
    5. Customizing the Form
      • Drag and drop navigation
      • Add same field to multiple sessions
      • Quick View Forms
      • Business Rules
        • Server side in CRM 2015
      • Edit Navigation, Header and Footer
      • Role Based Forms
    6. Form Merge after Upgrade
    7. CRM for Tablets – JavaScript
    8. CRM for Tablets – All Dashboards are available and customizable now
      • CRM 2015 – All dashboards including personal
      • CRM 2013 SP1 – Sales and Service Dashboards
      • CRM 2013 – Sales Dashboard
    9. PowerBI
    10. Calculated Fields & Rollup Fields
      • You can rollup Rollup Fields
      • You can calculate off of Rollup Fields
      • You cannot rollup up Calculated Fields
    11. Connections and sub-grid+ button behavior
      • Effects of Quick Create Form
      • Field is required it does “Add existing” if there are records to add.
      • Mark the field as required – Always pops “Add New”
    12. Tips for Developers
    13. CRM Tools and Features
    14. Legacy Feature Check
    15. CRM Solutions Import/Export
      • CRM 2011 Imports to CRM 2013 and CRM 2013 SP1
      • CRM 2013 SP1 Exports to 2013 RTM Format
      • CRM 2013 & 2013 SP1 Imports into 2013 SP1 & 2015

    Enjoy!

    Shawn Dieken, Sean McNellis and Daren Turner

    Follow the conversation:
    @sdieken
    @seanmcne
    @pfedynamics | http://www.pfedynamics.com

    Monitoring and Statistics for Sandboxed Plugins

    $
    0
    0

    We usually receive questions about where should plugins be registered, and is sandbox a recommended option assuming it is "sandbox-ready", or is it only for Dynamics CRM Online?  Based on what we have seen and experienced with our customers, in this post we will answer these questions and more importantly discuss how you can monitor the plugins hosted in the sandbox service.

    Where to register my plugin?

    Developers have the option of registering their plug-ins in the sandbox, known as partial trust, or outside the sandbox, known as full trust. Full trust is supported for on-premises and Internet-facing Microsoft Dynamics CRM deployments. For a Microsoft Dynamics CRM Online deployment, plug-ins or custom workflow activities must be registered in the sandbox (partial trust) where they are isolated as previously described.

    In summary, if your plugins are “Sandbox-Ready/compliant” that conform to the boundaries of the sandbox process (Partial trust) as described in How to: Run Partially Trusted Code in a Sandbox, then the sandbox is the recommended execution environment for plug-ins as it is more secure, supports run-time monitoring and statistics reporting, and is supported on all Microsoft Dynamics CRM deployments. In addition, Microsoft Dynamics CRM Online only supports execution of custom workflow activities if they are registered in the sandbox.

    Plug-in isolation, trusts, and statistics

     

    Monitoring plugins hosted in sandbox

    "PluginTypeStatistic"

    This entity is used by the platform to record execution statistics for plug-ins registered in the sandbox (isolation mode). The schema name for this entity is PluginTypeStatistic. To view the entity metadata for your organization, install the Metadata Browser solution described in Browse the metadata for your organization.

    PluginTypeStatistic entity messages and me

    Run-time statistics

    The Microsoft Dynamics CRM platform collects run-time information about plug-ins and custom workflow activities that execute in the sandbox.

    This information is stored in the database using PluginTypeStatistic entity records. These records are populated within 30 minutes to one hour after the sandboxed custom code executes. See the PluginTypeStatistic attributes to find out what information is
    collected. You can retrieve this information by using the retrieve message or method.

    If the sandbox worker process that hosts this custom code exceeds threshold CPU, memory, or handle limits or is otherwise unresponsive, that process will be killed by the platform. At that point any currently executing plug-in or custom workflow activity in that worker process will fail with exceptions. However, the next time that the plug-in or custom workflow activity is executed it will run normally. There is one worker process per organization so failures in one organization will not affect another organization.

    An easy way to see the statistics is through the advanced find, look for “Plug-in type Statistics”

      
     

    You’ll find very interesting information reflected in the columns of the view that includes:

    TerminateMemoryContributionPercent, OrganizationId, AverageExecuteTimeInMilliseconds, FailurePercent, PluginTypeStatisticId, ModifiedOnBehalfBy, CrashPercent, CreatedBy,
    FailureCount, CreatedOnBehalfBy, CrashCount, CrashContributionPercent, TerminateCpuContributionPercent, ModifiedBy, TerminateHandlesContributionPercent, PluginTypeId, ModifiedOn,
    ExecuteCount, TerminateOtherContributionPercent, CreatedOn.

    For example, the execute count and failure count columns could be compared to determine the percentage of failures.  The failures could then be investigated further to determine root cause.  In our case, it was because the business logic in the custom component was expecting data that was not there and throwing a NullReferenceException.

    We hope this information had shed lights on the sandbox service and how to monitor it!

    By: Julien Clauzel, Fadi EL-Hennawy

    Microsoft Premier Field Engineer

    Podcast and Overview: Microsoft Dynamics CRM 2015 Update 0.1 (Update Rollup 1)

    $
    0
    0

    Contents:

    We're proud to announce that all packages for Microsoft Dynamics CRM 2015 Update 0.1 (Update Rollup 1) were released on April 14th, 2015 to the Microsoft Download Center!  These packages should appear on Microsoft Update in Q2 2015.

    Note the naming convention change!  Post-RTM Updates used to be called Update Rollups, now they're just called Updates with the version number:

    Was: Microsoft Dynamics CRM Update Rollup 1 or 2

    Is now: Microsoft Dynamics CRM Update 0.1 or 0.2

    For more details, see the Dynamics CRM Product Group blog "New naming conventions for Microsoft Dynamics CRM updates"

    Microsoft Dynamics CRM 2015 Update 0.1 Build number:

     7.0.1.129

    Microsoft Dynamics CRM 2015 Update 0.1 Microsoft Download Center page

    Here's the "Master" Microsoft Dynamics Knowledge Base article for Microsoft Dynamics CRM 2015 Update 0.1: (KB 3010990). Going forward, the plan is to continue publishing Master Knowledge Base articles for CRM Updates a bit in advance of release to aid planning.

    Podcast

    On April 15th 2015, Greg Nichols and Ryan Anderson from the Microsoft CRM Premier Field Engineering Team provided information about:

    • The release of Microsoft Dynamics CRM 2015 Update 0.1
    • New fixes made available In Microsoft Dynamics CRM 2015 Update 0.1

    during their Microsoft Dynamics CRM 2015 Update 0.1 Podcast

    Note regarding Podcasts: We've recently changed the location of where we are hosting and distributing our podcasts.  See PFE Dynamics Podcast Update for more information.

    Go to Top

    The "CRM Update Rollup Collateral Page"

    For pointers to download locations, release dates, build information, and CRM Premier Field Engineering blogs and podcasts for all supported Microsoft Dynamics CRM Update Rollups and Service Packs, visit the "CRM Update Rollup and Service Pack Collateral Page"

    Go to Top

    Important note:

    An updated Unified Service Desk (Build 06.01.0001.0132) for CRM 2013 Service Pack 1 and CRM 2015 has been released as part of Update Rollup 1 for Microsoft Dynamics CRM 2013 SP1. See the following Microsoft Download Center webpage for download details:

    Unified Service Desk for Microsoft Dynamics CRM 2013 / 2015

    General Upgrade Rollup and Service Pack Notes:

    • Testing CRM Update Rollups: Best Practices
      • Microsoft Dynamics CRM Premier Field Engineering recommends doing all the standard testing you generally do for all Updates, which could be the functional and performance testing that you would do with a new major release or a subset of that test plan
      • The “general rule of thumb” for test plans for Update Rollup installs are:
        • Test any changes in a pre-production environment BEFORE introducing into your production environment. Manage your risk!
        • Consider using the Performance Toolkit for Microsoft Dynamics CRM to simulate your production user load in your testing environment, to shake out any performance-related issues early. The CRM 2011 version is currently being evaluated against CRM 2013 and CRM 2015, but CRM Premier Field Engineering can help you use the CRM Performance Toolkit with either CRM 2013 or CRM 2015
        • Test using the permissions your most restrictive end-user roles have. Testing with CRM Administrator permissions, for example, does not give you the complete picture
        • Concentrate on your SDK customizations, JavaScript, ISV add-ons – basically anything that’s not OOB functionality or customizations done from within the UI

    Go to Top

    Microsoft Dynamics CRM 2015 Update 0.1 packages are available for download via: 

    • The Microsoft Dynamics CRM 2015 Update 0.1 Microsoft Download Center page - released April 14th, 2015
    • The Microsoft Update Catalog  (packages scheduled for release in Q2, 2015)
    • The Microsoft Update detection / installation process
      • Note: Microsoft Dynamics CRM 2015 Updates will be pushed via Microsoft Update as Important updates
      • Client packages installed manually by downloading the packages and running install will require local administrator privileges. If the client packages are installed via Microsoft Update or SCCM (System Center Configuration Manager), they will not require local administrator privileges
      • Consider using Windows Server Update Services (WSUS) or similar software distribution technologies to distribute Dynamics CRM Update Rollups internally.  WSUS is a locally managed system that works with the public Microsoft Update website to give system administrators more control. By using Windows Server Update Services, administrators can manage the distribution of Microsoft hotfixes and updates released through Automatic Updates to computers in a corporate environment
      • For help with installation please see the Installation Information section of the Microsoft Dynamics CRM 2015 Update 0.1 "master" Microsoft Knowledge Base article
      • Please review Jon Strand's blog posting "CRM 2011: Silently Installing Update Rollups" which provides details on installing CRM Outlook client update rollups "silently" in order to limit end-user interruption, which also applies to CRM 2013 and CRM 2015 Updatesollups and Service Packs

    for these CRM components:

    Microsoft Dynamics CRM Server 2015

    Microsoft Dynamics CRM 2015 for Microsoft Office Outlook (Outlook Client)

    Unified Service Desk for Microsoft Dynamics CRM 2015

    Provides a configuration-based framework for quickly building agent applications for call centers. You can aggregate customer information from different areas in Microsoft Dynamics CRM into a single desktop and get a 360° view of customer interactions

    Microsoft Dynamics CRM 2015 Email Router

    Microsoft Dynamics CRM 2015 SSRS (SQL Server Reporting Services) Data Connector

    The SSRS Data Connector is not available as an individual download.  It is included in the Microsoft Dynamics CRM Server 2015 download. When you extract the Server package (CRM2015-Server-ENU-amd64.exe /extract:path: extracts the content of the package to the path folder), you’ll find the Data Connector in the SrsDataConnector folder

    Microsoft Dynamics CRM 2015 Language Packs

    Microsoft Dynamics CRM 2015 for Windows 8 (“MoCA” – the Mobile Client Application available via the Windows Store)

    Microsoft Dynamics CRM for iPad (in iTunes)

    Microsoft Dynamics CRM 2015 Report Authoring Extension (with SQL Server Data Tools support)

    Microsoft Dynamics CRM 2015 List Component Microsoft Dynamics CRM 2015 List Component for Microsoft SharePoint Server 2010 and Microsoft SharePoint Server 2013 (for multiple browsers)

    Go to Top

    Microsoft Dynamics CRM 2015 Update 0.1 Prerequisites:

    • Essentially the prerequisites listed in the Microsoft Dynamics CRM 2015 Implementation Guide download or specific TechNet content for the various CRM components serviced

    Go to Top

    Issues resolved via Microsoft Dynamics CRM 2015 Update 0.1: 

    Microsoft Dynamics CRM 2015 Update 0.1 contains fixes for issues reported by customers or discovered via internal testing.

    Fixes released via Microsoft Dynamics CRM 2015 Update 0.1:

    • Appointment tile only shows the end time of appointment in the CRM for Tablets
    • Cannot use backspace key to delete value from fields with iOS7 in Safari on iPad
    • 1: N lookup fields are not populated when using mobile devices
    • A JavaScript error occurs switching between forms for Facilities/Equipment
    • A script error occurs when closing a DateTime control in CRM for Tablets
    • Using the OrgDbOrgSetting tool to set the boolean value SkipGettingRecordCountForPaging to True causes paging to be removed from subgrids
    • After upgrading to CRM 2015 the fields DeliveryPriorityCode and DeliveryLastAttemptedOn do not appear on all Out of Box Activity Entities
    • Business Process Flows are not displayed on the Account entity for the System Administrator role
    • Business Rules do not fire when comparing a decimal field value equal to 0
    • Cannot Save or Delete Connections when Team Templates are removed
    • Charts containing option sets ignore the order that is specified
    • Command bar Enable rules do not work when detecting if an attribute exists in the CRM Client for Outlook
    • Dependency calculation error occurs when importing a queue item view with an attribute from a custom relationship
    • The Activities tab in the Social Pane will not display Email Activities containing an invalid HTML format
    • Ellipses are disappearing when the command bar labels have long names
    • Extra white space appears between form controls when scrolling in Safari on iOS7
    • When assigning Team membership via a custom plugin, users receive an error message when attempting to open records owned by the assigned Team
    • Executing a ApplyRoutingRuleRequest message in code will execute without error but the rule is not applied
      Removing or inserting line breaks in response to an HTML email using the web client will cause email font to be lost in some parts of the email body
    • Incorrect messaging for Marketing Campaigns when using Russian language pack
    • Incorrect time is displayed when using custom time formats on Activity entities
    • Loading a child record from a parent can cause parent activities to load on child activity wall
    • Merging records with same Team as the owner creates unnecessary POA records
    • CRM for Tablets will not configure for some time zones
    • On Quote, Order, and Invoice the associated entity navigation bar is not updating with the correct navigation tiles
    • Outlook crashes when viewing another users items in the calendar, contacts folder, or task folder
    • Outlook hangs after startup when CRM for Outlook is configured
    • Parent Account is not populated for Phone Call activites if creating the activity from a subgrid on the Account entity Information form
    • Quick Find does not work on Articles when added to a Dashboard as a subgrid
    • Quick View form shows incorrect status reason values when displaying the data on a different entity form
    • Rendering issues with SharePoint integration when using managed metadata columns in SharePoint
    • A script error occurs when deactivating a CRM record after viewing the Documents area for SharePoint integration
    • Resizing a chart pane that contains multiple X Axis categories, one of which is a Boolean field, causes category values to be removed
    • Resolved Case settings in Case Creation rules are not processing as expected
    • Resources tile is not present under related navigation for the Site entity
    • Using the Save and Close button when creating multiple Appointments on the Sales Calendar causes an error to occur
    • Scroll bar does not appear on Edit Properties and View Properties dialog windows for SharePoint documents
    • Scrolling appears jittery and does not react to touch in Safari on iOS7 on iPad3
    • Sent Emails are not promoted to CRM when using Track all Email messages and Server Side Sync
    • Using XrmPageuisetFormNotification to set a notification does not work when triggered from a Quick Create form
    • Solution import fails with error that the LocalizedLabel is required by another solution
    • Error messages generated when working with Appointment activities appear in a language different than the default selected for the CRM organization
    • Related navigation tiles are missing from entity forms
    • Tiles for sub-menu items are missing from horizontal navigation bars
    • Updating an email address value for a recipient that contains multiple email addresses in CRM causes replies to a previously received email to be sent to the newly updated email address instead of the original email address
    • The DisplayRules for command bar buttons are not reevaluated after a case record has been reassigned
    • Regarding information is missing for email activities when going offline
    • The Reading Pane for Phone Call records are not displayed in CRM for Outlook
    • The sample currency format that is displayed in the Personal Settings Format tab is displayed incorrectly
    • Users with Administrative Access Mode are unable to import a solution containing Reports
    • Attempting to update a Connection entity record that does not have a Connection Role defined results in an error
    • Asynchronous Plugins that generate a COM Exception enter a failed state instead of being temporarily suspended and cannot be retried
    • Custom web resources inserted in an iframe on an entity form are not rendered correctly when viewed in the Safari browser on iPad
    • When adding data to the CRM Fields form in the Microsoft Dynamics CRM 2013 Client for Outlook, that data is not being persisted to the record if the user does not click away from the field to lose focus
    • When Creating Custom System Views, users may notice that if they leave the Primary Name Attribute on the view, it may not display in the CRM for Outlook Client
    • Exporting a solutiong containing an SLA record will add a new SLA workflow process to the customizations.xml file each time the solution is exported
    • Datetime fields with a format setting of Date Only will continue to display time values when viewed in CRM for Tablets
    • Attempting to filter a lookup using a 1:N relationship results in an error when clicking on the lookup icon if the related field is not already populated
    • When inserting a template into the body of an email using Internet Explorer, the template is inserted at the top of the email body instead of at the expected cursor location
    • Trace logging for the CRM Unzip Service refers to the SharePoint Async Service when it should instead mention the CRM Unzip Service
    • Poor performance is observed when attempting to use the Find Available Times feature for Resource Scheduling for the first time
    • Microsoft Dynamics CRM SDK calls will not work as expected if the Security Token Service used for Claims Based Authentication does not produce an Asymetric Security Token response
    • You are unable to create records for custom Activity entities when the RegardingObjectId is set
    • Clicking the dropdown arrow to the right of the Activities menu does not display Recently Viewed Items
    • An error occurs when creating a new E-mail template: "An error has occurred, please return to the home page and try again"
    • Email fields do not resolve properly even after manually resolving to a Contact
    • Phone Call activity created from a contact record does not auto populate the field Call To
    • An error occurs when creating a second Appointment record from the Dashboard Navigation: "Try again"
    • When an .exe file is attached to a Note in a Case, it throws an error and the Note is not saved
    • Script error occurs when clicking front and back arrows in the Help dialog
    • Duplicate sequence numbers occur for Opportunity, Quote, Order and Invoice details
    • A script error occurs when opening an entity on an Android 4.4 device
    • Forms are not refreshed when assigning Accounts to other users
    • ClientGlobalContext.js.aspx changes causing Silverlight controls to fail
    • Tabbing does not work in Safari 8 on OS X 10.10
    • Using the Stage.getCategory() function for the Process Flow API does not work properly
    • Branch fields are not being reset when changing stage in the Process Flow in Safari 8 on OS X 10.10
    • A blank page is added when exporting a report created from Report Wizard
    • A script error occurs when removing all branches from a branching Business Process Flow
    • An error occurs when trying to set dynamic fields in a workflow for the Account entity
    • Saving a Business Process Flow without providing details in the "value" field throws an Invalid Argument error
    • Opening an activated Business Process Flow and closing without making changes asks if user is sure they want to leave the page
    • Business Rules do not execute after meeting conditions in CRM for Tablets
    • Process Rules are not triggered when setting custom Two Option field with an existing field
    • Required fields in CRM for Tablets are set and uneditable for Opportunities
    • Stages in Business Process Flows are missing when using nested branches
    • Going backwards in a Business Process Flow marks all items as Complete instead of clearing them
    • Clicking on the Audit History tab of a workflow causes an "Unexpected Error" to occur
    • Script errors occur when using Business Process Flow APIs such as setActiveStage
    • Unable to import a managed solution containing Business Process Flows from Microsoft Dynamics CRM 2013
    • Marketplace solutions links do not function
    • Unable to create a Competitor and an error occurs when saving the Competitor form
    • A script error occurs when closing a record from Bulk Deletion window
    • Clicking Save and Close in the Hierarchy Security Configuration window without any changes throw an "Invalid Argument" error
    • Daylight Savings Time changes for Chile and Mexico
    • Hierarchy Security Configuration window does not appear in Chrome
    • When adding users through Multiple Users window, it does not find valid Active Directory users
    • Removing a security role from a team takes a very long time
    • Performance on the Product entity has decreased
    • Hierarchy rules are broken when a User's Business Unit is changed that is part of a user-manager hierarchy
    • Error deleting Connections when using Azure plugins or Workflows
    • Solution Imports fail when Workflows containing dynamic URLs are included
    • Complex calculated fields on related entities cannot be defined
    • Activity Feeds are not working in an Internet Facing Deployment upgraded to Microsoft Dynamics CRM 2015
    • CRM for Outlook Pivot Table and dynamic export to Excel options fail to export
    • Incorrect text is displayed when clicking on Add Condition for Calculated fields with the System Customizer role
    • Unable to connect to an organization with more than 1000 users
    • Event campaigns with "Publish to Web" checked are not being listed in the Event Calendar page
    • When you have a plugin registered on Create of a Contact, the Contact fails to be created
    • Actual revenue field, when edited with alphanumeric values, is getting reset with the previous numeric value present when using the CRM for Tablets
    • Blank space displayed when scrolling through the associated records on Android 4.4 devices
    • Script error occurs when a user navigates to an entity grid from a record after reconnecting a CRM for Tablets device to a network
    • Unable to configure the Microsoft Dynamics CRM 2015 CRM for Tablets application with OAuth while on an internal LAN
    • Black background is seen when scrolling records in 'Opportunity Product Inline' associated simple list of the Opportunity form in iOS8
    • Notes quick create form is not dismissed on clicking System back button and application is closed on Android 4.4
    • "All Day Event" within Appointment is not functioning as expected on Android 4.4
    • Lookup bar leaves white space at right end while scrolling on Android 4.4
    • List controls in search results are not populated with additional records on Android devices
    • Tiles disappear when navigating to and from the dashboard on Android devices
    • Dropdown values are not displaying properly the first time opened on Android devices
    • A horizontal gray line appears on users lookup bar when using Android 4.4
    • When "Prevent click-to-call" is unchecked under Policy set. Control policy error is displayed when user clicks on contact card when using CRM for Tablets
    • Script error occurs when opening any record from an activity grid after using record set navigation on the CRM for Tablets
    • Fields that are meant to be Date only should not show Date and Time controls in CRM for Tablets
    • Receiving Invalid Parameter Error in CRM for Tablets for sub-grid views with Related Entity columns
    • Changes made to the Email Server Profile record during the loading period persists
    • A confusing error message occurs when the CRM for Outlook client cannot logon to the MAPI store in Outlook
    • CRM 2015 Client for Outlook ADAL library is not FIPS compliant
    • Appointment record is not created in CRM when tracked by invitee from the CRM for Outlook client
    • An OAuth Error occurs when selecting CRM Online and "Connect automatically with my current credentials" is left checked when configuring the CRM for Outlook client
    • Not able to send the direct mail for selected account record in outlook offline mode of CRM for Outlook client
    • Unable to change the settings of Address Book, for the "Entity record type being Synced to Address Book" in the CRM for Outlook client
    • Outlook crashes when configured with the CRM for Outlook client if it loses network connectivity
    • Icons are not displaying for Opportunity Products and Opportunity relationships in the navigation bar
    • Opportunity Product list does not show name for Write-In products
    • Suggested Product is added more than once if we click on ADD button on the suggestion fly out more than once
    • Business Closure URL allows for XSS security vulnerability
    • Resolve stage in Case form is empty when using CRM for Tablets
    • Incorrect solution customization for ContractTemplate and KbArticleTemplate
    • Action Calls to navigate to a webpage is appending the org url when called through routing rule during session creation
    • Show Tab functionality from a sub-button does not work properly
    • Unable to set a timer on the Task Editor form
    • Email a link option is not functioning on KB Article template
    • Unable to use custom Views in Products subgrids
    • Stakeholders and Competitors cannot be added in the Lead or Opportunity forms using a subgrid
    • Incorrect dialog is displayed when selecting "Set Work hours" from the Customer Service Schedule
    • When a custom entity has a primary name attribute set as optional and a record is created without a value for the primary name field, you are unable to select this record through a lookup to this entity
    • Unable to create a new View using Chrome because of dialog stating "You must provide basic information about this view before using this form."
    • If a user does not have the Read permission for the Campaign entity an error will occur while reading, or creating an Account, Contact, or Lead
    • After opening an Account record from the hierarchy view into a new window using left arrow pop up button the Account form appears. When that Account form is closed the home page is displayed instead of displaying hierarchy view
    • Multi-line field headers are not a tab stop
    • Script errors occur when changing Start Times on Service Restrictions
    • Clicking On Associate child Cases and SetParent Relationship Dialog causes a JavaScript error
    • Unable to open the Quick Find entities selection when in System Settings using Chrome
    • Unable to use Lookup Field that will be filtered by N:1 relationship
    • A JavaScript error occurs when clicking the OK button after checking checkboxes for Global Audit Settings
    • Users are unable to select elements from a dropdown list using the keyboard
    • Icons do not load properly on Safari 8 browser for OS X 10.10
    • An error message occurs when trying to edit filter criteria of a System View
    • Users are unable to unfollow or follow multiple records from an entity grid
    • Duplicate tabs appear for Work Hours and Service Restrictions
    • Unable to add columns in Reports wizard page for Sales reports
    • Users are unable to enter First Name and Last Name in the Lead form on iOS8 devices
    • Users are unable to enter First Name and Last Name in the Lead form on Android 4.4.2 devices
    • Email Templates and Email tabs are not visible in Settings menu
    • Buttons are hidden behind scroll bar and are not displayed appropriately on ribbon for Connection roles
    • Form Assistant on Scheduling dialog does not show the Resources tree for the selected Service
    • Double Click does not open properties dialog in Chrome
    • Clicking OK or Cancel in the Recurring Appointment fly out does not work in Chrome
    • A script error occurs when clicking delete on a Service Restriction
    • The "OK" button does not respond in the Email Configuration form from the CRM for Outlook client
    • Navigation arrows and item numbers disappear when browsing subgrid items
    • You are unable to add components to an existing solution
    • An error occurs when adding a custom filter in the CRM Client for Outlook
    • The "OK" button does not respond in the Service Configuration Settings
    • An error occurs when editing the Bing Map control
    • Adding a step to a workflow causes a script error in Internet Explorer and causes Chrome to stop responding
    • Service Schedule Work Hours are not being saved for "Are the same each day" and "var by day" options
    • Activity status is truncated in the Activity record
    • Field Security Profiles do not save
    • The Save As dialog throws a script error when clicking the OK button
    • Unable to see menu controls on the Menu Bar in Safari 8 on Mini Mac OS
    • The Entitlements subgrid moves when scrolling and overlaps column names
    • A script error occurs when clicking the "X" on the Service Scheduling dialog
    • Unable to add multiple components to a Solution at one time
    • Unable to share an Account record from the Advanced Find window
    • Field Security permissions changes are not automatically reflected on form

    Go to Top

    Full Text indexing now provided for CRM On-premise customers with Update 0.1!

    By default, Microsoft Dynamics CRM 2015 with Update 0.1 installed uses the same search functionality that was available in previous releases, which is based mostly on string matches. Now, with CRM 2015 Update 0.1, CRM system administrators have the option to use full-text indexing for Quick Find.

    We recommend that you consider enabling full-text indexing for Quick Find because it can provide a better search experience by improving query performance. Full-text search also uses more sophisticated indexing methods that includes support for linguistic-based searches and superior relevance ranking. While the previous search method (standard indexing) returns results based on literal matches, full-text indexing returns linguistic-based matches. For example, the term "service" can return similar words like servicing and serviced.

    Note to CRM Administrators: When you enable full-text indexing for a database with a large number of columns, the size of the transaction log of the organization database may increase. So as always when configuring Quick Find, consider the implications by reviewing the full TechNet documentation for this feature addition: Configure Quick Find options for the organization

    Go to Top  

    Support for new technologies provided by CRM 2015 Update 0.1:

    The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM and associated CRM Updates against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft releases enhancements via future Microsoft Dynamics CRM Updates or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

    Microsoft Dynamics CRM 2015 Update 0.1 provides support for:

    Hotfixes and updates that you have to enable or configure manually

    Occasionally, updates released via Microsoft Dynamics CRM Updates require manual configuration to enable them. Microsoft Dynamics CRM Updates are always cumulative; for example, Update 0.2 will contain all fixes previously released via Update 0.1 as well as fixes newly released via Update 0.2. So if you install Update 0.2 on a machine upon which you previously installed no Updates, you will need to manually enable any desired fixes for Update Rollups 0.1-0.2:

    • Microsoft Dynamics CRM 2015 Update 0.1: no updates requiring manual configuration

    Go to Top

    Microsoft Dynamics CRM compatibility with technology stack components: Internet Explorer, Windows Client and Server, Office, .NET Framework, and more

    The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM 2015 Update Rollups against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft will release enhancements via future Microsoft Dynamics CRM Update Rollups, Service Packs, or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

    Greg Nichols
    Dynamics CRM Senior Premier Field Engineer
    Microsoft Corporation

    CRM2015u01Podcast.mp3

    Dynamics CRM Developers: Build Your Own Mobile Apps for Windows, iOS, and Android Part 3

    $
    0
    0

    I have explained how to use CRM Mobile Helper Library and how to register your application to Azure AD to use OAtuh 2.0 for authorization, as well as how to use CrmSvcUtil.exe extension to generate early bound types for mobile development.

    You can find part 1 and part 2.

    This time, I explain how to register you application to On-Premise and more tips for Online.

    Register your application to On-Premise

    As I explained in part 1, you need to register your application to use OAuth 2.0. For On-Premise, you register your application to Active Directory Federation Service (AD FS) and below is prerequisites.

    - Dynamics CRM 2013 or above with IFD configured.
    - Windows Server 2012 R2 AD FS.

    This time, I am using Activity Tracker Application for test, which you can download from here. You also need to download CRM Mobile helper from here.

    Confirm RedirectUrl and create ClientId.

    Obtain RedirectUrl which you need to register your application.

    1. Open Microsoft.Crm.Sdk.Mobile.sln and build the project.
    2. Open ActivityTracker.sln you downloaded.
    3. Right click Reference and add reference to compiled “Microsoft.Crm.Sdk.Mobile.dll” at step 1.
    4. Open ActivityTrackerHelper.cs and set breakpoint at line 65.

    image

    5. Start debugging, which downloads NuGet packages and launches Windows Phone emulator.
    6. When hitting the breakpoint, press F11 to move one more step so that you can grab RedirectUrl value.

    image

    7. Note the value.
    8. Next, ClientId. Unlike Azure AD, you can specify which ClientId you want to use. In this case, as sample app already have dummy ClientId, I just re-use it. In real scenario, please generate one by your own. You find ClientId just below the RedirectUri which is “a8c735c8-13bd-4736-beeb-8c715a754bb4”.

    Tweak the application

    To make this application working against On-Premise AD FS, you need to change just one line.

    1. Open ActivityTrackerHelper.cs and go to line 543.
    2. Add “false” as second CreateAsync parameter.
    authContext = AuthenticationContext.CreateAsync(ActivityTrackerHelper.OAuthUrl, false).GetResults();

    Register to AD FS

    Next, you register the application to your AD FS.

    1. Logon to AD FS server and open PowerShell.
    2. Type the following command and press Enter to execute.
    >Add-AdfsClient -ClientId a8c735c8-13bd-4736-beeb-8c715a754bb4 -Name "ActivityTracker" -RedirectUri <your RedirectUri>
    3. To confirm, run the following command.
    >Get-AdfsClient -Name “ActivityTracker”

    Test the application

    1. Run the Activity Tracker App by pressing F5 in Visual Studio.
    2. Enter IFD URL of your On-Premise CRM. Click Check mark will navigate you to sign in page.

    image

    3. Sign in to confirm it works as expected.

    Troubleshooting

    If you have trouble running the application, check the following.

    - If you explicitly specify OAuthURL, make sure you are using AD FS address. For example, if your AD FS server is adfs.contoso.com, then OAuthURL is https://adfs.contoso.local/adfs. (https://adfs.contoso.local/adfs/oauth2 or https://adfs.contoso.local/adfs/ls also works)
    - If you don’t see Form Authentication page never appear, make sure you enabled Form Authentication at AD FS console for Intranet.
    - It seems several environment won’t work correctly due to security settings. Try from different PC, or try using Fiddler to bypass the security for small test. Refer to following link for more detail.
    http://stackoverflow.com/questions/23462697/windows-phone-8-1-emulator-not-proxying-through-fiddler

    Manage Azure AD from your MSDN subscription

    Often time, you use trial Dynamics CRM Online organization to test your mobile application. To use your mobile application against the test organization, there are there choices.

    Option 1. Signup Azure trial subscription by using same credential you login to the CRM organization, then login to Azure Portal to register your application where you can find Azure AD tenant for the trial CRM organization.

    Option 2. Register your application once somewhere and let Azure handle it by using Consent feature. Actually you don’t have to register your application to each CRM tenant you connect to. If your application connecting to different tenant CRM organization than original registration tenant, user simply sees “consent”.

    Option 3. Add Azure AD of the CRM organization tenant to your Azure subscription. By using this method, you are able to register your application to the Azure AD tenant which host your CRM organization, yet you don’t have to signup Azure subscription for each tenant.

    Manage other Azure AD from your Azure subscription

    1. For test, signup CRM Online trial or use your own test CRM Online organization.
    2. Login to Azure Portal by using your existing Azure subscription. I am logging in to current portal (https://manage.windowsazure.com)
    3.  Select Active Directory.

    image

    4. Then click New button on the bottom of the page, select APP SERVICES | ACTIVE DIRECTORY | DIRECTORY, then click Custom Create.

    image

    5. Select “Use existing directory” from DIRECTORY menu. Check the “I am ready to be signed out now” and go next.

    image

    6. You will be signed out and redirected to sign in page. Sign in by using credential for CRM Online organization. Then you will be prompted confirmation. Click continue.

    image

    7. You will sign out then sign in back to your Azure subscription. Now you will find newly added Azure AD tenant. From there you can register your application directly to the tenant.

    Next time, I will explain how you can use CRM Mobile Library and ADAL for Xamarin development.

    Ken
    Premier Mission Critical/Premier Field Engineer 
    Microsoft Japan

    Podcast and Overview: Update Rollup 3 for Microsoft Dynamics CRM 2013 Service Pack 1

    $
    0
    0

    Contents:

    We're proud to announce that all packages for Update Rollup 3 for Microsoft Dynamics CRM 2013 Service Pack 1 were released on Thursday, April 16th 2015 to the Microsoft Download Center!  The Update Rollup 3 packages for Service Pack 1 should appear on Microsoft Update in Q2, 2015.

    Update Rollup 3 for Microsoft Dynamics CRM 2013 Service Pack 1 Build number:

    06.01.0003.0119

    Update Rollup 3 for Service Pack 1 Microsoft Download Center page

    Here's the "Master" Microsoft Dynamics Knowledge Base article for Update Rollup 3 for Service Pack 1: (KB 3016464). Going forward, the plan is for the Master Knowledge Base articles for CRM 2013 and CRM 2015 Updates to be published a bit in advance of release to aid planning.

    Podcast

    On Monday, April 27th 2015 Greg Nichols and Ryan Anderson from the Microsoft CRM Premier Field Engineering Team will provide information about:

    • The release of Update Rollup 3 for Service Pack 1 for Microsoft Dynamics CRM 2013
    • New fixes made available In Update Rollup 3 for Service Pack 1 for Microsoft Dynamics CRM 2013

    during their Microsoft Dynamics CRM 2013 Update Rollup 3 for Service Pack 1 Podcast

    Note regarding Podcasts: We've recently changed the location of where we are hosting and distributing our podcasts.  See PFE Dynamics Podcast Update for more information.

    Go to Top

    The "CRM Update Rollup Collateral Page"

    For pointers to download locations, release dates, build information, and CRM Premier Field Engineering blogs and podcasts for all Microsoft Dynamics CRM Updates, visit the "CRM Update Rollup and Service Pack Collateral Page"

    Go to Top

    General Upgrade Rollup and Service Pack Notes:

    • Testing CRM 2013 Update Rollups: Best Practices
      • Microsoft Dynamics CRM Premier Field Engineering recommends doing all the standard testing you generally do for all Updates, which could be the functional and performance testing that you would do with a new major release or a subset of that test plan
      • The “general rule of thumb” for test plans for Update Rollup installs are:
        • Test any changes in a pre-production environment BEFORE introducing into your production environment. Manage your risk!
        • Consider using the Performance Toolkit for Microsoft Dynamics CRM to simulate your production user load in your testing environment, to shake out any performance-related issues early. The Dynamics CRM Premier Field Engineering can help you with using the CRM Performance Toolkit with CRM 2013 or CRM 2015
        • Test using the permissions your most restrictive end-user roles have. Testing with CRM Administrator permissions, for example, does not give you the complete picture
        • Concentrate on your SDK customizations, JavaScript, ISV add-ons – basically anything that’s not OOB ("Out of Box") functionality or customizations done from within the UI

    Go to Top

    Update Rollup 3 for Microsoft Dynamics CRM 2013 Service Pack 1 packages are available for download via: 

    to update the Dynamics CRM Product installations listed in this Microsoft Knowledge base article:

    Microsoft Dynamics CRM Installations, Updates and Documentation

    Note: Microsoft Dynamics CRM 2013 Updates will be pushed via Microsoft Update as Important updates

    • Client packages installed manually by downloading the packages and running install will require local administrator privileges. If the client packages are installed via Microsoft Update or SCCM (System Center Configuration Manager), they will not require local administrator privileges
    • Consider using Windows Server Update Services (WSUS) or similar software distribution technologies to distribute Dynamics CRM Update Rollups internally.  WSUS is a locally managed system that works with the public Microsoft Update website to give system administrators more control. By using Windows Server Update Services, administrators can manage the distribution of Microsoft hotfixes and updates released through Automatic Updates to computers in a corporate environment
    • For help with installation please see the Installation Information section of the <a href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/Service Pack 1 Update Rollup 2 "master" Microsoft Knowledge Base article">Service Pack 1 Update Rollup 2 "master" Microsoft Knowledge Base article
    • Please review my former teammate Jon Strand's blog posting "CRM 2011: Silently Installing Update Rollups" which provides details on installing CRM Outlook client update rollups "silently" in order to limit end-user interruption, which also applies to CRM 2013 and CRM 2015 Update Rollups and Service Packs

    Go to Top

    Microsoft Dynamics CRM 2013 Update Rollup 3 for Service Pack 1 prerequisites:

    • Essentially the prerequisites listed in the Microsoft Dynamics CRM 2013 Implementation Guide download for the various CRM components serviced

    Go to Top

    Issues resolved via Microsoft Dynamics CRM 2013 Update Rollup 3 for Service Pack 1: 

    Microsoft Dynamics CRM 2013 Update Rollup 3 for Service Pack 1 contains fixes for issues reported by customers or discovered via internal testing.

    Fixes released via CRM 2013 Update Rollup 3 for Service Pack 1:

    • The URL that is used for creating a new business closure can allow a malicious user to inject cross-site scripting (XSS) into the URL of the new closure
    • Duplicate Key error when you import a solution into an upgraded organization
    • In sub grids, multi-line field column headers are not a tab stop
    • Address information is removed in CRM for some contact records that use the CRM Outlook Client
    • In a very small subset of circumstances when you decode a UTF 8 e-mail message from pop3, an email field may be lost
      • This occurs when a header field of interest to CRM is in the first line of results retrieved from the pop3 server
    • Incorrect Contact Mailing Address  synchronizes with Server Side Sync when a contact is promoted from Outlook
    • Assigning records throws an error when the assigning user has assign permissions on a user level
    • Cannot display Note intermittently if setting Note as the default tab of the social panel
    • Removing the preprint privilege for a user will not remove their ability to print records and grids as it would in CRM 2011
    • New Button added in customization.xml for ribbon customization does not display on first attempt
    • SLA - 12:00 AM schedule end time causes an endless loop and spikes the w3wp process
    • Cannot upload files when you use Safari on an iPad with CRM On Premise
    • The URL used for creating a new business closure can allow a malicious user to inject cross-site scripting (XSS) into the URL of the new closure
    • When you attempt to save a new case from an existing case form in Microsoft Dynamics CRM 2013 SP1 UR1 using the Save and Close button, users will encounter script error:
      • Microsoft Dynamics CRM has encountered an error - Unable to get property 'handleSingleClick' of undefined or null reference
    • Adding a multi-line form control such as an iFrame or Web Resource to a form will not respect a non-default number of rows for height if visibility is collapsed by default
    • Quick Find view definition is not properly considered. The columns being defined in the Quick find view are not used in the result that is displayed
    • The Help button in the menu has no text for Screen Readers or Windows Narrator to read
    • The Home button in the menu has no text for Screen Readers or Windows Narrator to read
    • The Settings button in the menu has no text for Screen Readers or Windows Narrator to read
    • Create a CRM 2013 Organization having the English language as base language. Install any language pack on top of it (for example, Norwegian):
      • If a user who sets the Norwegian language as the primary language is his personal options, opens the Out Of Box Sales Pipeline Chart, the user sees the name of this chart in Norwegian
      • However the legend of the chart remains in English
    • Outlook lookup/dialog windows does not scale when the DPI is set to 125 or 150 percent
    • If the Sales Professional Connection Role is deleted then it is no longer possible to remove Sales Team members from an Opportunity
    • When a customer is using LINQ to query the CRM database from inside a plugin step, the query works fine in CRM 2013 UR 2. After upgrading to UR 3, it throws an error
    • Email ModifiedOn Date changes when you use Reply, Forward or Reply All
    • The default font does not have a proper font tag in the HTML Definition
    • Tracing level Options are added to the Outlook Client Diagnostic
    • Field mapping does not work for Option Sets in the tablet app. Option Set values do not get pre-populated
    • addPreSearch is not applied to team lookups when the refresh button is pressed
    • The Connector for Microsoft Dynamics (ERP) Solutions fails to import into CRM at Customer Address entity
    • When you create a Roll up Query that has the ampersand symbol (&) in the field, it fails to open and gives the following error:
      • Error: There was an error processing your request. Please wait and try again later
    • The Dialog box indicating that the Offline Process is complete closes too early
      • When the user assumes the process is already done, they try to access the CRM Data in offline mode and may encounter error messages, crashes, or hangs in Outlook
    • When you upgrade or create a CRM organization on a CRM 2013 SP1 with UR1, during the "Microsft.Crm.Tools.Admin.InstallDatabaseUpdateAction" phase, most of the Out Of Box labels related to the base language of the organization will be updated to blank in the Localizedlabel table in the organization database
    • If you work offline and you have the CRM client for Outlook with SP1 installed and you attempt to open a Sales Order Detail (Order Product) Invoice Detail (Invoice Product) Quote Detail (Quote Product), you receive a generic error on the web page that should have been shown:
      • If you look at tracing, you see the error ArgumentException:
        • Unsupported Entity code. Parameter name: entityTypeCode
    • FilterRelationships on form lookups do not work properly
    • If you try to import the CRM 2013 Management Pack on SCOM 2007 SP1/R2, you get the following error:
      • Cannot load Management Pack from specific sealed assembly file: [C:\Program Files (x86)\System Center Management Packs\ Microsoft System Center Management Pack for Dynamics CRM 2013\Microsoft.Dynamics.CRM.MP] This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded (Exception from HRESULT: 0x8013101B)
    • Users of Microsoft Dynamics CRM 2013 will notice that the fields in the form's footer are not refreshed until the form is closed and reopened
    • When we have a record that has a date and time already defined and click on the pick list to change the time, the first value we see is 0:00 or 12:00 AM instead of the selected value
    • Embedded images do not render in E-mails
    • When you send workbooks as attachments in Microsoft Excel and have Microsoft Dynamics CRM 2013 Client for Outlook is installed, Excel will appear to hang if the user did not save their changes prior to sending the attachment
    • Users of Microsoft Dynamics CRM 2013 may encounter script error dialogs showing an InvalidCharacter Error
    • There are three incorrect translations in the notes section of the activity pane for the German CRM 2013 that are misleading:
      • "Insert note" which is translated to "Knoten eingeben" (translated back it comes out as "Insert Knot" or "Insert Node" as in XML-Node). Expected: "Notiz eingeben."
      • The button "done" is translated to "abgeschlossen" ("closed" in English). Expected: "Fertig."
      • The delete button "Delete Note." The german translation is "Diese Rolle löschen", which would mean "Delete this role."
        • As role is the short form of security-roles, there is confusion about what this button does with security-roles. Expected: "Notiz Löschen."
    • Printer prompts for 8.3"x11" paper when you print a report created in the report wizard
    • When you attempt to save a new case from an existing case form in Microsoft Dynamics CRM 2013 SP1 UR1 using the Save and Close button, users will encounter script errors:
      • Microsoft Dynamics CRM has encountered an error - Unable to get property 'handleSingleClick.'
    • Updates to Appointments are not synced from Outlook to CRM if they are owned by a team of which the user is a member
    • Users that modify the horizontal axis labels on their charts will notice that the charts are displayed incorrectly in Microsoft Dynamics CRM 2013
    • When you try to change views for a grid, if the view picker contains a large amount of options such as 50, Safari on the iPad may not render it
    • You cannot create a record from a custom activity entity when theRegardingObjectId is set
    • When date/time columns are null for a mailbox in CRM Online, 2013, or 2015, and access is tested for that mailbox, the CRM Asynchronous Service will crash
      • The event viewer will record an error stating Host {server name}: failed while monitoring asynchronous operations queue. Event ID 17411
    • When many records are updated in Dynamics CRM, and all of those records have 1 or more workflows which are waiting for updates to those records, performance problems may occur in the SQL database for CRM
      • This could result in the blocking of SQL queries when those records are updated
    • w3wp and crmasync platform trace logs contain Excessive Warnings logged for "Invoking delegate number XX for eventId XX"
    • The onChange event for a field is not triggered for second time if a focus call is made within the onchange script
    • Embedded Images fail to download after organization import. When viewing a network / http trace such as Fiddler, a 404 is occurring because the wrong URL is being used
    • Error mails are received due to the existance of the CrmOrgMailboxPrefix* folder
    • JavaScript using setRequiredLevel("none") does not work on CRM for Tablets for Business Required fields
    • OnChange works incorrectly on the mandatory field if it is selected more than twice
    • Consider the scenario where Plain text emails are promoted\create in CRM using the CRM Email router or SDK:
      • When the body of the email is shown by expanding email in the Social Pane Wall, it doesn't word wrap unless there is an explicit line break
      • In CRM if a user replies to the offending email and is subsequently tracked in CRM, the issue stops occurring for the replied email
      • This issue is reproducible in all browsers
    • Before Service Pack 1 Update Rollup 1, Product Lookup from Order showed Product ID. After Service Pack 1 Update Rollup 1, Product Lookup from Order showed Price Per Unit
      • Also, the Product Name is shown twice in the lookup
    • Receiving Invalid Parameter Error in Mobile Client Application client for sub grid views that contain Related Entity columns
    • Some form field types are not read when you use JAWS disability software
    • Cannot navigate look up fields and they do not return any output to the user when using JAWS disability software
    • When you use JAWS disability software, a search box with results or no results available does not have any auditory feedback
    • You cannot delete a Managed solution when it includes a ribbon customization that references JavaScript
    • Importing solutions is slow in environments with field level security in use
    • When you navigate to a Lookup dialog, using only the keyboard, narrator does not read entries of a lookup control
    • You cannot insert Email Templates after Update Rollup 2 for CRM 2013 Service Pack 1
    • Removing the preprint privilege for a user will not remove their ability to print records and grids as it does in CRM 2011
    • CRM performs HTML encoding for the last recently viewed items which causes name corruption
    • Multi line fields auto grow even when the field definition is not set to "automatically expand to use available space."
      • Once you tab out of the field the Multi line field gets automatically expanded and the scroll bar disappears
      • However, this leads to corruption of the form rendering
    • Upon selecting the chevron in a quote, the Documents button does not appear even though it is in the form
    • When you create a record from a sub grid related through a N:N relationship to the main entity, after filling in the mandatory fields and saving the record, the focus jumps to the parent page
    • Mailboxes stop processing incoming and outgoing email when you use CRM Server Side Synchronization for email processing
      • This occurs when the mailbox that needs to be processed remains in a locked state
    • When you run a report in CRM Online, or when you execute a Sandbox plugin, the report or plugin may fail with an exception similar to the following:
      • >System.Security.SecurityException: Microsoft Dynamics CRM has experienced an error:
      • Reference number for administrators or support: #B944196D: System.Security.SecurityException: Either a required impersonation level was not provided, or the provided impersonation level is invalid
    • NullReferenceException occurs when you send messages to an Azure topic using CRM SDK ServiceBus Plugins
    • 12:00 AM schedule end in Service Level Agreements causes endless loop and spiked w3wp process
    • After Update Rollup 1 for CRM 2013 Service Pack 1, an error occurs when creating Appointments when AutoRouteToOwnerQueue is set to 1
      • This can also occur with plugins in place on Book of appointment

    Go to Top

    Support for identical new technologies provided by CRM 2013 Update Rollup 3 for Service Pack 1:

    The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM 2013 and associated CRM Updates against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft releases enhancements via future Microsoft Dynamics CRM 2013 Updates or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

    Microsoft Dynamics CRM 2013 Update Rollup 2 for Service Pack 1 provides support for:

    Microsoft Dynamics CRM 2013 Update Rollup 3 for Service Pack 1 provides additional support for:

    Go to Top

    Hotfixes and updates that you have to enable or configure manually

    Occasionally, updates released via Update Rollups require manual configuration to enable them. Microsoft Dynamics CRM Update Rollups are always cumulative; for example, Update Rollup 2 will contain all fixes previously released via Update Rollup 1 as well as fixes newly released via Update Rollup 2. So if you install Update Rollup 2 on a machine upon which you previously installed no Update Rollups, you will need to manually enable any desired fixes for Update Rollups 1-2:

    • Update Rollup 1: no updates requiring manual configuration
    • Update Rollup 2: no updates requiring manual configuration
    • Service Pack 1: no updates requiring manual configuration, but some new features need to be enabled by a CRM Server Administrator
      • Go to Settings > Administration and then click Install Product Updates
    • Service Pack 1 Update Rollup 1: no updates requiring manual configuration
    • Service Pack 1 Update Rollup 2: no updates requiring manual configuration
    • Service Pack 1 Update Rollup 3: no updates requiring manual configuration

    Go to Top

    Microsoft Dynamics CRM compatibility with technology stack components: Internet Explorer, Windows Client and Server, Office, .NET Framework, and more

    The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM 2013 and associated Updates against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft will release enhancements via future Microsoft Dynamics CRM 2013 Update Rollups, Service Packs, or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

     

    Greg Nichols

    Senior Premier Field Engineer, Microsoft Dynamics CRM

    Microsoft Corporation

    CRM2013SP1UR3.mp3


    LINQPad 4 Driver for Dynamics CRM is available on CodePlex

    $
    0
    0

    I am pleased to announce that we released “LINQPad 4 Drive for Dynamics CRM” on CodePlex.

    What’s LINQPad?

    LINQPad (http://www.linqpad.net/) is a great tool which you can write and execute LINQ query against many data sources, like SQL Server, Oracle or Web Services. In addition to LINQ query support, the tool also supports C#/F#/VB expression, statement block or program, to write and execute the code and code snippet.

    What can you do with CRM Driver?

    By using CRM Driver, you are able to run LINQ query against Microsoft Dynamics CRM organizations on the fly. Follow the steps below to try it out!

    Install Driver to LINQPad

    1. Download and install LINQPad if you don’t have it yet from http://www.linqpad.net/.

    2. Go to https://linqpaddriverforcrm.codeplex.com/ and click “DOWNLOADS” tab, then download CRMLinqPadDriver.lpx file.

    3. Open LINQPad and click “Add connection” link on top left.

    image

    4. Click “View more drivers…” button at the bottom of the page.

    image

    5. Click “Browse” button in the bottom of the page.

    6. Select downloaded CRMLinqPadDriver.lpx file, then click “Open”.

    7. Click OK.

    image

    Use the Driver

    1. Select “Dynamics CRM Linq Pad Driver” in Choose Data Context and click “Next”.

    image

    2. Click “Login to CRM” button.

    image

    3. Login to your Organization at login screen.

    image

    4. Then it automatically start loading metadata and DataContext from selected organization. Wait until it’s done.

    image

    5. Once “Loading Data” completed, click “Exit”. Then LinqPad starts loading schema, which takes a bit of time. Wait until you see schema information on the left pane like below screenshot.

    image

    Write LINQ query and Execute

    1. Firstly, select added connection from “Connection” dropdown on the top right.

    image

    2. Enter following query to query window.

    image

    3. Click “Play” button or press F5 key to execute query. You will see the result in result pane.

    4. Click SQL tab in result pane, where you can find QueryExpression and FetchXML equivalent to LINQ query.

    image

    image

    Write C# statement and Execute

    In addition to LINQ query, you can write C# as well.

    1. Click [+] tab to open new query window next to existing Query tab.

    2. Select “Connection” again.

    image

    3. Select “C# Statement(s)” from Language dropdown.

    image

    4. Enter following statements and Execute.

    image

    “this” of above statement represents DataContext of your connection, which is CrmOrganizationServiceContext. Therefore “this” has all common method from OrganizationService, as well as methods from OrganizationServiceContext.

    IntelliSense?

    When you use free version of LINQPad, you won’t get IntelliSense, but if you purchase the license, it works like Visual Studio.

    image

    What’s next?

    We would like to hear feedback from you!! As it’s open source, you are able to extend it to your own needs, or you can suggest/report bugs.

    Ken
    Premier Mission Critical/Premier Field Engineer 
    Microsoft Japan

    Customers’ choices… The most popular "Dynamics CRM in the Field" technical blog posts from Premier Field Engineering!

    $
    0
    0

    The CRM Premier Field Engineering content team feel customers can benefit from knowing what technical content we have provided that has been most popular with customers; ranked by number of page views.

    We included the top 10 posts for each of the last three years to cover all of the Microsoft Dynamics CRM versions still supported as per the Microsoft Dynamics CRM Lifecycle Page.

    We'll periodically update these lists as new content is posted.

    Enjoy!

    The Dynamics CRM Premier Field Engineering team

     ========================================================================

    Published in 2015

    Title

    Rank

    Date

    Convergence 2015 Interactive Discussion Topics: Optimization Tips and Tricks

    1

    16-Mar-15

    Convergence 2015 Interactive Discussion Topics: Customization Tips and Tricks

    2

    17-Mar-15

    Convergence 2015 Interactive Discussion Topics: CRM 2015 Upgrade discussion

    3

    16-Mar-15

    Microsoft Dynamics CRM 2015 White Papers & Technical Documentation

    4

    5-Jan-15

    Dynamics CRM Developers: Build Your Own Mobile Apps for Windows, iOS, and Android

    5

    12-Jan-15

    CRM 2015 Upgrade: A Few Things You Can Prepare Ahead of Time

    6

    19-Feb-15

    The Dangers of Guid.NewGuid();

    7

    19-Jan-15

    LINQPad 4 Driver for Dynamics CRM is available on CodePlex

    8

    24-Apr-15

    Memory management for Dynamics CRM in a virtual environment

    9

    4-Mar-15

    Dynamics CRM Developers: Build Your Own Mobile Apps for Windows, iOS, and Android Part 2

    10

    12-Feb-15

     

    Published in 2014  

    Title

    Rank

    Date

    Enable WCF Compression & SSL to Improve CRM 2013 Network Performance

    1

    2-Sep-14

    PFE Core Library for Dynamics CRM on CodePlex and NuGet

    2

    13-May-14

    Dynamics CRM 2011, 2013 and 2015 useful Tools and Features

    3

    4-Mar-14

    Microsoft Dynamics CRM 2013 CSS Style Reference using Browser Developer Tools

    4

    6-Jan-14

    Dynamics CRM Custom FetchXML Reporting with Multiple Datasets using Pre-Filtering

    5

    10-Mar-14

    PFE CRM Trace Log File Reader

    6

    19-Feb-14

    Microsoft Dynamics CRM 2013 Implementation Guide (IG) and Software Development Kit (SDK) …

    7

    12-Feb-14

    Tips : Dynamics CRM 2013 Field Level Data Encryption Management

    8

    30-Jun-14

    CRM Online Test Instance Changes are now live (Sandbox Instances)

    9

    21-Mar-14

    Table Bloat Due to Workflow Log Entries

    10

    29-Sep-14

     

    Published in 2013 

    Title

    Rank

    Date

    Microsoft Dynamics CRM 2015, 2013, and 2011 Updates: Release Dates, Build Numbers, and Collateral

    1

    11-Jul-13

    CRM 2011 Email Router – NullReferenceException error

    2

    21-Oct-13

    Microsoft Dynamics CRM 2013 White Papers & Technical Documentation

    3

    26-Dec-13

    6 Steps to Add a Deployment Administrator in Microsoft Dynamics CRM 2011

    4

    7-Oct-13

    How to install Microsoft Dynamics CRM 2013 without an Internet Connection

    5

    21-Nov-13

    Where did my scripts go? How to debug JavaScript in CRM 2011 post-UR15

    6

    23-Oct-13

    Dynamics CRM 2011 UR11 Critical Update: What you need to know

    7

    29-Jul-13

    CRM 2011 Platform Tracing – Registry vs. Windows PowerShell

    8

    15-Oct-13

    Creating SSL Certificates for CRM Test Environment

    9

    9-Dec-13

    Dynamic Activity Reporting using FetchXML

    10

    1-Jul-13

    Dynamics CRM Developers: Build Your Own Mobile Apps for Windows, iOS, and Android Part 4

    $
    0
    0

    As I promised in the last article, I will explain how to develop a Xamarin app using Visual studio. If you haven’t read previous articles yet, I recommend you read them all:

    Part 1 | Part 2 | Part 3

    Before starting, please note that Dynamics CRM Online 2015 Update 1 released WebAPI developer preview in CRM 7.1 (Carina) supports OData V4, so in the future you may want to build your application on top of it. We’ll address that in a future blog post.

    Develop Xamarin.iOS application

    For this article we’ll assume you already know what Xamarin is as well as the basics of Xamarin.iOS. For this article I used Visual Studio 2013, but you could also use Xamarin Studio.

    Create a solution and add references

    1. Create new project, and select iOS | iPhone | Single View App (iPhone).

    image

    2. Enter Name and click “OK”. I named it Crm.iOS.

    3. Right click the project in solution explorer and click “Manage NuGet Packages..” to launch the NuGet Package Explorer.

    4. In the NuGet Package explorer, make sure you select nuget.org on the left for the search source, then Search for: Json.NET and install it.

    5. Next, change release category to “Include Prerelease” and search ADAL. Select “Active Directory Authentication Library”, and confirm the version is version 3.3 or higher, then install the package (ADAL v3.3+ has support for Xamarin.iOS).

    image

    6. Once you’ve installed the above components, in the solution explorer pane of Visual Studio, Right-click References and click “Add Reference”.

    7. Select following additional assemblies, then press click “OK”.
    - System.Net
    - System.Net.Http
    - System.Runtime.Serialization
    - System.Xml.Linq

    8. Right click the project and click Add | New Folder. Name it as CRMSDK.

    9. Open browser and go to https://code.msdn.microsoft.com/Mobile-Development-Helper-3213e2e6. Download the sample and extract it all to a known location.

    image

    10. In the solution explorer right click the the CRMSDK Folder in the Visual Studio solution explorer under the project, select Add, Existing Item, select all the .cs files you extracted above except CRMHelper.cs .

    image

    11. Once completed, double click Microsoft.Xrm.Sdk,Samples.cs to open the cs file.

    12. Comment out line 35, and 666-682. There lines are for Windows Store/Phone application and Xamarin does not understand it.

    13. Compile the solution once to see if you don’t get any error message.

    Change UI and add code.

    Next, you update existing UI and code.

    1. Double click to open MainStoryboard.storyboard.

    2. Drag and drop a Button control from Toolbox to UI surface, and change the button text to “Login”. Drag and drop a Text Field as well. Name the Text Field as “txtUserName”.

    image

    3. Double click Login button to generate “TouchUpInside event in controller.

    image

    4. Add following class properties. Change serverUri to your CRM organization Uri. You will replace clientId later.

    private string commonAuthority = "https://login.windows.net/common";
    private string clientId = "9e36414a-af12-4d52-989e-564ea978bdd9";
    private Uri returnUri = new Uri("http://crmxamarin");
    private string serverUri = "https://crm2015training10.crm7.dynamics.com";
    private AuthenticationResult authResult;

    5. Add following using statements at the top of the code.

    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    using Microsoft.Xrm.Sdk.Samples;
    using Microsoft.Crm.Sdk.Messages.Samples;
    using Microsoft.Xrm.Sdk.Query.Samples;
    using System.Threading.Tasks;

    6. Add following method which get AccessToken by using ADAL.

    public async Task Authenticate()
    {
        AuthenticationContext authContext = new AuthenticationContext(commonAuthority);
        if (authContext.TokenCache.ReadItems().Count() > 0)
            authContext = new AuthenticationContext(authContext.TokenCache.ReadItems().First().Authority);
        authResult = await authContext.AcquireTokenAsync(serverUri, clientId, returnUri, new PlatformParameters(this));           
    }

    7. Add following method which get UserName by using CRM Mobile Helper.

    public async Task GetUserName()
    {
        OrganizationDataWebServiceProxy proxy = new OrganizationDataWebServiceProxy();
        proxy.ServiceUrl = serverUri;
        proxy.AccessToken = authResult.AccessToken;

        WhoAmIResponse result = (WhoAmIResponse)await proxy.Execute(new WhoAmIRequest());

        var user = await proxy.Retrieve("systemuser", result.UserId, new ColumnSet("fullname"));

        txtUserName.Text = user["fullname"].ToString();
    }

    8. Update TouchUpInside event like following.

    async partial void UIButton5_TouchUpInside(UIButton sender)
    {
        await Authenticate();
        await GetUserName();
    }

    9. Compile the solution to make sure you got no errors.

    Register Application to Azure AD

    To use OAuth 2.0, you need to register your app, which I explain the details in previous articles.
    To simply the steps, I omit the steps here. If you can register application, replace the ClientId in the code above, otherwise you can use the clientid which registered to my own azure ad.

    Run the application

    Finally, you are able to test the application. Run the application using either device or simulator. I use simulator here.

    1. Select iPhoneSimulator and select any simulator. I selected iPhone 6 iOS 8.1. Press F5 to start.

    image

    2. Once simulator launched and application started, click “Login” button.

    image

    3. SignIn page will be shown. Enter credential to connect to Dynamics CRM.

    4. After you signing in, user name will be displayed to the text field.

    image

    Next Action

    In this article, I only used WhoAmI and Retrieve method. Please try more complex scenario by your self. Xamarin.Android or even Xamarin.Forms works in similar way as it’s C# application. I will demonstrate how to build an application by using WebAPI in the next article.

    References

    ADAL sample for Multi-Platform https://github.com/AzureADSamples/NativeClient-MultiTarget-DotNet

    Ken
    Premier Mission Critical/Premier Field Engineer 
    Microsoft Japan

    LINQPad 4 Driver for Dynamics CRM REST/Web API are available on CodePlex

    $
    0
    0

    I am pleased to announce that we released “LINQPad 4 Drive for Dynamics CRM REST and Web API (Preview)” on CodePlex.

    For REST: https://crmlinqpadrest.codeplex.com/
    For Web API (Preview): https://crmlinqpadwebapi.codeplex.com/

    If you are interested in SOAP endpoint driver, please refer to previous blog.
    LINQPad 4 Driver for Dynamics CRM is available on CodePlex

    What’s LINQPad?

    LINQPad (http://www.linqpad.net/) is a great tool which you can write and execute LINQ query against many data sources, like SQL Server, Oracle or Web Services. In addition to LINQ query support, the tool also supports C#/F#/VB expression, statement block or program, to write and execute the code and code snippet.

    What can you do with CRM Driver?

    By using CRM Driver, you are able to run LINQ queries against Microsoft Dynamics CRM REST/Web API endpoints on the fly. Follow the steps below to try it out!

    Install Drivers to LINQPad

    1. Download and install LINQPad if you don’t have it yet from http://www.linqpad.net/.

    2. Go to REST Driver and Web API Driver and click “DOWNLOADS” tab, then download CRMLinqPadDriverREST.lpx and CRMLinqPadDriverWebAPI.lpx file.

    3. Open LINQPad and click “Add connection” link on top left.

    image

    4. Click “View more drivers…” button at the bottom of the page.

    image

    5. Click “Browse” button in the bottom of the page.

    6. Select downloaded lpx file, then click “Open”.

    7. Click OK.

    image

    8. Do the same for another driver.

    Use the REST Driver

    Firstly, I explain how to use REST driver.

    Create Connection

    1. Select “Dynamics CRM REST Linq Pad Driver” in Choose Data Context and click “Next”

    image

    2. If you want to use your own ClientId, then uncheck “Register to Azure AD automatically” I will explain what it is later in this article. Click “Login to CRM”. If you want to run query against On-Premise server, (including IFD), you can leave the option as it is.

    image

    3. Login to your Organization at login screen.

    image

    4. Then it automatically starts doing its work and generates a DataContext from the selected organization. Wait until it’s done.

    5. Click “Exit” button once loading completed. Then LINQPad starts loading the schema, which takes a bit of time. Wait until you see the schema information on the left pane like below screenshot.

    image

    Write LINQ query and Execute

    1. Firstly, select added connection from “Connection” dropdown on the top right.

    image

    2. Enter following query to query window.

    image

    3. Click “Play” button or press F5 key to execute query. You will see the result in result pane.

    4. Click SQL tab in result pane, where you can find OData query for REST endpoint.

    image

    Use the Web API (Preview) Driver

    Next, Web API Driver. Please note that Web API is still preview and you have to use Dynamics CRM Online organization which 2015 Update 1 is applied and the feature is enabled.

    Enable Web API (Preview)

    1. Login to Dynamics CRM Online and navigate to Settings | Administration | System Settings.

    2. Click “Previews” tab and enabled Web API.

    image

    Create Connection

    1. Open LINQPad and click “Add Connections”. Select “Dynamics CRM Web API Linq Pad Driver” in Choose Data Context and click “Next”

    image

    2. If you want to use your own ClientId, then uncheck “Register to Azure AD automatically” I will explain what it is later in this article. Click “Login to CRM”. Login to the organization where you enabled Web API preview.

    3. Then it automatically starts doing its work and generates a DataContext from the selected organization. Wait until it’s done.

    4. Click “Exit” button once loading completed. Then LinqPad starts loading the schema, which takes a bit of time. Wait until you see the schema information on the left pane like below screenshot.

    image

    Write LINQ query and Execute

    1. Firstly, select added connection from “Connection” dropdown on the top right.

    image

    2. Enter following query to query window.

    image

    3. Click “Play” button or press F5 key to execute query. You will see the result in result pane.

    4. Click SQL tab in result pane, where you can find OData query for Web API endpoint.

    image

    Write Statements and Execute

    1. To try functions, select “C# Statements” from Language and write Query like below.

    image

    2. SQL tab gives you OData query, too.

    image

    3. In addition to simple function, you are able to try more complex statements like below. This sample code creates an account, and create an opportunity by referecing the account as its parent.

    // Create Account record.
    DataServiceCollection<account> accounts = new DataServiceCollection<account>(this);
    account myaccount = new account();
    accounts.Add(myaccount);
    // Specify field values
    myaccount.name = "Test Account";
    // Then call SaveChanges to create it.
    this.SaveChanges(SaveChangesOptions.PostOnlySetProperties);

    // Create Opportunity record.
    DataServiceCollection<opportunity> opportunities = new DataServiceCollection<opportunity>(this);
    opportunity myopportunity = new opportunity();
    opportunities.Add(myopportunity);
    // Specify field values
    myopportunity.name = "Test Opps";
    // Assign the account
    myopportunity.opportunity_customer_accounts = myaccount;

    this.SaveChanges(SaveChangesOptions.PostOnlySetProperties);

    Console.WriteLine("Opportunity Created");

    Azure AD Application Registration

    For authentication, Dynamics CRM Online REST based web service endpoints only support OAuth 2. To use OAuth 2.0, you need to register your application (in this case, LINQPad driver) to Azure AD or AD FS (depending on your deployment), which typically requires you to perform manual work. (See Walkthrough: Register a CRM app with Active Directory for more details). To eliminate this manual work, these drivers have a built-in Azure AD Application Registration feature. If you are interested in how to do this, please see the source code.

    By default, it uses your CRM login credential to register the application. However if the credential does not have enough privilege, you will be prompted to enter another credential. If you do not know about this and other people managing your Azure AD, you can ask them to register your application and get the ClientId. Once you get the ClientId, you can use it when adding the connection. Uncheck “Register to Azure AD” checkbox and enter ClientId manually.

    image

    This tool registers your application as follows. If the same application name already exists, then it reuses existing ClientId.

    image

    If you are using On-Premise Server for REST endpoint, the driver uses Windows Integrated Authentication, so it is skipping application registration part.

    Ken
    Premier Mission Critical/Premier Field Engineer 
    Microsoft Japan

    Dynamics CRM Developers: Build Your Own Mobile Apps for Windows, iOS, and Android Part 5

    $
    0
    0

    In the last article, I said I will explain how to use Web API developer preview. However, I got several questions regarding Xamarin.Forms, so I will introduce how you can build Xamarin.Forms app for Dynamics CRM first in this article.

    I assume you already know what is Xamarin, how to register your application to Azure AD, what is OAuth 2.0, overview of Active Directory Authentication Library (ADAL) etc. Please read previous articles for more detail.

    Part 1 | Part 2 | Part 3 | Part4

    Please note, that Xamarin and ADAL are evolving technologies and released new update often, so the technical details in this article may be incorrect when you read it in the near future. I am using Xamarin 3.11.666 and Visual Studio 2013 Update 4 when I write this article.

    Xamarin.Forms

    Xamarin.Forms is one of Xamarin’s product, which lets you write not only business logic but also UI with XAML like technology once and share across multi-platform. Please refer to following link for more detail.
    http://xamarin.com/forms
    http://developer.xamarin.com/guides/cross-platform/xamarin-forms/

    Prepare a solution

    1. Open Visual Studio, and create new project. and select Mobile Apps | Blank App (Xamarin.Forms Shared).
    The reason I do not use Portable Class Library (PCL) is that ADAL doesn’t support Xamarin.Forms yet, thus need to reference ADAL for each project.

    image

    2. Enter name and click “OK”. I name it CrmXForm.

    3. Windows Phone project is targeted to Windows Phone 8.0 by default. Right Click CrmXForm.WinPhone (Windows Phone 8.0) project and click Properties.
    Select Windows Phone 8.1 from Target. Save the changes.

    image

    4. Right click the project in solution explorer and click “Manage NuGet Packages..” to launch the NuGet Package Explorer. Click Updates in the left pane and update Xamarin.Forms to the latest version.

    5. In the NuGet Package explorer, make sure you select nuget.org on the left for the search source, then Search for: Json.NET and install it.

    image

    6. Next, search “ADAL” and select “Active Directory Authentication Library”. Confirm the version is 2.16 or higher which support Silverlight.
    Click Install and it only shows WinPhone project. Click “OK” to install it.

    image

    image

    7. Then search “HttpClient” and select “Microsoft HTTP Client Libraries”, and click Install. Select CrmXForm.WinPhone project and click “OK”

    image

    image

    8. Next, change release category to “Include Prerelease” and search ADAL. Select “Active Directory Authentication Library”, and confirm the version is version 3.3 or higher which supports Xamarin.iOS, and Xamarin.Android. Click Install and select Droid and iOS projects, then click “OK”

    image

    image

    9. Expand CrmXForm.Droid project and right click and click Add References. Add following references.

    System.Net
    System.Net.Http
    System.Runtime.Serialization

    10. Do the same for CrmXForm.iOS project and add following references.

    System.Net
    System.Net.Http
    System.Runtime.Serialization
    System.Xrm.Linq

    11. Delete unnecessary files from iOS projects. Delete iTunesArtwork files and all files under Resources folder of iOS Project.

    12. Right click CrmXForm.iOS project and click Properties. Change SDK version as desired on iOS Build | General. I selected 8.1 here.

    image

    13. Click iOS Application on the left pane, and select 8.1 for Deployment Target and remove Launch Storyborad. I selected 8.1 here.

    image

    14. Build the solution, and run each project to confirm it works fine at this point.

    Add CRM SDK and Help Files

    Next, add CRM and ADAL related codes.  There are many ways to achieve the same, so please feel free to change code or folder structure if you want to manage them in a different way.

    1. Firstly, add CRMSDK files to the shared project. Right click the CrmXForms Shared project and click Add | New Folder. Name it as CRMSDK.

    2. Open browser and go to https://code.msdn.microsoft.com/Mobile-Development-Helper-3213e2e6. Download the sample and extract it all to a known location.

    image

    3. In the solution explorer right click the the CRMSDK Folder in the Visual Studio solution explorer under the project, select Add, Existing Item, select all the .cs files you extracted above except CRMHelper.cs .

    image

    4. Once completed, double click Microsoft.Xrm.Sdk,Samples.cs to open the cs file.

    5. Comment out line 35, and 666-682. There lines are for Windows Store/Phone application and Xamarin does not understand it.

    6. Next, add CRMSDK wrapper which handles Authentication and error handling when calling SDK methods. Right Click the CrmXForms Shared project and add another folder, and name it as Helper.

    7. Right click the Helper folder and add a class file, name it as OrganizationServiceProxy.cs, which will be wrapper of CRMSDK.

    8. Replace the folder with following code. Use“http://crmxform.local” as redirect Uri for Android and iOS and register the application to Azure AD get obtain ClientId.

    using Microsoft.Crm.Sdk.Messages.Samples;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    using Microsoft.Xrm.Sdk.Query.Samples;
    using Microsoft.Xrm.Sdk.Samples;
    using System;
    using System.Threading.Tasks;

    namespace CrmXForm.Helper
    {
        // Inherit from OrganizationDataWebServiceProxy.
        public class OrganizationServiceProxy : OrganizationDataWebServiceProxy
        {
            #region Method     

            public OrganizationServiceProxy()
            {
                ServiceUrl = ServerUri;
            }

            // Wrap SDK methods. This example uses Execute and Retrieve method only.
            public async Task<OrganizationResponse> Execute(OrganizationRequest request)
            {
                // Aquire Token before every call.
                await Authenticate();
                // I omit try/catch error handling to make sample simple.
                return await base.Execute(request);
            }

            public async Task<Entity> Retrieve(string entityName, Guid id, ColumnSet columnSet)
            {
                await Authenticate();
                return await base.Retrieve(entityName, id, columnSet);
            }

            private async Task Authenticate()
            {
                // Make sure AccessToken is valid.
                await GetTokenSilent();

                // Wait until AccessToken assigned
                while (String.IsNullOrEmpty(AccessToken))
                {
                    await System.Threading.Tasks.Task.Delay(10);
                }
            }
           
            #endregion

            #region ADAL

            #region Property

            public AuthenticationContext authContext = null;
           
    #if __ANDROID__
            public Android.App.Activity activity;
    #elif __IOS__
            public UIKit.UIViewController uiViewController;
    #endif

            private string OAuthUrl = "https://login.windows.net/common/oauth2/authorize";
            private string ServerUri = "https://<org>.crm.dynamics.com";
           
            // Register the application to get ClientId.
            private string ClientId = "<your ClientId>";

    #if __ANDROID__ || __IOS__
            private string RedirectUri = "http://crmxform.local";
    #else
            private string RedirectUri = Windows.Security.Authentication.Web.WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString();
    #endif             

            #endregion

            #region Method

            private async Task GetTokenSilent()
            {
                // If no authContext, then create it.
                if (authContext == null)
                {
    #if __ANDROID__ || __IOS__
                    authContext = new AuthenticationContext(OAuthUrl);
    #else
                    authContext = AuthenticationContext.CreateAsync(OAuthUrl).GetResults();
    #endif
                }

                AuthenticationResult result = null;

    #if __ANDROID__
                IPlatformParameters parameters = new PlatformParameters(activity);
    #elif __IOS__
                IPlatformParameters parameters = new PlatformParameters(uiViewController);
    #endif

    #if __ANDROID__ || __IOS__
                try
                {
                    result = await authContext.AcquireTokenAsync(ServerUri, ClientId, new Uri(RedirectUri), parameters);
                    StoreToken(result);
                }
                catch (Exception ex)
                {               
                }
    #else
                result = await authContext.AcquireTokenSilentAsync(ServerUri, ClientId);
                if (result.Status == AuthenticationStatus.Success)
                    StoreToken(result);
                else
                    authContext.AcquireTokenAndContinue(ServerUri, ClientId, new Uri(RedirectUri), StoreToken);
                return;
    #endif
            }

            /// <summary>
            /// This mothod called when ADAL obtained AccessToken
            /// </summary>
            /// <param name="result"></param>
            private void StoreToken(AuthenticationResult result)
            {           
                AccessToken = result.AccessToken;
            }

            #endregion

            #endregion
        }
    }

    9. Save the change and add another class file, and name it as CrmXFormHelper.cs. Overwrite the code with following. This is the helper class which application uses.

    using Microsoft.Crm.Sdk.Messages.Samples;
    using Microsoft.Xrm.Sdk.Query.Samples;
    using Microsoft.Xrm.Sdk.Samples;
    using System.Threading.Tasks;
    using Xamarin.Forms;

    namespace CrmXForm.Helper
    {
        static public class CrmXFormHelper
        {
    #if __ANDROID__
            static public Android.App.Activity activity
            {
                set { Proxy.activity = value; }
            }
    #elif __IOS__
            static public UIKit.UIViewController uiViewController
            {
                set { Proxy.uiViewController = value; }
            }
    #endif
            static private OrganizationServiceProxy proxy;
            static public OrganizationServiceProxy Proxy
            {
                get
                {
                    if (proxy == null)
                        proxy = new OrganizationServiceProxy();
                    return proxy;
                }
            }

            static public async Task<string> GetLoginUser()
            {
                WhoAmIResponse result = (WhoAmIResponse)await Proxy.Execute(new WhoAmIRequest());
                Entity user = await Proxy.Retrieve("systemuser", result.UserId, new ColumnSet("fullname"));

                return user["fullname"].ToString();
            }
        }
    }

    Update Project startup files

    1. Now its time to update each Project startup page to pass information for ADAL to Helper code. Expand CrmXForm.Droid project and open MainActivity,cs. Add below using statement.

    using CrmXForm.Helper;
    using Android.Content;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;

    2. Add following line in OnCreate method.

    CrmXFormHelper.activity = this;

    3. Add following method in MainActivity class which will be called after authentication.

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);
        // Pass the authentication result to ADAL.
        CrmXFormHelper.Proxy.authContext.SetAuthenticationAgentContinuationEventArgs(requestCode, resultCode, data);
    }

    4. Expand CrmXForm.iOS project and open AppDelegate.cs file. Add below using statement.

    using CrmXForm.Helper;
    using Xamarin.Forms;

    5. Replace inside FinishedLaunching method with following code.

    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {           
        global::Xamarin.Forms.Forms.Init();

        var application = new CrmXForm.App();
        window = new UIWindow(UIScreen.MainScreen.Bounds);
        window.RootViewController = application.MainPage.CreateViewController();
        window.MakeKeyAndVisible();
               
        CrmXFormHelper.uiViewController = window.RootViewController;

        LoadApplication(application);
        return true;
    }

    6. Add following code in AppDelegate class.

    UIWindow window;

    7. Expand CrmXForm.WinPhone and expand App.xaml, then open App.xaml.cs file. Add below using statements.

    using Windows.ApplicationModel.Activation;
    using CrmXForm.Helper;

    8. Add following method in App class which will be called after Authentication.

    private async void Application_ContractActivated(object sender, Windows.ApplicationModel.Activation.IActivatedEventArgs e)
    {
        var webAuthenticationBrokerContinuationEventArgs = e as WebAuthenticationBrokerContinuationEventArgs;
        if (webAuthenticationBrokerContinuationEventArgs != null)
        {
            await CrmXFormHelper.Proxy.authContext.ContinueAcquireTokenAsync(webAuthenticationBrokerContinuationEventArgs);
        }
    }

    9. Add following code in InitializePhoneApplication method, which relates above code to ContractActivated event.

    PhoneApplicationService.Current.ContractActivated += Application_ContractActivated;

    10. Double click Package.appxmanifest file and click Capabilities tab. Check Internet (Client & Server).

    image

    Add MainPage

    Finally, lets add a page to the project. As Xamarin.Forms support data binding natively, I am using MVVM model. I am including INotificationPropertyChanged and Relay command in the same file to simply the code, but I recommend to separate those into single files in real application.

    1. Right click the CrmXForms Shared project and click Add | New Folder. Name it as View. Add ViewModel folder too.

    2. Right click ViewModel folder and add a class file, name it as “MainPageViewModel.cs. Replace code with following. This ViewModel will be used by MainPage.xaml which you will add next.

    using CrmXForm.Helper;
    using System;
    using System.ComponentModel;
    using System.Windows.Input;

    namespace CrmXForm.ViewModel
    {
        public class MainPageViewModel : INotifyPropertyChanged
        {
            private string userName;
            public string UserName
            {
                get { return userName; }
                set
                {
                    userName = value;
                    NotifyPropertyChanged();
                }
            }

            public RelayCommand GetUserName
            {
                get
                {
                    return new RelayCommand(async () =>
                    {
                        UserName = await CrmXFormHelper.GetLoginUser();
                    });
                }
            }

            #region INotifyPropertyChanged Members

            public event PropertyChangedEventHandler PropertyChanged;

            // Used to notify Silverlight that a property has changed.
            internal void NotifyPropertyChanged([System.Runtime.CompilerServices.CallerMemberNameAttribute] string propertyName = "")
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
                }
            }

            #endregion

            #region RelayCommand

            public class RelayCommand : ICommand
            {
                private readonly Action _execute;
                private readonly Func<bool> _canExecute;

                public event EventHandler CanExecuteChanged;

                public RelayCommand(Action execute)
                    : this(execute, null)
                {
                }

                public RelayCommand(Action execute, Func<bool> canExecute)
                {
                    if (execute == null)
                        throw new ArgumentNullException("execute");
                    _execute = execute;
                    _canExecute = canExecute;
                }

                public bool CanExecute(object parameter)
                {
                    return _canExecute == null ? true : _canExecute();
                }

                public void Execute(object parameter)
                {
                    _execute();
                }

                public void RaiseCanExecuteChanged()
                {
                    var handler = CanExecuteChanged;
                    if (handler != null)
                    {
                        handler(this, EventArgs.Empty);
                    }
                }
            }

            #endregion       
        }
    }

    3. Right click View folder and add “Form Xaml Page”. Name it as MainPage, which will add MainPage.xaml and MainPage.xaml.cs files.

    image

    4. Open MainPage.xaml file and replace Label to Grid like below.

    image

    5. Open MainPage.xaml.cs. Replace the code with following.

    using CrmXForm.ViewModel;
    using Xamarin.Forms;

    namespace CrmXForm.View
    {
        public partial class MainPage : ContentPage
        {
            MainPageViewModel vm = new MainPageViewModel();
            public MainPage ()
            {
                InitializeComponent ();
                this.BindingContext = vm;
            }
        }
    }

    6. Now set the added page to initial page. Open App.cs. Replace the constructor code as following.

    public App ()
    {
        // The root page of your application
        MainPage = new MainPage();
    }

    7. Compile the solution.

    Compile the solution.

    Run the application

    Let’s try Windows Phone first.

    1. Right click CrmXForm.WinPhone project and click “Set as Startup Project”.

    2. Select target and presss F5. I selected “Emulator 8.1 WVGA 4 inch 512MB”.

    3. When the application launched, click the button.

    image

    4. When you prompted, enter user credential and click “Sign In”.

    image

    5. After you signed in wait for a while and the application displays login user’s fullname.

    image

    6. Let’s try iOS next. Right click CrmXForm.iOS project and click “Set as Startup Project”. Select target and press F5. I selected “iPhone 6 iOS 8.1” simulator.

    image

    7. When the application runs, you will see the button below. Click it.

    image

    8. You will be prompted. Enter user credential and click “Sign in”.

    image

    9.Fullname of login user will be displayed.

    image

    10. Do the same for Android, too.

    Xamarin.Forms PCL and WinRT application?

    The reason I used Xamarin.Forms shared project is because ADAL does not support it yet as I explained. In the future, ADAL may support Xamarin.Forms PCL, and it also supports WinRT application in addition to Silverlight. So what is the best choice? It is up to you, as there are several pros and cons to use Shared vs. PCL, and I do not have any recommendation myself.

    What’s Next?

    As I promised in previous article, I will show you how to use Web API developer preview.

    Ken
    Premier Mission Critical/Premier Field Engineer 
    Microsoft Japan

    Manage Dynamics CRM data and settings with PowerShell!

    $
    0
    0

    Hey everyone, I have a new exciting project to share with the community. Kenichiro  and I recently released a scripted PowerShell module (PSM1) called Microsoft.Xrm.Data.Poweshell.  This PowerShell module enables admins to query and manipulate Dynamics CRM Data. It supports On-Prem and Online and primarily targets releases CRM 2013 and greater, however I have been able to connect to CRM 2011 for basic operations.

    So, what can you do with this PowerShell module?

    • Query, Create, Update, and Delete CRM records
    • Execute workflows, change business units, assign/remove roles
    • Review plugin traces (in CRM version 7.1+ and higher) and Mailbox Trace data
    • Review customization solution import results (including the result XML)
    • Import, export, and publish customizations
    • much more!

    You can download the module by following the link, but I’ve also included installation instructions at the bottom of the post: Xrm.Data.Poweshell: PowerShell for Dynamics CRM Organization Data or you can use the short URL of: https://aka.ms/CRMPowerShell

    Why?

    Reason #1: customers, our customers have been asking for this and Ken and I wanted to make management and querying CRM data easier and accessible to everyone. While the XrmTooling Powershell snapin provides a connection and proxy back to CRM, the proxy is a bit difficult to work with and admins usually just want to get work done. To enable this, Ken and I targeted the most common operations admins and developers would want based on feedback we've heard in the field with customers. Additionally, we’ve packaged the tooling DLL with our module meaning you don’t have to register the snapin to connect to CRM when using this module.

    Also, with CRM onprem and online, admins need a standardized way to query data and configure their instances of CRM (no matter where they're hosted). This module will allow you to import it and get right to work, query data, query metadata, get entity attributes, verify record data that isn't easily viewable in CRM and more. We did our best to follow the common patterns for naming like: 'get-crmRecords', 'connect-CrmOnlineDiscovery'. 

    Who should use this?

    The target audience for the module is for IT Admins, CRM Admins, and developers - it's very helpful to verify attribute metadata, get record counts, look at entity metadata, etc. The module provides basic and common functions to allow easy downloading and usage of the module. We also released several samples to illustrate common uses.

    What’s next?

    • We’re looking at listing this in a repository like Chocolatey (https://chocolatey.org/) so you can install it via OneGet  – this is a work in progress and something we haven’t attempted yet – if you have any tips please share! Smile 
    • I hope to try and get a screencast recorded showing some simple uses of the module to help with getting started quickly
    • We will keep adding more functions to the module, at the same time we'll add more sample scripts so that you can simply modify them and and use them immediately. Any feedback is welcome, so please post Questions in the Q&A section here: https://gallery.technet.microsoft.com/scriptcenter/PowerShell-functions-for-16c5be31/view/Discussions#content 
    • AzureAutomation – currently it appears XrmTooling has some dependencies that we believe are not compatible with Azure Automation (at least not without some tweaking).  Ken and I looking into this, we’ll do what we can to make the current version work or try and get something out to work in Azure Automation if at all possible.

    We look forward to your feedback and as always, thanks for reading! 

    Sean McNellis & Kenichiro Nakamura


    @seanmcne
    @pfedynamics | http://www.pfedynamics.com

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

    PowerShell Module Installation Instructions:

    1. You can download the module here installation instructions are below: Microsoft.Xrm.Data.Poweshell: PowerShell for Dynamics CRM Organization Data

    2. Download the zip file and save it to disk

    3. Right-click the Zip file and press properties 

    4. On the properties page: Check "Unblock" checkbox and click "OK", or simply click "Unblock" the button could look differently depending on the OS.

    5. Extract the zip file and copy "Microsoft.Xrm.Data.PowerShell" folder to one of the following folders:
       • %USERPROFILE%\Documents\WindowsPowerShell\Modules
       • %WINDIR%\System32\WindowsPowerShell\v1.0\Modules 

    The image below shows this module copied to User Profile. If you want all users to have the module accessible on the computer, copy them to System Wide PowerShell module folder instead. If you do not have the folder, you can manually create them.

    6. The module is not signed and you may need to change Execution Policy to load the module. You can do so by executing following command (Please refer to Set-ExecutionPolicy for more information).

    Set-ExecutionPolicy –ExecutionPolicy RemoteSigned –Scope CurrentUser

     

    7. Open PowerShell and run following command to load the module.

    Import-Module Microsoft.Xrm.Data.Powershell

    8. Here is a sample on how to query all accounts from a CRM Online org called “Contoso”

    Import-Module Microsoft.Xrm.Data.Powershell -verbose –force
    $me = Get-Credential
    $myOrg = Get-CrmConnection -Credential $me -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName CONTOSO -verbose
    Get-CrmRecords -conn $myOrg -EntityLogicalName systemuser -Fields *

    #now retrieve all users who have a fullname like ‘Sean%’
    Get-CrmRecords -conn $myOrg -EntityLogicalName systemuser -Fields * -FieldName fullname -FilterOperator like -FilterValue 'Adventure%'

    Performance Tuning with Email Tagging

    $
    0
    0

    One of our customers is adding many new users to Dynamics CRM system almost every month. As the number of CRM users increased, they are starting to see more alerts from their load balancer F5 indicates that IIS is not responding.  After some investigation, it appears the issues are related to requests that have been queued in IIS and are waiting on responses from SQL.  Based on our prior recommendation, they used DynamicsPerf to identify their performance bottleneck.

    Finding Performance Bottleneck

    Performance Analyzer for Microsoft Dynamics is a toolset developed by Premier Field Engineering at Microsoft. The toolset is designed to collect SQL Server Data Management Views (DMVs) and Microsoft Dynamics data into a singular database called DynamicsPerf. This tool helps customers to identify performance issues on Microsoft Dynamics products (CRM, AX, GP, NAV, SL).

    Using DynamicsPerf, they found their most expensive query is related to email tagging:

     

    select

    DISTINCT  top 51 "email0".ModifiedOn as "modifiedon", "email0".MessageId as "messageid", "email0".ActivityId as "activityid",

    "email0".RegardingObjectId as "regardingobjectid", "email0".Subject as "subject", "email0".RegardingObjectIdYomiName as "regardingobjectidyominame",

    "email0".RegardingObjectIdName as "regardingobjectidname", "email0".RegardingObjectTypeCode as "regardingobjecttypecode"

    from

    Email as "email0" join ActivityParty as "activityparty1" on ("email0".ActivityId  =  "activityparty1".ActivityId and (("activityparty1".PartyId = @PartyId0)))

    where

    (( "email0".ModifiedOn >= @ModifiedOn0  and "email0".MessageId is not null))

    order by

    "email0".MessageId asc, "email0".ActivityId asc

     

    Fig 1. Performance statistics

     

    With performance bottleneck identified, what should you do next?

    Enable or Disable Email Tagging

    In CRM 2011 and 2013, email tagging is enabled by default. However, some customers may not need email tagged to be turned on. It is important to review your environment and see if you really need to have email tagging enabled. There are two scenarios that enabling email tagging is useful. If they don’t apply to your environment, then consider to turn off email tagging to improve performance.

    So what are the two scenarios? Our colleague, Aaron Richards, provided great information in his article--CRM E-mail Tracking: Part 3- Tagging Deep Dive:

    1. When the user record (Settings| Administration| Users) is set to use the Email Router. When using the Email Router for incoming and outgoing emails, the CRM for Outlook client cannot tell whether or not the emails should be tracked, as they are routed through the Email Router for tracking instead. Since the tagging process's main goal is to retrieve changes to emails from the CRM Server and bring them to the CRM for Outlook client, tagging will see that these emails have been added to or changed in CRM and that they should be tracked when requesting records from the CRM Server and it will then pull down these change to the CRM for Outlook client to show these emails as tracked.

    2. The second scenario is where the System Settings (Settings| Administration | System Settings) "Track e-mails sent between CRM users as two activities" is not marked. If two CRM users are included on an email, each user has the option to track this into CRM. Now, if User1 tracks this to a specific record (Record A), the Set Regarding record will then be updated on the CRM Server for that email. However, if User2 tracks this email from their CRM for Outlook client and sets the regarding to a different record in CRM (Record B), this will update the Set Regarding for the same email record on the CRM Server. If tagging is enabled on User1's CRM for Outlook client, this set regarding change will roll down to User1's email in their CRM for Outlook client and they will now see this Set Regarding to Record B.

    For the first scenario, it mentioned Email Router for Incoming and Outgoing emails. If you are using server side sync for emails, your tracked emails should show as tracked with email tagging off. So if a user sends an email from within CRM it would show as tracked even if you turned off email tagging.

    After reviewed Aaron Richards’ article and their environment, our customer decided that they are safe to disable email tagging. So they are planning to start to implement this with a small group of users, then roll out to all CRM users.

    Client Side Change

    Our customer wondered how to make this change for their users. Email tagging setting is determined by client side registry keys. It is not a server side setting. So they will need to roll this out to their CRM users via Group Policy. This applied to CRM 2011 and 2013. Again, you can find more detailed information from Aaron Richards’ article--CRM E-mail Tracking: Part 3- Tagging Deep Dive.

    Some customers are asking why not make email tagged disabled by default? That is being considered as an enhancement for future release.

    Helpful Resources

    CRM E-mail Tracking: Part 3- Tagging Deep Dive

    Slow performance when you use the Microsoft Dynamics CRM 2011 client for Outlook

    Dynamics CRM Outlook Client Performance Troubleshooting and Optimizations Guide

    Hope this article is helpful. Thanks everyone!

    Andy



    Podcast and Overview: Microsoft Dynamics CRM 2015 Update 1.1

    $
    0
    0

    Contents:

    We're proud to announce that all packages for Microsoft Dynamics CRM 2015 Update 1.1 (Update Rollup 1) were released September 10th, 2015 to the Microsoft Download Center!  These packages appeared on Microsoft Update October 7th, 2015.

    Why a blog regarding a "CRM Online Update"?

    As you probably know, Microsoft Dynamics CRM 2015 Update 1.1 is generally considered to be the Online-only server changes code-named Carina.  However, there are 3 sets of packages (32- and 64-bit) on the Microsoft Download Center and Microsoft Update that are also compatible with CRM 2015 On-Premise, and contain changes not in already released Microsoft Dynamics CRM 2015 Update 0.1:

    • CRM 2015 Client for Microsoft Office Outlook
    • CRM 2015 MUI (Multi-Language User Interface
    • CRM 2015 Email router

    Note the naming convention change!  Post-RTM Updates used to be called Update Rollups, now they're just called Updates with the version number:

    Was: Microsoft Dynamics CRM Update Rollup 1 or 2

    Is now: Microsoft Dynamics CRM Update 0.1 or 0.2

    For more details, see the Dynamics CRM Product Group blog "New naming conventions for Microsoft Dynamics CRM updates"

    Microsoft Dynamics CRM 2015 Update 1.1 Build number:

     7.1.1.3113

    Microsoft Dynamics CRM 2015 Update 1.1 Microsoft Download Center page

    Here's the "Master" Microsoft Dynamics Knowledge Base article for Microsoft Dynamics CRM 2015 Update 1.1: (KB 3072333). Going forward, the plan is to continue publishing Master Knowledge Base articles for CRM Updates a bit in advance of release to aid planning.

    Podcast

    On October 28th, 2015, Greg Nichols, Ryan Anderson, and Rohan Katpelly from the Microsoft CRM Premier Field Engineering Team provided information about:

    • The release of Microsoft Dynamics CRM 2015 Update 1.1
    • New fixes made available in Microsoft Dynamics CRM 2015 Update 1.1

    during their Microsoft Dynamics CRM 2015 Update 1.1 Podcast

    Note regarding Podcasts: We've recently changed the location of where we are hosting and distributing our podcasts.  See PFE Dynamics Podcast Update for more information.

    Go to Top

    The "CRM Update Rollup Collateral Page"

    For pointers to download locations, release dates, build information, and CRM Premier Field Engineering blogs and podcasts for all supported Microsoft Dynamics CRM Update Rollups and Service Packs, visit the "CRM Update Rollup and Service Pack Collateral Page"

    Go to Top

    Important note:

    An updated Unified Service Desk (Build 06.01.0001.0132) for CRM 2013 Service Pack 1 and CRM 2015 has been released as part of Update Rollup 1 for Microsoft Dynamics CRM 2013 SP1. See the following Microsoft Download Center webpage for download details:

    Unified Service Desk for Microsoft Dynamics CRM 2013 / 2015

    General Upgrade Rollup and Service Pack Notes:

    • Testing CRM Update Rollups: Best Practices
      • Microsoft Dynamics CRM Premier Field Engineering recommends doing all the standard testing you generally do for all Updates, which could be the functional and performance testing that you would do with a new major release or a subset of that test plan
      • The “general rule of thumb” for test plans for Update Rollup installs are:
        • Test any changes in a pre-production environment BEFORE introducing into your production environment. Manage your risk!
        • Consider using the Performance Toolkit for Microsoft Dynamics CRM 2013 and 2015 to simulate your production user load in your testing environment to shake out any performance-related issues early. The link point to a recently-released version of the Toolkit reworked to support CRM 2013 and CRM 2015!  Talk to your TAM (Technical Account Manager) if you want Premier Field Engineering to help your team install and configure it!
        • Test using the permissions your most restrictive end-user roles have. Testing with CRM Administrator permissions, for example, does not give you the complete picture
        • Concentrate on your SDK customizations, JavaScript, ISV add-ons – basically anything that’s not OOB functionality or customizations done from within the UI

    Go to Top

    Microsoft Dynamics CRM 2015 Update 1.1 packages are available for download via: 

    • The Microsoft Dynamics CRM 2015 Update 1.1 Microsoft Download Center page - released September 10th, 2015
    • The Microsoft Update Catalog - released October 7th, 2015
    • The Microsoft Update detection / installation process
      • Note: Microsoft Dynamics CRM 2015 Updates will be pushed via Microsoft Update as Important updates
      • Client packages installed manually by downloading the packages and running install will require local administrator privileges. If the client packages are installed via Microsoft Update or SCCM (System Center Configuration Manager), they will not require local administrator privileges
      • Consider using Windows Server Update Services (WSUS) or similar software distribution technologies to distribute Dynamics CRM Update Rollups internally.  WSUS is a locally managed system that works with the public Microsoft Update website to give system administrators more control. By using Windows Server Update Services, administrators can manage the distribution of Microsoft hotfixes and updates released through Automatic Updates to computers in a corporate environment
      • For help with installation please see the Installation Information section of the Microsoft Dynamics CRM 2015 Update 1.1 "master" Microsoft Knowledge Base article
      • Please review Jon Strand's blog posting "CRM 2011: Silently Installing Update Rollups" which provides details on installing CRM Outlook client update rollups "silently" in order to limit end-user interruption, which also applies to CRM 2013 and CRM 2015 Updates, Update Rollups, and Service Packs for these CRM components:

    Microsoft Dynamics CRM Server 2015

    Microsoft Dynamics CRM 2015 for Microsoft Office Outlook (Outlook Client)

    Unified Service Desk for Microsoft Dynamics CRM 2015

    Provides a configuration-based framework for quickly building agent applications for call centers. You can aggregate customer information from different areas in Microsoft Dynamics CRM into a single desktop and get a 360° view of customer interactions

    Microsoft Dynamics CRM 2015 Email Router

    Microsoft Dynamics CRM 2015 SSRS (SQL Server Reporting Services) Data Connector

    The SSRS Data Connector is not available as an individual download.  It is included in the Microsoft Dynamics CRM Server 2015 download. When you extract the Server package (CRM2015-Server-ENU-amd64.exe /extract:path: extracts the content of the package to the path folder), you’ll find the Data Connector in the SrsDataConnector folder

    Microsoft Dynamics CRM 2015 Language Packs

    Microsoft Dynamics CRM 2015 for Windows 8 (“MoCA” – the Mobile Client Application available via the Windows Store)

    Microsoft Dynamics CRM for iPad (in iTunes)

    Microsoft Dynamics CRM 2015 Report Authoring Extension (with SQL Server Data Tools support)

    Microsoft Dynamics CRM 2015 List Component Microsoft Dynamics CRM 2015 List Component for Microsoft SharePoint Server 2010 and Microsoft SharePoint Server 2013 (for multiple browsers)

    Go to Top

    Microsoft Dynamics CRM 2015 Update 1.1 Prerequisites:

    • Essentially the prerequisites listed in the Microsoft Dynamics CRM 2015 Implementation Guide download or specific TechNet content for the various CRM components serviced

    Go to Top

    Issues resolved via Microsoft Dynamics CRM 2015 Update 1.1: 

    Microsoft Dynamics CRM 2015 Update 1.1 contains fixes for issues reported by customers or discovered via internal testing.

    Fixes released via Microsoft Dynamics CRM 2015 Update 1.1:

    • Daylight Savings Time changes for Egypt
    • Integrated Authentication in a Federated environment fails using the CRM for Outlook client
    • Exporting more than 5000 records results in duplication of records
    • Workflow conditon step evaluation will throw an exception when user's CultureInfo is null
    • USD client error when HKLM write permission is denied although key already exists
    • Multiple Workflow processes are created when an update occurs even when no additional changes are made on the invoice form
    • Running a Workflow on an update step clears the email Body\Description field
    • PublishAll times out as it tries to read all Workflow processes in a draft state
    • Async jobs from one organization may hang due to jobs in another organization
    • When creating new Alternate Keys, it lists owneridtype as an attribute. Trying to create a key with this attribute results in an error
    • When updating large amounts of rollup fields, this will create many entries in the RollupJobBase table and is unable to keep up with processing these jobs, causing them to hang
    • Solution Import fails due to conflict with MailboxTrackingFolders
    • Cannot configure Document Management with SharePoint 2010 and Windows Server 2012.
    • "An error occurred when CRM tried to generate the Excel file" when attempting to Export to Excel
    • When using SharePoint and CRM Integration with the List Component and after creating the Documents folder, the Grid is not visible when navigating back and forth
    • After Upgrading to CRM 2015 Post 7.1, Navigation Bar Items that used to display a scroll bar when they overflow to the right, no longer able to scroll.
    • Subgrids placed in a Quick View form does not work correctly
    • Errors occur when launching Outlook when items are tracked and exist in a non-default Outlook store.
    • After choosing to remain offline in the Outlook Client, the Outlook Client continues to attempt to go online every fifteen minutes.
    • CRM for Outlook client stops working after change of Network password if credentials are cached
    • When an email contains an unresolved party member in the CC line, users will be unable to click the Reply All button.
    • Invalid Argument error on Data Import when Format language code and user interface language code do not match
    • When importing a Solution containing an action the customer gets the following error message:sdkmessage With Id = [GUID] Does Not Exist
    • Navigation Bar does not load when a parameter is added to the querystring of main.aspx

    Known issues that occur by using the Microsoft Edge Browser (with Windows 10) after you install Update 1.1 for Microsoft Dynamics CRM 2015:

    • When a lInk opens in a new Dialog, it is not in focus
    • SSRS Reports will not render properly
    • Multi-line tests appears overlapped
    • Copy and Paste via mouse will not work on certain fields
    • Custom Option value is available on the Selection criteria Field
    • Font does not show up properly using the Japanese language

    Go to Top

    Support for new technologies provided by CRM 2015 Update 1.1:

    The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM and associated CRM Updates against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft releases enhancements via future Microsoft Dynamics CRM Updates or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

    Microsoft Dynamics CRM 2015 Update 1.1 provides support for:

    Hotfixes and updates that you have to enable or configure manually

    Occasionally, updates released via Microsoft Dynamics CRM Updates require manual configuration to enable them. Microsoft Dynamics CRM Updates are always cumulative; for example, Update 0.2 will contain all fixes previously released via Update 0.1 as well as fixes newly released via Update 0.2. So if you install Update 0.2 on a machine upon which you previously installed no Updates, you will need to manually enable any desired fixes for Update Rollups 0.1 - 0.2:

    • Microsoft Dynamics CRM 2015 Update 0.1: no updates requiring manual configuration
    • Microsoft Dynamics CRM 2015 Update 1.1: no updates requiring manual configuration

    Go to Top

    Microsoft Dynamics CRM compatibility with technology stack components: Internet Explorer, Windows Client and Server, Office, .NET Framework, and more

    The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM 2015 Update Rollups against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft will release enhancements via future Microsoft Dynamics CRM Update Rollups, Service Packs, or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

    Greg Nichols
    Dynamics CRM Senior Premier Field Engineer
    Microsoft Corporation

    CRM2015u11.mp3

    Great Power Tools for CRM Administrator: Microsoft.Xrm.Data.PowerShell module – Part I

    $
    0
    0

    Want to change CRM settings for 3,000 users? Or get CRM organization data without having to call a programmer? With Microsoft.Xrm.Data.PowerShell CRM PowerShell module recently published on TechNet, a CRM administrator can become highly productive. This module allow you to perform CRUD operations with Dynamics CRM data and change user and system Settings for both Dynamics CRM Online and On-Premise environments. Here is the good news—these CRM operations are using PowerShell, a skillset you already have for other administrative tasks. 

    The download package also comes with sample scripts to illustrate how to:

    • Operate against multiple CRM organizations
    • Update multiple CRM user settings
    • Provisioning Language Pack
    • Add Azure Active Directory users and CRM Online users from CSV file
    • Add Active Directory users and CRM On-Premise users from CSV file
    • Add CRM On-Premise users from users under specific Active Directory OU

    This blog article will guide you through the process of how to download and start using the powerful CRM PowerShell module. Our colleagues, Sean McNellis and Kenichiro Nakamura, implemented this wonderful PowerShell module. Also, Sean published another blog article--Manage Dynamics CRM data and settings with PowerShell! 

    So let’s get started.


    Step 1. Download PowerShell Module

    You can download CRM PowerShell module from Microsoft.Xrm.Data.Powershell: PowerShell for Dynamics CRM Organization Data. Also, you can find more useful information here. 


    Step 2. Unblock

    Once you have successfully downloaded the file, right click the downloaded zip file and click "Properties". Check "Unblock" checkbox and click "OK". Depending on your OS versions, you can simply click "Unblock" button.


    Step 3. Extract PowerShell module to the appropriate folder

    You can extract PowerShell module to either User Profile folder or System Wide PowerShell module folder. If you want anyone to use the module on the computer, copy them to System Wide PowerShell module folder. If you do not have the folder, you can manually create them.

    Extract the zip file and copy "Microsoft.Xrm.Data.PowerShell" folder to one of the following folders:
       • %USERPROFILE%\Documents\WindowsPowerShell\Modules
       • %WINDIR%\System32\WindowsPowerShell\v1.0\Modules  

    Following image shows this module copied to System Wide PowerShell module folder.

     

     
    Step 4. Check PowerShell version

    As of writing of this blog article, the Microsoft.Xrm.Data.Powershell module requires PowerShell v4.0, so you should perform a PowerShell version check in your environment. To check your PowerShell version, you can access the PSVersion property from PSVersionTable to determine what version of Windows PowerShell is installed on your computer: $PSVersionTable.PSVersion.

     

     

    Step 5. Set Execution Policy

    The Microsoft.Xrm.Data.Powershell module is not signed, so your next step is to change Execution Policy to load the module. You can do so by executing following command:

    Set-ExecutionPolicy –ExecutionPolicy RemoteSigned –Scope CurrentUser

    Please refer to Set-ExecutionPolicy for more information.

     

    Step 6. Load PowerShell Module

    At this point, you can load Microsoft.Xrm.Data.Powershell module. To load the PowerShell module, you can run the following command:

    Import-Module Microsoft.Xrm.Data.Powershell

     

    Step 7. Connect to CRM Orgnization

    You are almost ready to unleash the power of this awesome module, the last step before you can use it is to create a connection to your CRM organization. You can run the following command to connect to Dynamics CRM Organization via the Xrm Tooling GUI:

    Connect-CrmOnlineDiscovery –InteractiveMode

    This will launch a PowerShell Interactive Login window. This windows gives you the option to connect to Dynamics CRM Online or On-Premise environment. Once you provide necessary information, you are connected to your CRM organization.

     

     

     

    Next Steps

    In Part II of this post, I’ll include additional samples to create a sample account, update the account, then remove the account. We are also going to look at how to make user setting changes via PowerShell.

     

    Related References

    Microsoft.Xrm.Data.Powershell: PowerShell for Dynamics CRM Organization Data

    Manage Dynamics CRM data and settings with PowerShell! 

    Using Windows PowerShell 

     

    Thanks,

    Andy Zhang

    Microsoft Premier Field Engineer

    Great Power Tools for CRM Administrator: Microsoft.Xrm.Data.PowerShell module – Part II

    $
    0
    0

    During our Part I of this article, we went through step-by-step process of setting up the Microsoft.Xrm.Data.PowerShell module. I am sure you are ready to see it in action. During this part, we are going to create a sample account, update the record, then remove the account. We are also going to look at how to make user settings change via PowerShell. So let's get started.

    Tryout with a Sample Account

    If you have successfully completed all previous steps, congratulations. Now you can create an account and store record Guid to a variable by running the following command:

    $accountId = New-CrmRecord -conn $conn -EntityLogicalName account -Fields @{"name"="Sample Account";"telephone1"="555-5555"}

    You can go to your Dynamics CRM environment to verify the creation of this account.

     

     

    Next, you can run the following PowerShell command to display the Guid for this account:

    $accountid

    Below is a sample output.

     

    The following command helps you to retrieve a record and store record to a variable:

    $account = Get-CrmRecord -conn $conn -EntityLogicalName account -Id $accountId -Fields name,telephone1

    Now, you can display the record:

    $account

    If you are wondering how to update a record, here is an example of setting new name value for the sample account:

    $account.name = "Sample Account Updated"

    Set-CrmRecord -conn $conn -CrmRecord $account 

    Back to your CRM environment, you should see your sample account has been updated.

    You can run the following command to retrieve the record again and display the result:

    Get-CrmRecord -conn $conn -EntityLogicalName account -Id $accountId -Fields name

    Below is a sample output:

     

     

    Finally, we can do some cleanup work by remove this sample account we just created:

    Remove-CrmRecord -conn $conn -CrmRecord $account

    If you were on that sample record in your CRM environment, by now, you can refresh your record and it will show you the record is no longer available. If you look at the list of accounts, you should no longer see the sample account record.

     

    Retrieve CRM Users

    In this example, we are going to get a list of CRM users in your organization. Assume you have successfully connected to the CRM environment from the previous example, you can run the following PowerShell command:

    $users = Get-CrmRecords -EntityLogicalName systemuser -FilterAttribute isdisabled -FilterOperator eq -FilterValue $false -Fields systemuserid,fullname

    This should get a list of users. Then run the following command to get the exact total number of users:

    $users.Count

    Also, you can run the following command to see user details:

    $users.CrmRecords

    You should see an output similar to the screen output below:

     

    Change User Settings

    You can change user settings using PowerShell commands. In this section, we will change a time zone setting for one of our CRM users. This users used be working on east coast, now she is moved to the west coast. So we need to change her user setting from east coast time zone to west coast time zone.

    If you like to see more examples, please download the sample file and make sure you read the ReadMe document first. The sample file download can be found at Microsoft.Xrm.Data.Powershell: PowerShell for Dynamics CRM Organization Data.

    Let’s get CRM time zone information so we know the time zone code for east and west coast by using the following command:

    Get-CrmTimeZones

    From the previous example, you have successfully retrieved a list of users with their corresponding ids. So now we can update this user’s time zone setting. First, let’s retrieve her current time zone setting by using the following command with this user’s system id:

    $userSettings = Get-CrmUserSettings -UserId e5abdcfc-6967-e311-9408-00155d11652e -Fields timezonecode

    We see that this user’s time zone is currently set to Eastern Time with value of 35.

    To change this user’s time zone setting to Pacific Time, you can use the following command:

    $userSettings.timezonecode = 4
    Set-CrmUserSettings -conn $conn -CrmRecord $userSettings

    The sample PowerShell script and output looks similar to this:

     

     

    Understand Command Details

    From your previous exercise, you have successfully created, updated, and deleted a sample account. Also, you have retrieved a list of CRM users and updated a user setting. There are so much more you can do with this PowerShell module. You can run following command to get all commands:

    Get-Command *crm*

    Also, you can run the following command to get help when you need it:

    Get-Help New-CrmRecord -Detailed

    Below is a sample output for some commands:

     

     

    Final Thoughts

    The Microsoft.Xrm.Data.PowerShell CRM PowerShell module is an awesome tool for CRM Administrators and everybody likes to use PowerShell. As you have seen in our example, it can perform CRUD operations with Dynamics CRM data and change user and system Settings.  Best of all, it works for both Dynamics CRM Online and On-Premise environments. So if you haven’t use it, I recommend—

    1. Download the Microsoft.Xrm.Data.PowerShell CRM PowerShell module
    2. Try out your scenarios
    3. Provide feedback or ask questions on the website--Microsoft.Xrm.Data.Powershell: PowerShell for Dynamics CRM Organization Data

     

    Related References

    Microsoft.Xrm.Data.Powershell: PowerShell for Dynamics CRM Organization Data

    Manage Dynamics CRM data and settings with PowerShell! 

    Using Windows PowerShell 

     

    Thanks,

    Andy Zhang

    Microsoft Premier Field Engineer

    Podcast and Overview: Microsoft Dynamics CRM 2015 Update 0.2 (for CRM 2015 On-Premise)

    $
    0
    0

    Contents:

    We're proud to announce that packages for Microsoft Dynamics CRM 2015 Update 0.2 (Update Rollup 2) were released on November 11th, 2015 to the Microsoft Download Center!  Packages should appear on Microsoft Update in Q4 2015.

    Important Note: An update for the CRM for Outlook client will not be included with this version

    • Clients can remain on the 7.0.1 release for the CRM for Outlook Client or if the fixes included in this release are required, the clients must be upgraded to the 7.1.1 release
    • It is supported to upgrade the CRM for Outlook Client on version 7.0.1 directly to 7.1.1 and does not require first applying the 7.1.0 release

    CRM 2015 Update 0.2 packages are released for:

    • Microsoft Dynamics CRM 2015 Server
    • Microsoft Dynamics CRM 2015 E-mail Router
    • Microsoft Dynamics CRM 2015 Language Pack (aka MUI; Multilanguage User Interface)
    • Microsoft Dynamics CRM 2015 Reporting Extensions (aka SSRS Data Connector)

    Note the naming convention change! For more details, see the Dynamics CRM Product Group blog "New naming conventions for Microsoft Dynamics CRM updates"

    Microsoft Dynamics CRM 2015 Update 0.2 Build number:

    7.0.2.0053

    Microsoft Dynamics CRM 2015 Update 0.2 Microsoft Download Center page

    Here's the "Master" Microsoft Dynamics Knowledge Base article for Microsoft Dynamics CRM 2015 Update 0.2: (KB 3075889). Going forward, the plan is to continue publishing Master Knowledge Base articles for CRM Updates a bit in advance of release to aid planning.

    Podcast

    On Friday, November 13th 2015 Greg Nichols and Ryan Anderson from the Microsoft CRM Premier Field Engineering Team provided information about:

    • The release of Microsoft Dynamics CRM 2015 Update 0.2
    • New fixes made available In Microsoft Dynamics CRM 2015 Update 0.2

    during their Microsoft Dynamics CRM 2015 Update 0.2 Podcast

    Note regarding Podcasts: We've recently changed the location of where we are hosting and distributing our podcasts.  See PFE Dynamics Podcast Update for more information.

    Go to Top

    The "CRM Update Rollup Collateral Page"

    For pointers to download locations, release dates, build information, and CRM Premier Field Engineering blogs and podcasts for all supported Microsoft Dynamics CRM Update Rollups and Service Packs, visit the "CRM Update Rollup and Service Pack Collateral Page"

    Go to Top

    Important note:

    An updated Unified Service Desk (Build 06.01.0001.0132) for CRM 2013 Service Pack 1 and CRM 2015 has been released as part of Update Rollup 1 for Microsoft Dynamics CRM 2013 SP1. See the following Microsoft Download Center webpage for download details:

    Unified Service Desk for Microsoft Dynamics CRM 2013 / 2015

    General Upgrade Rollup and Service Pack Notes:

    • Testing CRM Update Rollups: Best Practices
      • Microsoft Dynamics CRM Premier Field Engineering recommends doing all the standard testing you generally do for all Updates, which could be the functional and performance testing that you would do with a new major release or a subset of that test plan
      • The “general rule of thumb” for test plans for Update Rollup installs are:
        • Test any changes in a pre-production environment BEFORE introducing into your production environment. Manage your risk!
        • Consider using the Performance Toolkit for Microsoft Dynamics CRM 2013 and 2015 to simulate your production user load in your testing environment to shake out any performance-related issues early. The link point to a recently-released version of the Toolkit reworked to support CRM 2013 and CRM 2015!  Talk to your TAM (Technical Account Manager) if you want Premier Field Engineering to help your team install and configure it!
        • Test using the permissions your most restrictive end-user roles have. Testing with CRM Administrator permissions, for example, does not give you the complete picture
        • Concentrate on your SDK customizations, JavaScript, ISV add-ons – basically anything that’s not OOB functionality or customizations done from within the UI

    Go to Top

    Microsoft Dynamics CRM 2015 Update 0.2 packages are available for download via: 

    • The Microsoft Dynamics CRM 2015 Update 0.2 Microsoft Download Center page - released November 11th, 2015
    • The Microsoft Update Catalog (no Client packages this time)
    • The Microsoft Update detection / installation process
      • Note: Microsoft Dynamics CRM 2015 Updates will be pushed via Microsoft Update as Important updates
      • Client packages installed manually by downloading the packages and running install will require local administrator privileges. If the client packages are installed via Microsoft Update or SCCM (System Center Configuration Manager), they will not require local administrator privileges
      • Consider using Windows Server Update Services (WSUS) or similar software distribution technologies to distribute Dynamics CRM Update Rollups internally.  WSUS is a locally managed system that works with the public Microsoft Update website to give system administrators more control. By using Windows Server Update Services, administrators can manage the distribution of Microsoft hotfixes and updates released through Automatic Updates to computers in a corporate environment
      • For help with installation please see the Installation Information section of the Microsoft Dynamics CRM 2015 Update 0.2 "master" Microsoft Knowledge Base article
      • Please review the PFE blog posting "CRM 2011: Silently Installing Update Rollups" which provides details on installing CRM Outlook client Updates "silently" in order to limit end-user interruption, which also applies to CRM 2013 and CRM 2015 Updates, Update Rollups, and Service Packs

    for these CRM components:

    Microsoft Dynamics CRM Server 2015

    Microsoft Dynamics CRM 2015 for Microsoft Office Outlook (Outlook Client) (no Update 0.2 Package release for this)

    Unified Service Desk for Microsoft Dynamics CRM 2015 (no Update 0.2 Package release for this)

    Provides a configuration-based framework for quickly building agent applications for call centers. You can aggregate customer information from different areas in Microsoft Dynamics CRM into a single desktop and get a 360° view of customer interactions

    Microsoft Dynamics CRM 2015 Email Router

    Microsoft Dynamics CRM 2015 SSRS (SQL Server Reporting Services) Data Connector

    The SSRS Data Connector is not available as an individual download.  It is included in the Microsoft Dynamics CRM Server 2015 download. When you extract the Server package (CRM2015-Server-ENU-amd64.exe /extract:path: extracts the content of the package to the path folder), you’ll find the Data Connector in the SrsDataConnector folder

    Microsoft Dynamics CRM 2015 Language Packs (aka MUI, Multi-language User Interface)

    Microsoft Dynamics CRM 2015 for Windows 8 (“MoCA” – the Mobile Client Application available via the Windows Store)

    Microsoft Dynamics CRM for iPad (in iTunes)

    Microsoft Dynamics CRM 2015 Report Authoring Extension (with SQL Server Data Tools support) (no Update 0.2 Package release for this)

    Microsoft Dynamics CRM 2015 List Component Microsoft Dynamics CRM 2015 List Component for Microsoft SharePoint Server 2010 and Microsoft SharePoint Server 2013 (for multiple browsers)  (no Update 0.2 Package release for this)

    Go to Top

    Microsoft Dynamics CRM 2015 Update 0.2 Prerequisites:

    • Essentially the prerequisites listed in the Microsoft Dynamics CRM 2015 Implementation Guide download or specific TechNet content for the various CRM components serviced

    Go to Top

    Issues resolved via Microsoft Dynamics CRM 2015 Update 0.2: 

    Microsoft Dynamics CRM 2015 Update 0.2 contains fixes for issues reported by customers or discovered via internal testing:

    • Unable to change the sort order on a view that has two sort conditions in the Mobile Client
    • "Next Stage" button is lowered and unclickable within Business Process Flows in Google Chrome
    • "Status Reason" options are not being prompted when deactivating a Campaign from Form
    • Unable to uninstall a managed solution
    • Cannot schedule service with CZ number format in place
    • The default font in an Email does not have a proper font tag in the HTML Definition
    • Multi-line fields auto grow even though the field definition is not set to "automatically expand to use available space":
      • Once you tab out of the field the Multi-line field gets automatically expanded and the scroll bar disappears
      • This causes the form rendering to become corrupted
    • After applying Update 0.1 to Microsoft Dynamics CRM 2015, customers are no longer able to import organizations:
      • The following exception is logged: 07:53:20| Error| Import Organization (Name="orgName", Id={orgID}) failed with Exception: System.Data.SqlClient.SqlException (0x80131904): Could not find stored procedure 'p_CreateAuditEntry'
    • If a tracked email is sent from Outlook but viewed or edited before leaving the Outbox folder it will not send
    • Managing Security Roles on large teams can timeout or take a long time to complete
    • Cannot apply Database Updates to CRM 2015 0.1 with SQL Server 2014 Enterprise
    • Bundles product quantities are displayed incorrectly
    • Open Recurring Appointment requires read privilege at higher level than the User level on Activities
    • Egypt Daylight Savings Time fix for 2015
    • SDK: addPreSearch method does not work when applying prefilter to the product lookup
    • When filtering a lookup based on related records, all active records are displayed with the initial dropdown is displayed, instead of the filtered resultsFiltered results being displayed by clicking "Look up more records"
    • SuppressDuplicateDetection parameter not honored in UpdateRequest from a child PipelineExecutionContext
    • Unable to insert Email template for Email message with multiple recipients
    • After the upgrade from CRM 2015 RTM to 7.0.1.129 (CRM 2015 Update 0.1), when users open an Opportunity record, the form functions incorrectly and the user is not able to edit the fields
    • Advanced find view is unable to sort on Estimated Date field
    • Cannot tab into ellipsis buttons on Report Wizard, and tooltip is missing
    • Cannot tab into Service Calendar or Service Calendar items
    • Emails sent out in Microsoft Dynamics CRM 2015 from a Quick Campaign are not including attachments if the email was created from a template that had an attachment
    • If you import a managed solution containing one or more entity scoped business rules which are conditional on a custom field also contained within the solution, you may not be able to delete the solution due to dependency issues
    • When upgrading from CRM 2013 to CRM 2015 some entities business rules may be deactivated
      • For example, where you upgrade from CRM 2013 SP1 UR1 to CRM 2015 with active Business Rules on Account, Contact and Opportunity
      • After the upgrade Account and Contact are Deactivated but Opportunity might be Active
    • Email address gets removed when performing the Save action for an Email activity
      • This only happens when the Email Address exists within multiple CRM records, for example when 2 contacts have the same email address
    • Japanese text shows up as invalid characters in Email description on Activity
    • Every time an Email is being promoted to CRM in the Microsoft Dynamics CRM 2015 Client for Outlook, users are shown two progress dialogs with the titles of "Contacting CRM" and "Wrapping Up"
      • This interrupts the tasks the users are working on as all mouse and keyboard actions are blocked
    • When creating a User Chart for the QueueItem entity for a Public Queue in Microsoft Dynamics CRM 2015, the chart will not be displayed
    • When adding a Phone Call to an Account from a subgrid on the Account form, the call to and regarding objects are not pre-populated
    • The information regarding how a Lead was created from a Campaign Response in Microsoft Dynamics CRM 2015 is not being retained during the conversion process
    • Unable to proceed to the next stage of a Business Process with mandatory fields populated
    • Yomi field customization form does not show correctly and errors occur while saving the record
    • In Advanced Find, some lookup fields have less operators available to pick that other lookups
    • For CRM 2015 organizations with PT-BR or ES language base, a user is not able to define the Conditions for the Calculated fields for the following entities:
      • Opportunity Product, Order Product, Quote Product, or Invoice Product
      • The same error happens to define condition for the Business Rule on the entity Opportunity Product
    • The header of an Email sent from CRM 2015 is not encoded
    • Unable to change the Access Team template in a custom subgrid
    • Custom field gets disabled when placing multiple fields on a form
    • Exported solution contains unnecessary tags
    • Adding a multi-line form control such as an Iframe or Web Resource to a form will not respect a non default number of rows for height if visibility is collapsed by default
    • Clicking the home button in a chart after drill down becomes stuck in a load state
    • Length of an exported file name changes when it contains double-byte character
    • An all day Appointment is displaying an incorrect duration:
    • If you create a DST (Daylight Saving Time) all day Appointment in the web client, then the Appointment will be displayed incorrectly in the Mobile Client with Duration 2 days
      • Also, if you create the DST all day Appointment in the Mobile Client, then the Appointment will be displayed incorrectly in the web client with Duration 2 days
    • Onload Script does not work with PreSearch filter in Mobile tablet Application
    • Modifications of the remainingterms field within the Entitlement entity after case closure does not get tracked in auditing
    • Assigning records throws an error when assigning the User has User level assign permissions
    • If a Note is entered using the Chrome browser and the title ends in a number, then the Note title is changed to the current datetime
    • Unable to install Dynamics CRM to a SQL Instance shared with Dynamics GP
    • The Done button in Contact is displayed in Japanese even though the UI Language is set to English
    • View sort as descending on Activity Type causes a SQL error
    • Quick Find view definition is not properly considered:
      • The columns being defined in the "Quick find view" do not get used in the result that is displayed
    • When Adding Activities from an Opportunity/Quote/Order/Invoice subgrid, a JavaScript error is displayed:
      • Unable to get property 'entity' of undefined or null reference
    • An error occurs in SharePoint Document Management regarding pop-ups even though pop-up blocker is disabled when using Microsoft Edge or Google Chrome
    • Microsoft System Center Management Pack for Dynamics CRM 2015 version 7.0.0.0 discovers additional servers as being CRM servers
    • After a Solution Import a Workflow loses content regarding OptionSet fields that aren't visible at the form
    • NavBar does not load when parameter added to querystring of main.aspx
    • Organization statistics will now be validated at an organizational level based on the Client UEIP Disabled setting in OrgDBOrgSettings
    • Many Lines of Filter Criteria for Report Filter page causes Run Report button to be lost
    • Outlook client stops working after change of Network password if credentials are cached
    • When you add new licensed users in CRM Online, those users are not created
    • Async Service Stops Processing Jobs Requiring Async Service Restart
    • SLA Timer on cases showing incorrect time for non English region setup
    • Using SDK clearOptions method may result in the error "Unable to get property 'get_editElement'"
    • Assigning records throws an error when assigning user has user level assign permissions

    Go to Top

    Full Text indexing now provided for CRM On-premise customers with Update 0.1 and later!

    By default, Microsoft Dynamics CRM 2015 with Update 0.1 installed uses the same search functionality that was available in previous releases, which is based mostly on string matches. Now, with CRM 2015 Update 0.1, CRM system administrators have the option to use full-text indexing for Quick Find.

    We recommend that you consider enabling full-text indexing for Quick Find because it can provide a better search experience by improving query performance. Full-text search also uses more sophisticated indexing methods that includes support for linguistic-based searches and superior relevance ranking. While the previous search method (standard indexing) returns results based on literal matches, full-text indexing returns linguistic-based matches. For example, the term "service" can return similar words like servicing and serviced.

    Note to CRM Administrators: When you enable full-text indexing for a database with a large number of columns, the size of the transaction log of the organization database may increase. So as always when configuring Quick Find, consider the implications by reviewing the full TechNet documentation for this feature addition: Configure Quick Find options for the organization

    Go to Top  

    Support for new technologies provided by CRM 2015 Updates:

    The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM and associated CRM Updates against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft releases enhancements via future Microsoft Dynamics CRM Updates or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

    Microsoft Dynamics CRM 2015 Update 0.1 provides support for:

    Microsoft Dynamics CRM 2015 Update 0.2 provides support for:

     

    Hotfixes and updates that you have to enable or configure manually

    Occasionally, updates released via Microsoft Dynamics CRM Updates require manual configuration to enable them. Microsoft Dynamics CRM Updates are always cumulative; for example, Update 0.2 will contain all fixes previously released via Update 0.1 as well as fixes newly released via Update 0.2. So if you install Update 0.2 on a machine upon which you previously installed no Updates, you will need to manually enable any desired fixes for Update Rollups 0.1-0.2:

    • Microsoft Dynamics CRM 2015 Update 0.1: no updates requiring manual configuration
    • Microsoft Dynamics CRM 2015 Update 0.2: no updates requiring manual configuration

    Go to Top

    Microsoft Dynamics CRM compatibility with technology stack components: Internet Explorer, Windows Client and Server, Office, .NET Framework, and more

    The Microsoft Dynamics CRM Engineering team consistently tests Microsoft Dynamics CRM 2015 Update Rollups against pre-release and release versions of technology stack components that Microsoft Dynamics interoperates with. When appropriate, Microsoft will release enhancements via future Microsoft Dynamics CRM Update Rollups, Service Packs, or new major version releases to assure compatibility with future releases of these products. This compatibility matrix is updated via this Microsoft Knowledge Base article: Microsoft Dynamics CRM Compatibility List.

     

    Greg Nichols
    Dynamics CRM Senior Premier Field Engineer
    Microsoft Corporation

    CRM2015u02.mp3

    Microsoft.Xrm.Data.PowerShell module and samples are on GitHub!

    $
    0
    0

    Hi everyone,

    After getting feedback from the community, we decided to move our Microsoft.Xrm.Data.PowerShell hosting site from IT Gallery to GitHub.

    image

    GitHub: https://github.com/seanmcne/Microsoft.Xrm.Data.PowerShell
    Releases: https://github.com/seanmcne/Microsoft.Xrm.Data.PowerShell/releases/
    Issues (Q&A) https://github.com/seanmcne/Microsoft.Xrm.Data.PowerShell/issues

    All the related samples are hosted below
    GitHub: https://github.com/seanmcne/Microsoft.Xrm.Data.PowerShell.Samples

    What does this mean?

    This benefits our project in many ways:

    Release History
    With GitHub, you can see all the release builds and source code. We strongly recommend you to get the latest though.

    See the latest and greatest code
    We release the module relatively often, but if you want to get the latest, then you can simply grab the code from master branch.

    1. Go to https://github.com/seanmcne/Microsoft.Xrm.Data.PowerShell.
    2. Click Download ZIP button on left side.
    3. Extract the files and replace psm1 and psd1 files.

    Issue tracker
    We communicate with you in Q&A section before, but now you can put questions in Issues, and we have more granular control who (either Sean and me at this point) work on that and what’s the plan for release.

    CONTRIBUTION!!
    If you are developer, we welcome your contribution!!!

    How to contribute

    It’s not so hard to contribute to this project, though you need to know how to use GitHub, the basic steps are:

    1. Signup for a GitHub account
    2. Fork the repository
    3. Create branch
    4. Work on code
    5. Commit your change to your own branch / fork
    6. If you want to suggest a change in our project, create a Pull Request, so that we can see your code and determine if it can be merged in

    Though there are no templates, you can simply copy one of the function and start from there. If you choose to create a pull request, we will review it to give feedback, please do not hesitate to contact us for more detail.

    Ken
    Premier Mission Critical/Premier Field Engineer 
    Microsoft Japan

    Microsoft Premier Field Engineer

    Viewing all 393 articles
    Browse latest View live


    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>