• About

Information Dynamics

Information Dynamics

Monthly Archives: October 2014

Plug-in Dynamics CRM Part -2

28 Tuesday Oct 2014

Posted by GIRISH SRINIVASA in Uncategorized

≈ 1 Comment

The CRM Explorer that integrates with VS 2012 IDE provides a view of all Entities and we can select a particular Entity against which plug-in’s can be registered.

CreatePluginDialog

Right click on the Account entity and select Create Plug-in option and this will bring up the Create Plugin dialogue.

Some of the features of Create Plug-in dialogue include:

  • Plugin Dropdownlist: This list will provide the list of assemblies in the solution as we can attach more than one plug-in to an entity
  • Class: This will the name of the Custom class that we will writing code against.
  • Primary Entity Dropdown: Locked against the entity selected.
  • Message: This indicates the actions for which code is written.
  • Execution Order: As several plug-ins can be registered against we can specify the sequence order like 1,2,3 etc.

Once the required information is entered and the end VS2012 solution should like the one below:

CreateSolutionComponents

The CrmPackage is the one that will be used to deploy the plug-in and RegisterFile.crmregister is similar to Web.Config/App.Config  files and contains information about the plug-in that will be deployed to the CRM system.

The following will be the contents of the RegisterFile.crmregister file before custom classes are created using Create Plug-in dialog box.

CrmRegisterFile

After a Create Plugin option is selected against a entity the resulting file will look like this the value Id=”000….” indicates that the plug-in is not deployed to the CRM system yet:

Plug-inVS2012

Right Click on the CrmPackage and choose the Deploy option once successfully deploy the contents of above file will be modified and the Id value will be populated. The following screen snap shots demonstrate the various stages:

PluginDeploy

PluginSuccessfulDeployRegisterFile

You can also view the plug-in in CRM solution as shown below. In this instance I am looking at Event Management solution that I have been working on:

Plug-inCRMSolutionView1

Plug-inCRMSolutionView2

In the next section I will be expanding on the plug-in functionality along the way look at early/late binding programming models, debugging and tool(s) available that might be better than CrmSrvUtil.exe for generating the strongly type classes.

Plug-in Dynamics CRM – Part 1

24 Friday Oct 2014

Posted by GIRISH SRINIVASA in CRM2013

≈ 1 Comment

Plug-in is a .NET assembly written to intercept the events generated from CRM system so as to modify or augment the standard behavior of the platform. When we talk about registering a plug-in it implies that we are subscribing to the events from the CRM system.

Scenarios where plug-in can be used:

  • Legacy system integration
  • Extending or customizing the behavior of the CRM system.

In the most simplest scenario we can consider a record created in Account entity as an event.

EventExecutionPipeLine

There are two execution modes available for plug-in’s in CRM platform viz., synchronous and asynchronous.

Synchronous Mode: Blocks the CRM application from start of the event until it is completed.

Asynchronous Mode: Release the application process so the user can continue to work with CRM application. Asynchronous Service (Asynchronous Processing Service) of the CRM platform does the execution of the plug-in configured in this mode.

The event pipeline is configurable and we can specify when in the event the plug-in code will execute. In this context there is Pre-Event and Post-Event stages(before and after scenarios). The stages are now part of SQL transactions and rollback can be performed.

The Developer Toolkit that comes as part of CRM 2013 SDK allows integration into VS2012 IDE providing templates to create solutions comprising of Plug-in’s, Workflow, Silverlight components.

VS2012Templates

Once the template is selected a dialog appears to allow connection to CRM system

CreateSolution1

CreateSolution2

CreateSolution3

The Organization and Solution Name drop down lists provides the option of selecting a available solutions for Organization. The final solution structure looks like below:

CreateSolutionComponents

Important files in the above solution snap shot include:

CrmPackage: Contains the RegisterFile.crmregister hold the information regarding the plugin in xml format. The details available are used to deploy the plug-in to CRM

CrmRegisterFile

Plugins , Workflow: .NET Assembly projects

In Part 2 I will be implementing custom logic to create a Task on creation of Account.

Creating Entity Records

17 Friday Oct 2014

Posted by GIRISH SRINIVASA in CRM2013

≈ Leave a comment

Dynamics CRM platform provides two approaches to create entity records via the UI:

  • Go to the required area and select the entity to create a new record for example Marketing > Contact > New RecordCreateEntityRecord
  • Use quick create forms

CreateEntityRecordQuickCreateCreateEntityRecordQuickCreate1CreateEntityRecordQuickCreate2

Optimization and Performance Tuning of Dynamics CRM Platform

17 Friday Oct 2014

Posted by GIRISH SRINIVASA in CRM2013

≈ Leave a comment

Dynamics CRM platform performance can be quantified by looking at the following attributes:

  • TTFB (a.k.a Time to First Byte) the time it takes for the first byte of information to be returned from the server to client once request is made.
  • DOM Content Loaded: An event is triggered when the page’s DOM is ready and when the document is completely parsed and loaded. As an example look at http://ie.microsoft.com/testdrive/HTML5/DOMContentLoaded/
  • Page Load Time: An event triggered when the entire page is loaded.

For good performance consider the following:

  • A lot of customizations on the form imply more time it takes to load and change.
  • Ribbon customization causes performance issues. The xml written behind the ribbon needs to loaded.

The following check list can be used to as a general guide:

  • Optimize Form Load Experience
  • Minimize the number of fields on the Form
  • Minimize usage of Scripts
  • Minimize Ribbon Customizations
  • Use collapsed sections where possible, use sub-grids where required more sub-girds increase page size quickly.
  • Disable or reconfigure OOTB CRM jobs, there is a Job Editor tool that can be obtained at http://crmjobeditor.codeplex.com/
  • Rebuild indexes.

SQL Server Performance Tuning:

For the OOTB entities in CRM indexes does exists, given additional custom entities can be added or new fields can be created on system entities to take advantage of xRM capabilities, indexing management becomes our responsibility. Some tools/places that can point to problem queries include:

  • Event viewer under “Application” where there will be warnings under Source MSCRMPlatform regarding performance of query execution.
  • Checking activity monitor of SQL server to look at Long Running Queries, use SSMS to display estimated execution plan.

Additional Reading:

  • http://blogs.technet.com/b/dynamicspts/archive/2013/08/20/performance-optimization-for-dynamics-crm-2011-clients.aspx
  • http://www.dynamicscrmpros.com/dynamics-crm-2011-performance-tuning-part-1/
  • http://www.dynamicscrmpros.com/microsoft-dynamics-crm-2011-performance-tuning-part-2/
  • http://www.microsoft.com/en-au/download/details.aspx?id=27139

Data Management Capabilities

14 Tuesday Oct 2014

Posted by GIRISH SRINIVASA in CRM2013

≈ Leave a comment

The various tasks/functions that can be performed on data in Dynamics CRM platform are available under System > Data Management

CRMDynamics2013DataManagement

Duplicate Detection Settings : Applicable at the organization level

Duplicate Detection Jobs: Set up schedule jobs to run in the background

Data Maps and Templates for Data Import: Facilitate data import/export

The scheduled jobs can be controlled and the options available are as shown below:

CRMDynamics2013DataManagementActions

New Features of Microsoft Dynamics CRM 2013

14 Tuesday Oct 2014

Posted by GIRISH SRINIVASA in CRM2013

≈ 1 Comment

UI Enhancements:

  • No more left-side navigation menu, the items are moved to the top menu

CRMDynamics2013LeftNavigation

  • Web Client uses Command bar

CRMDynamics2013CommandBar

  • Bing Map Integration while entering Address information on a form
  • The interface flow now uses left-to-right consumption rather than the traditional top-to-bottom.
  • Records are automatically saved every 30 seconds. The status being displayed at the bottom right of the screen. Autosave works only after a new record has been first saved manually and then any subsequent edits are autosaved.
  • Image association to an entity record.
  • Business Process Flows(BPFs) enable utilization of guided business rules to the application.
  • BPF’s can be used on several out-of-box entities viz., Account,Email,Fax etc.
  • BPF’s on Custom entities can be used by enabling the option.

CRM2013EnableBPF

Benefits of BPF’s

  • Define the steps needed for desired outcome
  • Track where a particular record is in the process
  • Stage demarcation (a.k.a “stage-gating”) to enforce data entry before proceeding to next step
  • Maximum of 5 entities in a BPF
  • Maximum of 10 active BPF’s per entity and 30 states per BPF.
  • Controlled by security to enable editing of BPF to incorporate new rules in real time.

Entity Customization

06 Monday Oct 2014

Posted by GIRISH SRINIVASA in CRM2013

≈ Leave a comment

Dynamics CRM platform uses the term Entity (commonly known to developers as Tables) to store the information about specific type of record. The platform installation creates about 260 system entities. Custom entitie(s) (aka Custom Table(s)) can be created to address the needs of the organization.

There are two options available for Entity Ownership viz., User or Team and Organization.

User or Team Ownership > This will add a new field called Owner that facilitates assigning the Entity between Users and Team.

Organization Ownership > There will no Owner filed created and hence cannot be assigned between Users and Team.

Activity Entity: While creating a custom activity there is the option to create the entity as an activity. This allows the entity to appear in UI in other locations.

CRM2013NewEntityDialog

The following screen shots show form for creating new Custom entity and the table created in [Organization]_MSCRM database:

CRM2013CustomEntityCreate

CRM2013CustomEntityCreateSQLTable

User Access Configuration – Case Management

02 Thursday Oct 2014

Posted by GIRISH SRINIVASA in CRM2013

≈ Leave a comment

The following section demonstrates configuring user access to individual Case records.

The Business Unit structure setup considered is:

CRM2013BusinessUnitStructureSample

Three users are set up in AD viz., AWC User1, AWC User2, AWC User3

CRM2013ADUsers

  1. With CRM organization I have created three custom security roles viz., AWC CSR, AWC Marketing and AWC NPD

CRM2013AWCSecurityRoles

2. Once the users are created in AD, go to CRM and add the users by going to Settings > Administration > New User

CRM2013CreatingNewUser

After the saving the information entered attach a security role by choosing Manage Roles menu option

CRM2013NewUserManageRoles

3. Go to Service > Cases and create a New Case

CRM2013NewCases

4. Now open IE and choose the option “Run as different user”, if you  logon using CORP\awcuser1 or CORP\awcuser2 or CORP\awcuser3 you should the see case as applicable to the Owner.

User and Team Management

01 Wednesday Oct 2014

Posted by GIRISH SRINIVASA in CRM2013

≈ Leave a comment

In Dynamics CRM platform there is clear distinction when it comes to management of security in CRM from how the user actually signs into the system. Dynamics CRM platform does not provide a password management or an authentication mechanism.

Once the users are authenticated into CRM system the following user maintenance functionality can be performed:

  • Create Users
  • Enable and Disable Users
  • Identify managers for Users
  • Create Teams
  • Delete Teams
  • Assign Users to Teams
  • Assign Security Roles to Users and Teams
  • Move Users and Teams between Business Units.

The User management function can be accessed by going to

Settings > Administration > Users

CRMUserManagement

Every user needs to be attached to a security role. If they are not then the Dynamics CRM platform prompts the administrator to attach security roles otherwise further functions cannot be performed.

CRM2013EnabledUsersMissingSecurityRole

Example of creating a New Case and adding a Owner (User) without a Security Role attached.

CRM2013NewCaseMissingSecurityRole

There are two types of teams owner Teams and access Teams. 

Owner Team: Can be assigned Security Roles and therefore own records.

Access Team: Cannot have Security Roles and hence cannot own records.

Team Management feature is accessed from Security > Administration > Teams

CRMTeamManagement

Subscribe

  • Entries (RSS)
  • Comments (RSS)

Archives

  • November 2021
  • August 2021
  • July 2021
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • March 2019
  • September 2018
  • February 2018
  • January 2018
  • December 2017
  • January 2017
  • August 2016
  • January 2016
  • November 2015
  • October 2015
  • September 2015
  • November 2014
  • October 2014
  • September 2014
  • July 2014

Categories

  • ADCS
  • ADFS
  • ADFS 4.0
  • ASP.NET Core
  • Azure
  • Azure AD
  • Azure AD DS
  • Azure B2C
  • CRM 2011
  • CRM2013
  • CRM2015
  • CRM2016
  • Docker
  • Dynamics 365
  • Dynamics 365 CE Online
  • Dynamics 365 Portals
  • Dynamics CE 9
  • Knockout and TypeScript
  • OAuth2.0/OpenIDConnect
  • Power Platform
  • PowerApps
  • PowerShell
  • SharePoint 2019
  • Spkl
  • Uncategorized
  • WebAPI
  • Windows Server 2012
  • Windows Server 2016

Meta

  • Register
  • Log in

Blog at WordPress.com.

  • Follow Following
    • Information Dynamics
    • Already have a WordPress.com account? Log in now.
    • Information Dynamics
    • Customize
    • Follow Following
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar
 

Loading Comments...