Tag Cloud

CRM 2011 (161) CRM 4.0 (144) C# (116) JScript (109) Plugin (92) Registry (90) Techpedia (77) PyS60 (68) WScript (43) Plugin Message (31) Exploit (27) ShellCode (26) FAQ (22) JavaScript (21) Killer Codes (21) Hax (18) VB 6.0 (17) Commands (16) VBScript (16) Quotes (15) Turbo C++ (13) WMI (13) Security (11) 1337 (10) Tutorials (10) Asp.Net (9) Safe Boot (9) Python (8) Interview Questions (6) video (6) Ajax (5) VC++ (5) WebService (5) Workflow (5) Bat (4) Dorks (4) Sql Server (4) Aptitude (3) Picklist (3) Tweak (3) WCF (3) regex (3) Config (2) LINQ (2) PHP (2) Shell (2) Silverlight (2) TSql (2) flowchart (2) serialize (2) ASHX (1) CRM 4.0 Videos (1) Debug (1) FetchXml (1) GAC (1) General (1) Generics (1) HttpWebRequest (1) InputParameters (1) Lookup (1) Offline Plug-ins (1) OutputParameters (1) Plug-in Constructor (1) Protocol (1) RIA (1) Sharepoint (1) Walkthrough (1) Web.config (1) design patterns (1) generic (1) iframe (1) secure config (1) unsecure config (1) url (1)

Pages

Sunday, February 17, 2013

Create a SharePoint Website from a CRM Plug-in



using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Principal;

using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
using MyCrmService = ProfessionalServicesPlugins.CrmSdk;

using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;

namespace ProfessionalServicesPlugins
{
public class CreateProjectPlugin : IPlugin
{
///
/// Provision a SharePoint web when new Projects are created
///

public void Execute(IPluginExecutionContext context)
{
DynamicEntity entity = null;

// Create the task on the Microsoft CRM server.
MyCrmService.CrmService crmService = GetCrmService();

// Check if the input parameters property bag contains a target
// of type DynamicEntity and it is the correct entity type
if (context.InputParameters.Properties.Contains("Target") &&
context.InputParameters.Properties["Target"] is DynamicEntity &&
context.PrimaryEntityName == MyCrmService.EntityName.new_project.ToString())
{
// Obtain the target business entity from the input parmameters
entity = (DynamicEntity)context.InputParameters.Properties["Target"];

// Get the Project CRM properties
string projectName = entity.Properties["new_name"].ToString();

// Because plug-ins run as Network Service,
// we need to run with elevated
// privileges within SharePoint
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// Access the root site collection
using (SPSite elevatedSite = new
SPSite("http://localhost:7777/sites/projects"))
{
SPWebCollection sites = elevatedSite.AllWebs;
elevatedSite.AllowUnsafeUpdates = true;

// Create the new Web
using (SPWeb web = sites.Add(projectName, projectName,
projectName, 1033, "STS#0", false, false))
{
// Add the URL to the entity
entity.Properties.Add(new StringProperty("new_sharepointurl",
web.Url));
}
}
});
}
}

private MyCrmService.CrmService GetCrmService()
{
// Setup the Authentication Token
MyCrmService.CrmAuthenticationToken token = new
MyCrmService.CrmAuthenticationToken();
token.OrganizationName = "MicrosoftCRM";

MyCrmService.CrmService crmService = new MyCrmService.CrmService();
crmService.Credentials = System.Net.CredentialCache.DefaultCredentials;
crmService.CrmAuthenticationTokenValue = token;

return crmService;
}
}
}





AJAX wrapper

JavaScript AJAX wrapper for Ajax calls
 
/* Jscript */


//// AJAX wrap
function AjaxWrapper()
{
var object = this;

object.Request = NewRequest();
object.Request.onreadystatechange = CompleteRequest;

this.Sync = true;
this.Method = "GET";
this.URL = "";
this.WebServiceMethod = "";
this.Parameters = new ParameterCollection();

this.Execute = ExecuteRequest;
this.AsyncCallbackMethod = null;

this.ResultXML = null;
this.ResultText = null;

function NewRequest()
{
if (window.XMLHttpRequest)
return new XMLHttpRequest();
else
return new ActiveXObject("Microsoft.XMLHTTP");
}

function ExecuteRequest()
{
var parameters = object.Parameters.toString();

ResetRequest();

if (this.Method.toUpperCase() == "POST")
{
if (object.WebServiceMethod.length > 0)
object.Request.open(object.Method, object.URL + "/" + object.WebServiceMethod, !object.Sync);
else
object.Request.open(object.Method, object.URL, !object.Sync);

object.Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
object.Request.send(object.Parameters);
}
else if (this.Method.toUpperCase() == "GET")
{
if (object.WebServiceMethod.length > 0 && parameters.length > 0)
object.Request.open(object.Method, object.URL + "/" + object.WebServiceMethod + "?" + parameters, !object.Sync);
else if (object.WebServiceMethod.length > 0)
object.Request.open(object.Method, object.URL + "/" + object.WebServiceMethod, !object.Sync);
else if (parametres.length > 0)
object.Request.open(object.Method, object.URL + "?" + parameters, !object.Sync);
else
object.Request.open(object.Method, object.URL, !object.Sync);

object.Request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
object.Request.send();
}
else
{
throw "The method '" + this.Method.toUpperCase() + "' is not supported !";
}

if (object.Sync)
FinishRequest(object.Request.responseText);
}

function CompleteRequest()
{
if (object.Request.readyState == 4)
{
if (object.Request.status == 200)
{
FinishRequest(object.Request.responseText);

if (object.AsyncCallbackMethod != null)
object.AsyncCallbackMethod();
}
}
}

function ResetRequest()
{
object.Request = NewRequest();
object.Request.onreadystatechange = CompleteRequest;
}

function FinishRequest(retourTexte)
{
var xmlDoc = new ActiveXObject("MSXML2.DOMDocument");

object.ResultText = object.Request.responseText;

try
{
xmlDoc.loadXML(object.Request.responseText);

if (xmlDoc.parsed && xmlDoc.xml.length > 0)
object.ResultXML = xmlDoc;
else
object.ResultXML = null;
}
catch (ex)
{
object.ResultXML = null;
}
}
}

Installation guide for CRM 4.0 / Step by Step guide to install CRM 4.0

Complete Installation guide for CRM 4.0 / Step by Step guide to install CRM 4.0

        Last week I installed Microsoft Dynamic 4.0 on my virtual machine and I found that it will be helpful for beginner like me, if there is a step by step installation guide. Lets start with OS selection.

1. You can use Windows Server 2003 or later server version. I had Windows Server 2003 R2.

2. Install latest service pack for OS you installed.

3. Install Internet Information Service.

4. Install Active Directory.

5. Configure DNS Server.

6. Create new user for domain and make him member of Administrators group.

7. Install SQL Server 2005 with Reporting Service and Analysis service.

8. Configure new account as service account for Report Server and Analysis server.

9. Install Visual Studio 2008.

10. Start installation of CRM 4.0

11. Enter display name for your Organization.

clip_image001

12. Next step is to select installation path, you can leave this as it is or select specific folder,

clip_image002

13. Next select website for CRM, I choose new website with different port address in my case it was 5555 as shown in image below,

clip_image003

14. Next you need to enter URL for Reporting server.

15. Next you have to select Organization Unit. Click on Browse button and select the root node of your domain in my case it is chirag.

clip_image004

16. On next step you need to specify security account, choose the one you created in step 6. Enter the password in password textbox and click next.

17. Select your local machine as Email Router setting or select specific machine on domain which you are using at email server. I chose my local machine so localhost.

18. Once you click next you will see System Requirements screen. If Domain user, SQL Server Reporting Service and ASP.NET are installed properly you will receive no error or warning else you will receive error message. I received following errors,

clip_image005

19. If you receive error message for SQL Server or SQL Server Reporting Service don’t be afraid. Open Services from Start – All Programs – Administrative Tools – Services. Check whether SQL Server Agent is running. If not right click on service and select property. Select Startup Type as Automatic and click on start button.

20. Another common error is for Indexing service. Follow the steps mention in point 19 to start Indexing Service.

21. You can see a warning mentioning Verify Domain User account SPN for the Microsoft Dynamics CRM ASP.NET Application Pool account. This will usually shows when you add specific domain account for security account in step 16. You can solve this warning now or after installation.

22. If System Requirements screen show no error or warning on next step installation will be started.

23. Finally you will see following screen, this means your CRM is installed.

clip_image006