Category: Dynamics CRM

  • Steps to upgrade Online CRM to Dynamics 365

    Steps to upgrade Online CRM to Dynamics 365 – Microsoft Dynamics 365 CRM out into the market and to use new features like field services etc, you have to upgrade online CRM to 365. Upgrading online CRM is very confusing as users have not full control over instance and have fear to lose data or customizations. To give Dynamics CRM upgrade a clear view you can refer this article.

    Step1: Setup Sandbox instance of your Online CRM.

    Dynamics CRM Sandbox account is useful for development and to test customizations before publishing on a production instance. It’s also useful for upgrade process from lower version to upper version.

    Sandbox instance as can be purchased as add-on subscription or with 25 user’s subscription licenses. To setup, sandbox instance using production instance, select production instance and click on copy icon.

    Dynamic 365

    It takes to Copy instance window.

    The properties you need to care about are:

    1. Target Instance: In the current case, it will be production instance.
    2. Copy Type: Recommended type is a Minimal copy.
    3. Name: should be the name of Sandbox instance.

    And click on Copy. It will take a while to update sandbox account copy of production.

    update sandbox account copy of production

    Step 2: Test upgrade of sandbox instance

    When a copy of production as sandbox instance, is ready to test CRM instance upgrade process using sandbox CRM instance.

    One thing you need to know that is when production instance is ready for an upgrade, to let that know go to Admin Center > Dynamics CRM.

    Admin Center Dynamics CRM

    Instances that are eligible to update will see Update is Available. You can see along with your CRM instance.

    Select updates tab and schedule upgrade for sandbox instance.

    Dynamics Online CRM

    The process you have to follow for a lower version to upper version upgrade is:

    To Upgrade

    1. Dynamics Online CRM To Dynamics Online CRM Update 1
    2. Dynamics Online CRM Update 1 To Dynamics 365 CRM

    After scheduling dynamics CRM upgrade process, it will be updated on your scheduled time. It might be possible, current customizations are not supported by updated version. Upgrade process gets failed. So you have to reset sandbox back to old version and fix all those issues in sandbox instance and again follow the same process of schedule sandbox instance upgrade to the target version.

    Dynamic 365

    Step 3: Upgrade Production Instance

    Once your sandbox instance is upgraded, approve upgrade. Same process you need to follow to upgrade production instance upgrade. Also, keep in mind your instance upgrade will not be upgraded till you approve upgrades.

  • Connection from PHP to Microsoft Dynamics CRM

    Connection from PHP to Microsoft Dynamics CRMThis time we will learn how to connect Microsoft dynamics CRM using PHP code. Microsoft dynamics CRM soap service can be a way to make calls from PHP source code. A valid soap header is required to execute soap request. Let’s see how to create a valid header using PHP code:

    To get valid soap request, first need to create token1, token2, and keyIdentifer which can be created using online user name and password.

    Soap enavlop for getting token1, token2, ekyidentifer:

    $xml = “<s:Envelope xmlns:s=\”http://www.w3.org/2003/05/soap-envelope\” xmlns:a=\”http://www.w3.org/2005/08/addressing\” xmlns:u=\”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\”>”;

    $xml .= “<s:Header>”;

    $xml .= “<a:Action s:mustUnderstand=\”1\”>http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action>”;

    $xml .= “<a:MessageID>urn:uuid:” . $this->newGUID () . “</a:MessageID>”;

    $xml .= “<a:ReplyTo>”;

    $xml .= “<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>”;

    $xml .= “</a:ReplyTo>”;

    $xml .= “<a:To s:mustUnderstand=\”1\”>https://login.microsoftonline.com/RST2.srf</a:To>”;

    $xml .= “<o:Security s:mustUnderstand=\”1\” xmlns:o=\”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\”>”;

    $xml .= “<u:Timestamp u:Id=\”_0\”>”;

    $xml .= “<u:Created>” . gmdate ( ‘Y-m-d\TH:i:s.u\Z’, $now ) . “</u:Created>”;

    $xml .= “<u:Expires>” . gmdate ( ‘Y-m-d\TH:i:s.u\Z’, strtotime ( ‘+60 minute’, $now ) ) . “</u:Expires>”;

    $xml .= “</u:Timestamp>”;

    $xml .= “<o:UsernameToken u:Id=\”uuid-” . $this->newGUID () . “-1\”>”;

    $xml .= “<o:Username>” . $username . “</o:Username>”;

    $xml .= “<o:Password>” . $password . “</o:Password>”;

    $xml .= “</o:UsernameToken>”;

    $xml .= “</o:Security>”;

    $xml .= “</s:Header>”;

    $xml .= “<s:Body>”;

    $xml .= “<trust:RequestSecurityToken xmlns:trust=\”http://schemas.xmlsoap.org/ws/2005/02/trust\”>”;

    $xml .= “<wsp:AppliesTo xmlns:wsp=\”http://schemas.xmlsoap.org/ws/2004/09/policy\”>”;

    $xml .= “<a:EndpointReference>”;

    $xml .= “<a:Address>urn:” . $urnAddress . “</a:Address>”;

    $xml .= “</a:EndpointReference>”;

    $xml .= “</wsp:AppliesTo>”;

    $xml .= “<trust:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</trust:RequestType>”;

    $xml .= “</trust:RequestSecurityToken>”;

    $xml .= “</s:Body>”;

    $xml .= “</s:Envelope>”;

    In response, you will get element “CipherValue” which has both tokens which you can fetch from response. See sample code:

    $response = curl_exec ( $ch );

    curl_close ( $ch );

    $responsedom = new DomDocument ();

    $responsedom->loadXML ( $response );

    $cipherValues = $responsedom->getElementsbyTagName ( “CipherValue” );

    $token1 = $cipherValues->item ( 0 )->textContent;

    $token2 = $cipherValues->item ( 1 )->textContent;

    Next is to get KeyIdentifier value which you can get using “KeyIdentifier” element name from response.

    $keyIdentiferValues = $responsedom->getElementsbyTagName ( “KeyIdentifier” );

    Now need to get online header using token1, token2 and KeyIdentifier. Below you can see example of header xml for Soap request:

    $xml = “<s:Header>”;

    $xml .= “<a:Action s:mustUnderstand=\”1\”>http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute</a:Action>”;

    $xml .= “<Security xmlns=\”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\”>”;

    $xml .= “<EncryptedData Id=\”Assertion0\” Type=\”http://www.w3.org/2001/04/xmlenc#Element\” xmlns=\”http://www.w3.org/2001/04/xmlenc#\”>”;

    $xml .= “<EncryptionMethod Algorithm=\”http://www.w3.org/2001/04/xmlenc#tripledes-cbc\”/>”;

    $xml .= “<ds:KeyInfo xmlns:ds=\”http://www.w3.org/2000/09/xmldsig#\”>”;

    $xml .= “<EncryptedKey>”;

    $xml .= “<EncryptionMethod Algorithm=\”http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p\”/>”;

    $xml .= “<ds:KeyInfo Id=\”keyinfo\”>”;

    $xml .= “<wsse:SecurityTokenReference xmlns:wsse=\”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\”>”;

    $xml .= “<wsse:KeyIdentifier EncodingType=\”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary\” ValueType=\”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509SubjectKeyIdentifier\”>” . $keyIdentifer . “</wsse:KeyIdentifier>”;

    $xml .= “</wsse:SecurityTokenReference>”;

    $xml .= “</ds:KeyInfo>”;

    $xml .= “<CipherData>”;

    $xml .= “<CipherValue>” . $token1 . “</CipherValue>”;

    $xml .= “</CipherData>”;

    $xml .= “</EncryptedKey>”;

    $xml .= “</ds:KeyInfo>”;

    $xml .= “<CipherData>”;

    $xml .= “<CipherValue>” . $token2 . “</CipherValue>”;

    $xml .= “</CipherData>”;

    $xml .= “</EncryptedData>”;

    $xml .= “</Security>”;

    $xml .= “<a:MessageID>urn:uuid:” . $this->newGUID () . “</a:MessageID>”;

    $xml .= “<a:ReplyTo>”;

    $xml .= “<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>”;

    $xml .= “</a:ReplyTo>”;

    $xml .= “<a:To s:mustUnderstand=\”1\”>” . $url . “XRMServices/2011/Organization.svc</a:To>”;

    $xml .= “</s:Header>”;

    CRM URN Address based on the Online region of customer. You can use this function to get correct URN:

    function GetUrnOnline($url) {

    if (strpos ( strtoupper ( $url ), “CRM2.DYNAMICS.COM” )) {

    return “crmsam:dynamics.com”;

    }

    if (strpos ( strtoupper ( $url ), “CRM4.DYNAMICS.COM” )) {

    return “crmemea:dynamics.com”;

    }

    if (strpos ( strtoupper ( $url ), “CRM5.DYNAMICS.COM” )) {

    return “crmapac:dynamics.com”;

    }

    if (strpos ( strtoupper ( $url ), “CRM6.DYNAMICS.COM” )) {

    return “crmoce:dynamics.com”;

    }

    if (strpos ( strtoupper ( $url ), “CRM7.DYNAMICS.COM” )) {

    return “crmjpn:dynamics.com”;

    }

    if (strpos ( strtoupper ( $url ), “CRM9.DYNAMICS.COM” )) {

    return “crmgcc:dynamics.com”;

    }

    return “crmna:dynamics.com”;

    }

    Using header you can connect Dynamics CRM from PHP code. See example code lines to get list data from PHP code:

    / Get Dynamics CRM Online Header

    $url = “https://org.crm.dynamics.com/”;

    $username = “user@dynamics.net”;

    $password = “password”;

    $dynamicsCrmHeader = new DynamicsCrmHeader ();

    $authHeader = $dynamicsCrmHeader->GetHeaderOnline ( $username, $password, $url );

    // Get Dynamics CRM Online Header

    Soap request for getting list:

    $xml .= “<s:Envelope xmlns:s=\”http://www.w3.org/2003/05/soap-envelope\” xmlns:a=\”http://www.w3.org/2005/08/addressing\”>”;

    $xml .= $authHeader->Header;

    $xml =”<s:Body>”;

    $xml .=”<Execute xmlns=\”http://schemas.microsoft.com/xrm/2011/Contracts/Services\” xmlns:i=\”http://www.w3.org/2001/XMLSchema-instance\”>”;

    $xml .=”<request i:type=\”a:RetrieveMultipleRequest\” xmlns:a=\”http://schemas.microsoft.com/xrm/2011/Contracts\”>”;

    $xml .=”<a:Parameters xmlns:b=\”http://schemas.datacontract.org/2004/07/System.Collections.Generic\”>”;

    $xml .=”<a:KeyValuePairOfstringanyType>”;

    $xml .=”<b:key>Query</b:key>”;

    $xml .=”<b:value i:type=\”a:QueryExpression\”>”;

    $xml .=”<a:ColumnSet>”;

    $xml .=”<a:AllColumns>true</a:AllColumns>”;

    $xml .=”<a:Columns xmlns:c=\”http://schemas.microsoft.com/2003/10/Serialization/Arrays\”>”;

    $xml .=”</a:Columns>”;

    $xml .=”</a:ColumnSet>”;

    $xml .= “<a:Criteria>”;

    $xml .= “<a:Conditions />”;

    $xml .= “<a:FilterOperator>And</a:FilterOperator>”;

    $xml .= “<a:Filters />”;

    $xml .= “</a:Criteria>”;

    $xml .=”<a:Distinct>false</a:Distinct>”;

    $xml .=”<a:EntityName>list</a:EntityName>”;

    $xml .=”<a:LinkEntities />”;

    $xml .=”<a:Orders />”;

    $xml .=”<a:PageInfo>”;

    $xml .=”<a:Count>0</a:Count>”;

    $xml .=”<a:PageNumber>0</a:PageNumber>”;

    $xml .=”<a:PagingCookie i:nil=\”true\” />”;

    $xml .=”<a:ReturnTotalRecordCount>false</a:ReturnTotalRecordCount>”;

    $xml .=”</a:PageInfo>”;

    $xml .=”<a:NoLock>false</a:NoLock>”;

    $xml .=”</b:value>”;

    $xml .=”</a:KeyValuePairOfstringanyType>”;

    $xml .=”</a:Parameters>”;

    $xml .=”<a:RequestId i:nil=\”true\” />”;

    $xml .=”<a:RequestName>RetrieveMultiple</a:RequestName>”;

    $xml .=”</request>”;

    $xml .=”</Execute>”;

    $xml .=”</s:Body>”;

    $xml .= “</s:Envelope>”;

    You need to make soap call and convert response as  DomDocument.

    $client = new DynamicsCrmSoapClient ();

    $response = $client->ExecuteSOAPRequest ($xml, $url );

    //echo $response;

    $responsedom = new DomDocument ();

    $responsedom->loadXML ( $response );
    Please find code sample here: https://github.com/stw-services/Dynamics-CRM/tree/master/PHP-MSCRM

    🙂

    Thanks for reading 

  • Dynamics CRM 2015 setup a demo Virtual Machine.

    Dynamics CRM 2015  setup a demo Virtual Machine.

    With most MicroSoft  products this is pretty easy to setting up, but Dynamics has a more heavier requirements list.

    The prerequisites include:

    let’s get started:

    Step 1: First Install Windows 2012 R2 Standard Edition

    I’m using VMWare (but you could use HyperV, Virtual Box as well).

    1. Create a new Virtual Machine, assign 4GB RAM, 40 GB HDD, 1 CPU (it’s only a demo environment so these specs should be fine)
    2. Attach the Windows 2012 ISO and do a vanilla installation

    Step 2, Run the Active Directory wizard

    CRM needs Active Directory, so run the Active directory wizard:

    Figure: Configure Active Directory

    1. In Server Manager select ManageAdd Roles and Feature
    2. Installation Type | Roles-based or Feature-based installation 
    3. Server RolesActive Directory Domain Services
    4. Select Add Features
    5. Proceed through the wizard and then select Install
    6. Once completed select Promote this server to a domain controller

    Figure: Promote Domain Controller

    1. Deployment Configuration | Add new forest and enter your Root domain name which is Demo.Local
    2. Select Windows Server 2012 R2for forest and domain function level
    3. Set Password for Directory Services Restore Mode
    4. Click on Next, Install
    5. Now sit back and wait, after a reboot you will be able to login in to the domain

    Note: It’s a good idea to have a static IP address on this machine, but it’s only a warning at this stage.

    Step 3, Windows Server Prerequisites

    • Indexing Service
    • IIS Admin
    • World Wide Web Publishing
    1. Server Manager | Manage | Add Roles and Features
    2. Server Roles:
      1. Application Server
      2. Web Server (IIS)
    3. Features:
      1. .Net Framework 3.5 Features
      2. .Net Framework 4.5 FeaturesNET 4.5
    4. Web Server Role (IIS) | Role Services:
      1. Application Development | ASP.NET 3.5
      2. Application Development | ASP.NET 4.5
    5. Install

    Step 4, Install SQL Server

    I’ll be installing SQL Server 2014 Developer Edition with the following options:

    Feature Selection:

    1. Database Engine Services
    2. Full-Test and Semantic Extractions for Search
    3. Reporting Services Native
    4. Management Tools Basic
      1. Management Tools – Complete

    Step 5,Database Engine Configuration:

    1. Select Mixed Mode (personal preference)
    2. Specify SQL Server Administrators| select Add Current User 

    Step 6 ,Reporting Services Native Mode:

    1. Select Install Only

    Install using all other defaults.

    Step 7, Configure Reporting Services Native Install

    Run SQL Server 2014 Reporting Services Configuration Manager and set-up the Native Reporting Services installation.

    This is should pretty much be a next, next, apply thing,

    Mine fired up straight away by just using the defaults:

    Figure: Reporting Services Configuration Manager
    Figure: Reporting Services Home Page

    Step 8, Now Install CRM 2015 finally..!!

    Figure: CRM Installation

    1. Get Recommended Updates| select Get Updates (Which is optional)
    2. Enter your license key
    3. Accept the EULA
    4. At this point you may have a bunch of missing required components, install them (We will take a while, also you may need to reboot system)

    Figure: Install Required Components

    1. Select Default Installation Path
    2. Specify Server RolesSelect All Options

    Figure: Server Roles

    1. Specify Deployment Options| Enter SQL Server Hostname ie: CRM2014Demo
    2. Select the Organizational UnitEnter the Organizational Unit
      1. At this point it’s probably a good idea to jump into Active Directory Users and Computersand create an OU for CRM

    Figure: Create CRM OU
    Figure: Assign CRM OU

    1. Specify Service Accounts, Now we’ll need to specify our service accounts for the various CRM Services, since we don’t have any accounts setup, we’ll end up jumping back and forth between Active Directory Users and Computers and the CRM Installation wizard, As this is a DEMO environment I’m going to use NETWORK SERVICE for the accounts.

    Figure: Service Accounts

    1. Select Website | Default Website
    1. Email Router Setting | EmptyOrganization Settings| Populate with your Organisation Name and other settings
    1. Report Server URL |Should be pre-populated check the URL

    Click next wizard button and install CRM.

    After installation of MS CRM it will auto start reporting in service setup.

    Click Do not get updates and click next button. In next screen accept line cne and click next.

    Select server server computer name and click next

    Select database name

    Click next wizard button and install, finally you will get finish screen.

    Figure: CRM Install Finished
    And finally let’s start CRM 2015, wow worked first go!

  • Dynamics CRM 2016 – Custom plugin development using CRM Development Tool Kit

    Dynamics CRM 2016 – Custom plugin development – This time we are going through a process of building a custom plug-in for Microsoft Dynamics CRM and its deployment on development server.  I assume that you already downloaded and setup Development Tool Kit. And make sure CRM templates are imported in Visual Studio.

    Start with creating a solution using Dynamics CRM. Navigate to Settings >> Customization >> Solution. Create a new Solution “AccountPlugin” and choose any name based on project and company requirement. In case, you are going to develop plugin for any existing solution skip this steps.

    PluginSolution

    Save CRM solution and publish.

    PublishSolution_2

    In Visual Studio, Create new project using Dynamics CRM 2013 Package template. If templates are not available, make sure that you already imported development tool kit templates in Visual Studio.

    Dynamics CRM package is selected instead of Dynamics CRM 2013 plugin because it will make our process easy for plugin registration and deployment using tool kit.

    ConnectionTOCRM_3

    You will be asked to connect CRM live before Visual Studio setup package solution. CRM connection screen pops up. You can also open it from Tool >> CRM connection.

    Connection To CRM

    Fill out required details and connect development Dynamics CRM server.

    URL: CRM URL.

    User Name: Domain Administrator

    Password:   Domain Administrator Password

    Browse all organizations and select appropriate organization and solution to hook plugin.

    ConnectionTOCRM_3

    After a successful connection with CRM server, CRM package solution will be created in Visual Studio. Next step is to add a CRM plugin library project in solution. More plug-in projects can be added in one solution.

    add plugin solution

    Now Visual Studio solution is set up and ready for plugin development. Some important file and DLLs are added in projects which are required. Let me elaborate important of these files.

    RegisterFile.crmregistration is xml file contains details of all added plugins and workflows and register those in Dynamics CRM when package is deployed. Its auto created file using CRM Development Tool Kit.

    Microsoft.Crm.Sdk.Proxy and Microsoft.Xrm.Sdk are two very important DLLs referenced in plugin project. These DLLs contain core classes of Microsoft dynamics CRM which are used for plugin operations.

    Next step is to create strong name key for plugin project. Right click on project and select properties and create new Strong Name key (SNK). SNK is system oriented and when you move this development code on another machine, SNK needs to create again.

    SNLKey_11

    Open CRM explorer from View>>CRM explorer and expend entities. Right click on Account entity and select create plugin. It’s popping up Create Plug-in window.

    Let’s go through Create Plug-in form attributes. First one “Project” is default set to “AccountPlugin” as it’s related to a single plugin project, in case we have more than one plugin projects. It will be enabled for selection.

    Next is “Primary entity” is about to entity for which plugin is being created and it “Account” entity.

    Next one is “Message” is about to CRM action, it’s associated with.

    AccountActionMessage_7

    Next important attribute is “Pipeline Stage” and it’s specifying execution time of plugin. In this example, we created “PostAccountcreate” plugin. So Pipeline Stage is to determine on which stage of “PostAccountCreate”, this plug-in will fire.

    PluginPipelineStage_8

    Next one is “Class” to specify class name for plug-in. Next important attribute is “Execution order” to specify order of plugin execution. In case of many plugins are associated with an action stage, it will be used to determine the execution order of this plug-in. Click Ok and plugin will be created.

    After successful creation of “AccountPlugin”. Open “RegisterFile.crmregister” file and a new code line is added in xml for created “AccountPlugin” plugin.

    Account Plugin Registration_9

    “PostAccountCreate” class is added in plug-in project, where custom code will be written for operations required under this plugin. “ExecutePostAccountCreate” method is responsible for plugin operations.

    Sample code lines for update Account entity Name attribute:

    protected void ExecutePostAccountCreate(LocalPluginContext localContext)

    {

    if (localContext == null)

    {

    throw new ArgumentNullException(“localContext”);

    }

    // TODO: Implement your custom Plug-in business logic.

    IPluginExecutionContext Context = localContext.PluginExecutionContext;

    IOrganizationService service = localContext.OrganizationService;

    ITracingService trace = localContext.TracingService;

    Entity entity = null;

    EntityReference parentCustomerIdAttribRef = null;

    // If we have a target

    if (Context.InputParameters.Contains(“Target”) && Context.InputParameters[“Target”] is Entity)

    {

    // Obtain the target entity

    entity = (Entity)Context.InputParameters[“Target”];

    // Only perform this code if this is a create

    if (Context.MessageName != “Update”) { return; }

    // Only perform this code for a certain entity

    if (Context.PrimaryEntityName != “account”) { return; }

    // Only perform this code if this column is included in the collection of attributes

    else { return; }

    }

    else { return; }

    try

    {

    // update entity attribute with attribute value

    entity.Attributes[“name”] = “John”;

    //Update account entity

    service.Update(entity);

    }

    }

    catch (FaultException<OrganizationServiceFault> e)

    { trace.Trace(string.Format(“Exception: {0}”, e.ToString())); }

    catch (Exception ex)

    { trace.Trace(string.Format(“Exception: {0}”, ex.ToString())); }

    }

    }

    Sample code lines use to update Account attribute name value as John. So after an account is created in CRM, account name attribute is updated as “john”.

    At the end build project and right click on package and select deploy.

    Deploy_10
  • Dynamics CRM 2015: Installing SQL Server 2012

    Dynamics CRM 2015 – In my early post you have seen Dynamics CRM 2015  setup demo using Virtual Machine. we are done with installation of Windows Server 2012 and configured the Active Directory; it’s now time to install the SQL Server 2012 on the Virtual Machine. This blog covers the procedure to install Microsoft Dynamics CRM Server 2013 on a computer that does not already have Microsoft Dynamics CRM installed.
    Before we proceed it is important we understand the minimum hardware and the software requirements for Installing CRM Server 2013.

    Pre-requirements:

    Software Requirements

    • Windows Server 2012
    • Active Directory Setup

    User Accounts

    • SQL Server Admin account
    • !svc.sql
    • Reporting Services Admin account
    • !svc.ssrs

    Steps

    • Installing SQL Server is really easy to Install.  When you first start the SQL Server  file, you’ll be presented with a Configuration wizard where you’ll have to select Installation from Left Navigation and then New SQL Server Installation option on the right.
    New SQL Server Installation
    • On the First screen of the wizard you’ll have to Accept the License Terms. Just click “I accept the license terms” check-box and press Next.
    • The Setup will actually scan you system for all of the pre-requisites. If you were following my step-by-step then you should be fine here with 0 Errorsand a couple of warnings, which is fine. Once the scan is completed and you see the summary, Press Next.
    3
    • At this point you might see another License Terms screen, go ahead andAccept the Licenseand press Next.
    4
    • Now, the important part of the whole process. You will need to select which features should be installed for Microsoft Dynamics CRM 2013 to run successfully. Following is the list of features you should check.Database Engine Services
      SQL Server Replication
      Reporting Service – Native
      Management Tools (SQL Server Management Studio – Optional)
      Once you are through, Click Next.
    5
    • This step will let you know all about Disk Space Requirements. If all is well here, you’ll see the Next button available, Click it
    6
    • the Service Account Refer the following tables for the accounts to be selected.
    SERVICEACOUNT NAMEPASSWORDSTARTUP TYPE
    SQL Server Agentdomain_name\!svc.sql“Password”Automatic
    SQL Server Database Enginedomain_name\!svc.sql“Password”Automatic
    SQL Server Reporting Servicesdomain_name\!svc.ssrs“Password”Automatic
    7
    • Where domain_nameis the name of your Domain which you setup in Part 2 of the Post (Setting up the Active Directory) and password is the password for your Service Account. Once you are done with the above steps, ClickNext.
    8
    • Now, you will have to select Authentication Modeand SQL Server Administrators. Select Mixed Mode (SQL Server authentication and Windows authentication).
      Specify the password and then add the users whom you want to give SQL Sever Administrator rights.
      Once you are done, go to the Next screen.
    9
    • Next is Reporting Services Configuration. Select Install and Configureunder Reporting Services Native Mode and then press Next.
    10
    • Next window is for Error Reporting. As of now we will leave this as is and press Next.
    11
    • In the next screen, system will actually check if there will be any roadblocks while installing the product. Wait until the scan is finished and then pressNext.
    12
    • Finall you will see the entire Summaryof all the steps and configurations that you have selected. Just take a look at it and press Install
    • Wait until the installation is over and you are good to go
  • Dynamics CRM 2015 Setup on Virtual Machine

    Dynamics CRM 2015 Setup on Virtual Machine – With most Microsoft products this is pretty easy to setting up, but Dynamics has a more heavier requirements list.

    The prerequisites include:

    • Windows Server
    • Active Directory (yep you’ll need to setup a domain controller)
    • SQL Server Server 2012/2014
    • Reporting Services 2012/2014

    Let’s get started:

    Step 1: First Install Windows 2012 R2 Standard Edition

    I’m using VMware (but you could use HyperV, Virtual Box as well).

    1. Create a new Virtual Machine, assign 4GB RAM, 40 GB HDD, 1 CPU (it’s only a demo environment so these specs should be fine)
    2. Attach the Windows 2012 ISO and do a vanilla installation

    Step 2, Run the Active Directory wizard

    CRM needs Active Directory, so run the Active directory wizard:

    1

    Figure: Configure Active Directory

    1. In Server Manager, select Manage | Add Roles and Feature
    2. Installation Type | Roles-based or Feature-based installation
    3. Server Roles | Active Directory Domain Services

    4. Select Add Features
    5. Proceed through the wizard and then select Install
    6. Once completed, select Promote this server to a domain controller

    2

    Figure: Promote Domain Controller

    7. Deployment Configuration | Add new forest and enter your Root domain name which is Demo.Local
    8. Select Windows Server 2012 R2 for forest and domain functional level
    9. Set Password for Directory Services Restore Mode
    10. Click on Next, Install
    11. Now sit back and wait, after a reboot you will be able to login in to the domain

    Note: It’s a good idea to have a static IP address on this machine, but it’s only a warning at this stage.

    Step 3, Windows Server Prerequisites

    • Indexing Service
    • IIS Admin
    • World Wide Web Publishing

    1. Server Manager | Manage | Add Roles and Features
    2. Server Roles:
      1. Application Server
      2. Web Server (IIS)
    3.  Features:
      1. .Net Framework 3.5 Features

      2. .Net Framework 4.5 Features | ASP.NET 4.5
    4. Web Server Role (IIS) | Role Services:
      1. Application Development | ASP.NET 3.5
      2. Application Development | ASP.NET 4.5
    5. Instal

    Step 4, Install SQL Server

    I’ll be installing SQL Server 2014 Developer Edition with the following options:
    Feature Selection:

    1. Database Engine Services
    2. Full-Test and Semantic Extractions for Search
    3. Reporting Services Native
    4. Management Tools Basic
    1. Management Tools – Complete

    Step 5,Database Engine Configuration:

    1. Select Mixed Mode (personal preference)
    2. Specify SQL Server Administrators | select Add Current User

    Step 6 ,Reporting Services Native Mode:

    1. Select Install Only

    Install using all other defaults.

    Step 7, Configure Reporting Services Native Install
    Run SQL Server 2014 Reporting Services Configuration Manager and set-up the Native Reporting Services installation.
    This is should pretty much be a next, next, apply thing,
    Mine fired up straight away by just using the defaults:

    3

    Figure: Reporting Services Configuration Manager

    Report-Manager

    Figure: Reporting Services Home Page

    Step 8, Now Install CRM 2015 finally..!!

    CRM-2015-Installation

    Figure: CRM Installation

    1. Get Recommended Updates | select Get Updates (Which is optional)
    2. Enter your license key
    3. Accept the EULA
    4. At this point you may have a bunch of missing required components, install them (We will take a while, also you may need to reboot system)

    CRM-2015-Wizard-Install-Missing-Components

    Figure: Install Required Components

    5. Select Default Installation Path
    6. Specify Server Roles | Select All Options

    7

    Figure: Server Roles

    7. Specify Deployment Options | Enter SQL Server Hostname ie: CRM2014Demo
    8. Select the Organizational Unit | Enter the Organizational Unit

    1. At this point it’s probably a good idea to jump into Active Directory Users and Computers and create an OU for CRM

    8


    Figure: Create CRM OU

    9

    Figure: Assign CRM OU

    9. Specify Service Accounts, Now we’ll need to specify our service accounts for the various CRM Services, since we don’t have any accounts setup, we’ll end up jumping back and forth between Active Directory Users and Computers and the CRM Installation wizard, As this is a DEMO environment I’m going to use NETWORK SERVICE for the accounts.

    10

    Figure: Service Accounts

    10. Select Website | Default Website

    11

    11. Email Router Setting | EmptyOrganization Settings | Populate with your Organisation Name and other settings

    12

    12. Report Server URL | Should be pre-populated check the URL

    13

    Click next wizard button and install CRM.

    14

    After installation of MS CRM it will auto start reporting in service setup.

    15

    Click Do not get updates and click next button. In next screen accept line cne and click next.

    Select server server computer name and click next

    16

    Select database name

    17

    Click next wizard button and install, finally you will get finish screen.

    18

    Figure: CRM Install Finished

    And finally let’s start CRM 2015, wow worked first go!

    CRM-2015-Post-Install-Launch