Showing posts with label crm2011. Show all posts
Showing posts with label crm2011. Show all posts

Monday, February 3, 2014

Sonoma Microsoft CRM Dev Tools

Sonoma offers a new extension for Microsoft Dynamics CRM. It is provided as a Google Chrome-Plugin.

Dynamics CRM DevTools

 CRMDevTools

Functionality

  • Shows Form information (Id, Name, Type Code, Form Type, Is Dirty)
  • Refresh current form
  • Enable/Disable attributes
  • Show hidden attributes
  • Shows User information (Domain Name, User Id, Business Unit Id)
  • Open Advanced Find
  • Search for Attribute, User Id, Privilege Id (and navigate to the record)
  • Set focus to a field
  • Update attributes (testing)
  • Execute Fetch XML Queries

Lets hope there will be a IE-Solution in the future too.

Cheers

Tuesday, December 3, 2013

CRM 2011 - Error updating System Settings (‘rdQuickFindRecordLimitEnabled’ is undefined)

Today i ran into an issue updating the System Settings (Auditing) in an upgraded RU14 system.

systemsettings-error

This happened when OK was clicked. The solution was to install RU15.

Hint: You need the installation cd/iso of CRM 2011 Server for the upgrade from RU14 to RU15.

Cheers

Wednesday, October 23, 2013

CRM 2013 – Official Microsoft statement for jQuery usage

In the latest documentation you can find the document

Using jQuery with Microsoft Dynamics CRM 2013.docx

In this, Microsoft describes the prefered usage of jQuery in the Microsoft Dynamics CRM context.

Usage in HTML Webresources

Microsoft: When creating user interfaces with HTML web resources we highly recommend that you also use jQuery. It provides many benefits in creating pages that support multiple browsers that it is practically a necessity.

So this is fine and i think everyone is doing this right now.

Usage in Entity-Forms

Microsoft: However, when creating form scripts we do not recommend that you use jQuery. To enforce business logic in forms we provide objects in the Xrm.Page and Xrm.Utility namespaces that you use to apply your business logic within the form. We do not support referencing or manipulating the DOM (including styles) for our pages in any way. …

Ok, i have done this in the past and i don’t want to miss a lot of the jquery functions (ajax….) in the future too. So to make sure you don’t run into big issues try the following.

  • Avoid “hard” CSS/DOM Manipulation via jQuery

Microsoft: We reserve the right to restructure or rename DOM elements in our pages at any time without notice. If your code has dependencies on any objects defined in the DOM and these objects are reorganized or renamed your code will break.

  • Assuming you are not the only one who is delivering solutions for your customer, use the following construct to create your specific jQuery-Object ($).
   1: my$ = jQuery.noConflict(true);
   2: my$.trim("     some text with space     ");

Cheers

Thursday, September 12, 2013

CRM 2011 – ErrorCode=0x80041102 The entity with ObjectTypeCode –1 was not found in the MetadataCache

I ran into this problem on my last project. This issue only occurs on the productive system when someone is opening the solution (delivered by us). QA, Dev and so on worked fine.

We were able to solve this doing a good old IISReset.

There are a lot of other reasons for this (or nearly the same) error.

cheers

Monday, September 2, 2013

Connect Scribe CRM Adapter to Microsoft Dynamics CRM Online

The official documentation for creating a connection between Scribe and Microsoft Dynamics CRM online seems not to be up to date.

The following configuration works fine.


It is important to use the discovery link as Server URL.

cheers

Scribe Certificates (Server / Microsoft Dynamics CRM Adapter)

Last week i have finished the Scribe-Certifications
  • Scribe Server Training
  • Scribe Adapter for Dynamics CRM
For preparation, i used the following training-sessions
  • Scribe Insight Overview
  • Workbench Training
  • Server Training
  • Adapter for Dynamics CRM Training
  • Integration for Dynamics GP and Dynamics CRM

The training material was very helpful and good to handle. You get a set of videos, a workbook with labs and a virtual machine (VMware) to complete the labs.

I recommend to use the official Scribe Documentation (.CHM) for doing the tests.

cheers

Wednesday, July 31, 2013

CRM 2013 No longer supported stuff

Following stuff is no longer supported in CRM 2013.
  • CRM 4.0 Custom Workflow Tools
  • CRM 4.0 Client Side Scripting
  • CRM 4.0 Plugins
  • 2007 WebService
  • ISV Folder
  • Solution Down Level Tool
Cheers

Tuesday, May 28, 2013

CRM 2011 "unknown number prefix specified"-Exception on create of opportunity

This happens when you create a record with an already exisiting ID in CRM. In my example The first opportunity was created with ID1, the create-message of the second opportunity also contained the ID1 (typing mistake).



The Error-Message is a little bit meaningless...

Hope it helps.

Tuesday, February 5, 2013

CRM 2011 Instance Adapter - Connecting Organizations

I found a nice "little" application, released in december last year. It allows the connection of two Microsoft Dynamics CRM Instances (Organizations).

I have not tested it yet but it sounds very interesting for archiving or especially for Development Environments. Also Picklist-Values can be synced.

Microsoft Dynamics CRM 2011 Instance Adapter

There is also an Installation Video available.

Cheers,
Markus

Tuesday, July 17, 2012

Project - PluginQuickDeploy Update 0.9.0.2

I have created a new version of pqd with minor changes.
Most important part is the NuGet Package.

Project Page: 
http://pqd.codeplex.com/ 

NuGet Package: 
https://nuget.org/packages/PluginQuickDeploy

NuGet Command: 
PM> Install-Package PluginQuickDeploy

Cheers, Markus

Wednesday, July 11, 2012

CRM 2011 - Accessing and filtering custom/crm WCF Data Service (oData) from sandboxed Plugin

As described in some MSDN-Forums and by Eric Pool, Quering data against the context directly via Linq in sandboxed plugins is not possible. You can retrieve the whole DataSet, but filtering is not possible.

If you need to access and filtering your results from an oData endpoint (also custom ones), you can use the following syntax.

Example OrganizationDataService (with FirstOrDefault):
//Define the Request URI
Guid accountId = new Guid("66BD3ABE-D2CA-E111-9E1F-000C29BDAB09");
string serviceAddress = @"http://crm:5555/DEV/XRMServices/2011/OrganizationData.svc/";
string accountQueryByPrimaryKey = string.Format("AccountSet(guid'{0}')", accountId.ToString());
Uri svcUri = new Uri(serviceAddress);
Uri accountUri = new Uri(string.Format("{0}{1}", serviceAddress, accountQueryByPrimaryKey));
 
//Create context and credentials ('My' is the name of the CRM organization, these classes are created when you add a service reference to CRM DataService endpoint)
CrmService.MyContext context = new CrmService.MyContext(svcUri);
context.Credentials = new System.Net.NetworkCredential("username""password""domain");
 
//Retrieve data
Account retrievedAccount = context.Execute<Account>(accountUri).FirstOrDefault();


Example Custom Service (with Enumeration):
// Define the Request URI
Uri svcUri = new Uri(@"http://crm:8888/MyDataService/CustomDataService.svc/");
Uri uriAccounts = new Uri(string.Format("{0}{1}", svcUri, "ACCOUNT(3)"));
 
// Create the context
DataServiceContext context = new DataServiceContext(svcUri)

// Enumerate over the query result.
StringBuilder sb = new StringBuilder();
foreach (ACCOUNT account in context.Execute<ACCOUNT>(uriAccounts)) { sb.AppendLine("Name: " + account.name); }

The trick is to use the oData (URI) for Filtering and to interprete just the results.

You can find the MSDN description here.

Friday, July 6, 2012

Project - PluginQuickDeploy

Today i have created my first project on Codeplex. Very nice page, the creation process was really easy and straight forward.

This small project was on my backlog for a very long time.

"PluginQuickDeploy" reduces the development time of Microsoft CRM Plugins, because the deployment to the test system is done by one click or directly in the build process (build events).

You can find the project here.

Saturday, February 25, 2012

CRM 2011 - Create Custom Workflow Activities

Because the Release Preview Guide February 2012 contains the following statement,


CUSTOM WORKFLOW ACTIVITIES IN CRM ONLINE
With the  Microsoft Dynamics CRM Q2 service update, developers can build  custom  .NET  Workflow activity assemblies for Microsoft Dynamics CRM Online. These custom assemblies can be developed and deployed as part of a Microsoft Dynamics CRM solution package. Once a custom workflow activity has been deployed, it can then be utilized within the workflow engine for business process management. These new capabilities ensure parity in the developer experience between Microsoft Dynamics CRM Online  and on-premises. It also empowers organizations to bring external data, custom actions and integrations into their standard CRM business processes.


the Custom Workflow Activities could be interesting, also for product development in CRM 2011. Today, the Custom Workflow Activities are running in OnPremise Deployments but not in Online Systems. Because the Microsoft SDK Example is a little too confusing for a first approach, i have decided to create this small examle (based on the SDK-Stuff).

The Problem:
Create a Custom Workflow Activity, that creates a (follow up-)Task after an Account was created. (This is just an example. You can use default workflow functionality to reach this target.)


1. Create Solution with Project
The first step is to create a Visual Studio 2010 Project.
  • Select Visual C# -> Workflow -> Activity Library
  • Select .NET Framework 4
  • Select Name for Solution and Project
  • Select Location
Visual Studio Project
2. Check Project Settings
Check that the Framework-Type is NOT .NET Framework Client Profile. The correct one is .NET Framework 4.

Target framework (should be .NET Framework 4)
3. Create the Class
Delete the automatically created class Activity1.xaml and create a class called CreateTask.cs.

The new class

4. Adding References and Usings
Add references to the following assemblies (Rightclick References in the project and add...).
  • microsoft.xrm.sdk.dll
  • microsoft.xrm.sdk.workflow.dll
Add the reference for System.Runtime.Serialization, which is part of the .NET Framework.

Serialization
(Hint: The Add References window here is not the default VS2010 one. This one is part of the Productivity Power Tools. A (MUST HAVE-) Addon for Visual Studio 2010!)

Add the following using-Statements to your class.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
 
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;


References and Usings
5. Inheritance
Make our class inherit from CodeActivity (System.Activities) and implement the method Execute. You also have to make the class public.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
 
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;
 
namespace MK.CRM2011.CustomWorkflowStep {
    public class CreateTask : CodeActivity {
    }
}

6. Input Parameters
We would like to put a parameter in our Workflow. So every customer can define the subject of the task by it's own.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
 
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;
 
namespace MK.CRM2011.CustomWorkflowStep {
    public class CreateTask : CodeActivity {
 
        #region Input Properties
        [Input("Task Subject")]
        [Default("Empty Subject")]
        public InArgument<string>TaskSubject{ getset; }
        #endregion
 
        protected override void Execute(CodeActivityContext context) {
            throw new NotImplementedException();
        }
    }
}

-------------------
The following code has to be added into the Execute-Method.

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

7. Create Context and Service
The context we need for retrieving the ID of the current record, the service is required for communication with CRM-Webservice (IOrganizationService).

//Create the IWorkflowContext and the
//IOrganizationService for communication with CRM
IWorkflowContext workflowContext = 
    context.GetExtension<IWorkflowContext>();
IOrganizationServiceFactory serviceFactory = 
    context.GetExtension<IOrganizationServiceFactory>();
IOrganizationService service = 
    serviceFactory.CreateOrganizationService(workflowContext.UserId);


8. Business Logic
Now we have to add the logic which does the following.
  • Read Text from "TaskSubject" Input Parameter
string newSubject = TaskSubject.Get<string>(context);
  • Create a new task object
Entity newTask = new Entity("task");
  • Set subject of the task to TaskSubject value
newTask["subject"] = newSubject;
  • Set regardingobjectid of task to PrimaryEntityId of context (this is the id of the account).
newTask["regardingobjectid"] = 
    new EntityReference("account", workflowContext.PrimaryEntityId)
  • Create the new task in CRM
Guid taskId = service.Create(newTask);



9. Sign the assembly
First of all, go to project settings and sign your assembly.
Right Click the Project -> Properties -> Signing -> Sign the assembly -> New -> Enter Key file name "testkey" -> no password (for testing purposes).

Signing
10. Compile and deploy the assembly
Rebuild your solution and deploy the assembly to the CRM System. This can be done by the PluginRegistrationTool of microsoft. You can find this as part of the current CRM-SDK. You have to compile it by your own. Choose the following settings.

Deployment
11. Create a Workflow with the new step
Create a default Workflow in CRM. Choose the following settings.
Workflow basic configuration

Add the new step 
Push the SetProperties-Button of the step and select a default name for the Input Parameter (TaskSubject). Because the Owner of the new task should see which account was created, we add the name of the account as input parameter.

Set input parameter
Now save and don't forget to activate  the Workflow.
12. Testing
Create a new Account in CRM.
Create Account
Processing the workflow can take some seconds. Open the Activity List of the account and select Filter on "All". You should see our created task. The subject contains some static text and the name of the created account.
Activity View
13. Code Overview
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
 
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;
 
namespace MK.CRM2011.CustomWorkflowStep {
    public class CreateTask : CodeActivity {
 
        #region Input Properties
        [Input("Task Subject")]
        [Default("Empty Subject")]
        public InArgument<string> TaskSubject { getset; }
        #endregion
 
        protected override void Execute(CodeActivityContext context) {
 
            //Create the IWorkflowContext and the
            //IOrganizationService for communication with CRM
            IWorkflowContext workflowContext =
              context.GetExtension<IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory =
              context.GetExtension<IOrganizationServiceFactory>();
            IOrganizationService service =
              serviceFactory.CreateOrganizationService(workflowContext.UserId);
 
            //Retrieve data from InputParameter 
            string newSubject = TaskSubject.Get<string>(context);
 
            //Create the new task object (in memory)
            Entity newTask = new Entity("task");
            newTask["subject"] = newSubject;
            newTask["regardingobjectid"] =
              new EntityReference("account", workflowContext.PrimaryEntityId);
 
            //Create task in CRM
            Guid taskId = service.Create(newTask);
        }
    }
}

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

Ok, this is more detailed than i have planned. Hope it helps!
Regards,
Markus

Thursday, December 1, 2011

CRM 2011 - Retrieving Organization Information

There are many ways to retrieving Organization-Information in code. Some of them are explained in this post.
  • Javascript
  • Organization-Webservice
  • Discovery-Webservice 
  • ...
1.) Javascript (Only Unique-Name)
The XRM-Context offers the a function for retrieving the org unique name.
Xrm.Page.context.getOrgUniqueName()

 This function can be used in Javascript/HTML- and Silverlight-Webresources.

2.) Organization-Webservice (Only Display-Name)
The SOAP-Endpoint of the CRM-System (http://crm:5555/XRMServices/2011/Discovery.svc) offers the default request-functionality for the "organization" entity. The record contains the field "name" which holds the display-name.

Important: If the system is created with import organization and the display-name has been changed in this process, the name in the organization-table of the _MSCRM Database is NOT changed. It still contains the name, selected generating the organization the first time.


3.) Discovery-Webservice (Display & Unique)

The discovery-endpoint also contains a functionality to retrieve organization data. This can be achieved by using the RetrieveOrganizationRequest.

Two remarks if you are using this approach:
  • There is no documentation available, how you can use discovery-endpoint in Silverlight-Webresources
  • The code will not run in offline-mode (SDK: This message works only when connected to the server.)
Update November 2012: The RetrieveOrganizationRequest is not working correctly in online systems for this purposes. Thanks to Mitch Milam.

Cheers,
Markus

Wednesday, November 30, 2011

CRM 2011 - "HTTP 500 - Internal Server Error" using SOAP Endpoint in Silverlight Webresources

Requesting data over organization endpoint results in the following error.
HTTP 500 - Internal Server Error

The problem may be a missing provider-setting in the IIS configuration.


Solution:
  • Open IIS Manager
  • Select "Microsoft Dynamics CRM" Site
  • Doubleclick "Authentication"
  • Right click "Windows Authentication"
  • Select "Providers"
  • Add "Negotiate"
  • IIS-Reset


 There should be two "Provider" entries.
  • Negotiate
  • NTLM
Cheers,
Markus

Tuesday, November 29, 2011

CRM 2011 - Import Organization - Errorcode: 0x80131904 The login already has an account under a different user name

Using Import Organization on a CRM 4 Database results in
Errorcode: 0x80131904 The login already has an account under a different user name

The problem are different users and schemas in the sql-database of the installed system (CRM2011) and the source system (CRM4). The system language of the CRM 2011 database is another language than the CRM 4 database has been.


Example (de/en):

CRM 4 based on Windows Server 2003 / SQL 2005 GERMAN
CRM 2011 based Windows Server 2008 R2 / SQL 2008 ENGLISH

The german systems contains the user and schema 'NT-AUTORITÄT\NETZWERKDIENST'.
CRM 2011 database contains an user and a schema 'NT AUTHORITY\NETWORK SERVICE'. This is what the CRM 2011 system is expecting in the import org database.

Solution:

  • Create Database with name of CRM 4 source (_MSCRM) in SQL-Server of CRM 2011
  • Restore from backup of CRM 4
  • Delete the user and schema 'NT-AUTORITÄT\NETZWERKDIENST' from restored database
  • Use Deploymentmanager and import the organization
Cheers,
Markus

Friday, February 18, 2011

CRM 2011 - Debugging Silverlight Webresources without deploying

It finaly works!

Good week for CRM2011 developers!

1. Release of new SDK


2. New informations about WCF-Soap Endpoint

3. Finding a solution for debugging silverlight webresources without deploying the webresources (My personal breakthrough! :))


Ok, first of all i would like to thank "erik-lp" from the MSDN forum for his tipps.

Following things are required for debugging your silverlight webresource.
  • Developing Machine (Same or other domain doesn't mater)
  • CRM-Server (I have tested with RC)
  • clientaccesspolicy.xml
The clientaccesspolicy.xml
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
  1. Navigate to the Web-Folder of your CRM-System. (\..\Microsoft Dynamics CRM\CRMWeb\)
  2. Copy the created clientaccesspolicy.xml into this folder
  3. Open your silverlight project in Visual Studio (For this example, we assume you are using the SOAP example from SDK version 5.0.1)
  4. Navigate to the SilverlightUtility.cs class
  5. Replace following code in the GetSoapService() Method
Before:


Uri serviceUrl = CombineUrl(GetServerBaseUrl(), "/XRMServices/2011/Organization.svc/web");
After:
Uri serviceUrl = new Uri("http:///<ORGNAME>/XRMServices/2011/Organization.svc/web");

Now you can push F5 and start debuging.

This solutions only works in OnPremise Systems. You can not deploy clientaccesspolicy.xml in online systems.
Eric also talks about a ClientGlobalContext.aspx.js file. This is not required, if you replace the code in the SilverlightUtil.cs.

Happy coding!

cheers!

Thursday, February 17, 2011

CRM 2011 - Accelerate Silverlight Webresource Development

Yes, it is hard to develop "big" Silverlight applications against the new Organization Service. One of the biggest problems, is the time consuming deployment of the xap/html files as webresources.

Microsoft delivers a nice tool for accelerating this task a little bit. It is called "webresourceutility" and you can find it in the SDK. But only the sources are available. So you have to open it in Visual Studio 2010 and rebuild it.

If you would like to extract it from the SDK-Folder (Maybe for versioning), additional folders are required because references exists in the Visual Studio Project.

Required:
  • sdk\tools --> Contains the tool
  • sdk\bin --> Contains the Microsoft XRM/SDK assemblies
  • sdk\samplecode --> References to DeviceIdManager.cs, MyOrganizationCrmSdkTypes.cs and CrmServiceHelpers.cs
If you have opened the solution, you can see the WPF Application (implemented with MVVM-Pattern). Pressing F5 should already start the application but you will run into an exception concerning missing Identity Model. You have to install Windows Identity Framework

WIF Download
I am using the Version 6.1 and it works fine, but i don`t know the difference between 6.0 and 6.1.

If you are using Windows XP, look here.

Now the tool should work.



The first step ist NOT to enter some information. Please click "NEW" before! ;)

Now enter all the stuff:
  • Name: Describes the Name of your connection. Maybe you have DEV, QS, LIVE or stuff like this.
  • Server: IP or Servername with the port if it is used
  • Organization: CRM Organization-Name
  • Username: CRM-Username
  • Domain: Domain of CRM Server
All this information will be stored in "configurations.xml".

Clicking "Connect!" will open a prompt for the password. Enter the user password and click submit.

The application switches automatically to the "Solutions" tab. Here you can select one of the solutions, currently deployed to the CRM Server. If there is no solution available, you have to create a new one. Infos about creating solutions you can find in the actual SDK.

Select your solution and click "Choose".

The application will change to the "Web Resource Packages" Tab with a empty List. Clicking "New Package" will open a new area.

Here you can enter the content of your package.

  • Package Name: A Package is the summary of webresources you would like to deploy in this step. For example if you are deploying a Silverlight application you can deploy the .HTML and the .XAP.
  • Root Path: The place where all of your webresources are stored on your local disc.
  • File Search: All files which are available in the selected root path are displayed. You can filter them, select the required and then push the "Add Files to Web Resources" button.
  • Web Resources: Here you can see the added files. Another importand part is the "Use Package Name as Web Resource namespace". If you select this, the namespace/folder will be extended with the name of the package. This can be tricky in HTML-Pages which hosts Silverlight Apps)
  • Publish all customizations after uploading web resources: The resources will always be uploaded AND deployed.
  • Save Package: Save your configuration to the "packages.xml"-File
  • Upload All: Uploads all Webresources in the "Web Resources" Area
  • Upload Selected: Uploads the selected Webresources in the "Web Resources" Area
  • Show Output: Shows the log which was created in further import processes.
Thats it. Now you can Write Code --> Build --> Click Upload --> Test. You can also use the existing code in the tool to create your own console application which is triggered in the post build event of the crm. The concept of the XML-Files is perfect for this approach.

Another Tip:
Yes security is important, but in the DEV-Team the password to the User of a DEV-Server is not that big secret. So you can remove the password promt.

  • Open the webresourceutility Solution in Visual studio
  • Navigate to ..ViewModels\MainWindowViewModel.cs
  • Jump to "InstantiateService()" Method (should be line 694)
  • Change code:

Before:


//Get the Password
string password = String.Empty;
PasswordWindow pw = new PasswordWindow();
pw.Owner = Application.Current.MainWindow;
bool? submitted = pw.ShowDialog();
if (submitted.Value) {
password = pw.GetPassword();
} else {
ErrorWindow needPassword = new ErrorWindow("You need to supply a Password and Submit. Try again.");
needPassword.Owner = Application.Current.MainWindow;
needPassword.ShowDialog();
return;
}


After:

//Get the Password

string password = "YourPassword";



cheers

Wednesday, February 16, 2011

CRM 2011 - SDK Update available (Soap from Silverlight)

The SDK Update contains the missing documentation for using WCF-Soap endpoint from Silverlight webresources. This will solve the problems, described in my previous posts "Limitations oData Endpoint CRM 2011" and "CRM 2011 - Webresources and SOAP Endpoint".

Download
Online Version
Soap From Silverlight – Direct Link

Greetz,
MK

Tuesday, December 28, 2010

CRM 2011 - Webresources and SOAP Endpoint

Like mentioned in my previouse post about the Limitations of the oData Endpoint, there is "currently" no option for assign records or use the Execute-Functionality of the CRM-Service using the oData Endpoint. I found an interesting hint in the new RC-SDK.

You can use JScript and Silverlight Web resources to access Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online data from within the application. There are two web services available, each provides specific strengths. The following table describes the appropriate web service to use depending on the task you need to perform.
Task Web Service
Create, Retrieve, Update and Delete records. REST Endpoint
Associate and Disassociate records REST Endpoint
Assign Records SOAP Endpoint
Retrieve Metadata SOAP Endpoint
Execute Messages SOAP Endpoint
Both of these Web services rely on the authentication provided by the Microsoft Dynamics CRM application. They cannot be used by code that executes outside the context of the application. They are effectively limited to use within Silverlight, JScript libraries, or JScript included in Web Page (HTML) Web resources.
The REST endpoint provides a ‘RESTful’ web service using OData to provide a programming environment that is familiar to many developers. It is the recommended web service to use for tasks that involve creating, retrieving, updating and deleting records. However, in this release of Microsoft Dynamics CRM the capabilities of this Web service are limited to these actions. Future versions of Microsoft Dynamics CRM will enhance the capabilities of the REST endpoint.
The SOAP endpoint provides access to all the messages defined in the Organization service. However, only the types defined within the WSDL will be returned. There is no strong type support. While the SOAP endpoint is also capable of performing create, retrieve, update and delete operations, the REST endpoint provides a better developer experience. In this release of Microsoft Dynamics CRM the SOAP endpoint provides an alternative way to perform operations that the REST endpoint is not yet capable of.
That means, you have to use the SOAP-Endpoint for Assign, SetState... in your Webresource. How this can be handled is not shown in the SDK at the moment. I hope for an update.

UPDATE: Walkthrough: Use the SOAP Endpoint for Web Resources with Silverlight.