Tag Archives: CRM Plugin

CRM Outlook client Installation issue

One of my colleagues had following issue while installing latest CRM roll up for outlook client.

Installation cannot proceed: Setup cannot continue because a pending restart is required. Restart the computer and then try running Setup again

Please read this article for the solution regarding this.

Hope this helps…

Regards,
MayankP πŸ™‚

The length of the ‘filteringattributes’ attribute exceeded the maximum allowed length of ‘100’

While developing one of the plug-in for CRM 4.0 we started getting following error from plug-in registration tool.

Problem/Error Description

Unhandled Exception: System.Web.Services.Protocols.SoapException: Server was unable to process request.
Detail:

A validation error occurred. The length of the ‘filteringattributes’ attribute of the ‘sdkmessageprocessingstep’ entity exceeded the maximum allowed length of ‘100’.
Platform

at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at PluginRegistrationTool.CrmSdk.CrmService.Create(BusinessEntity entity)
at PluginRegistrationTool.RegistrationHelper.RegisterStep(CrmOrganization org, CrmPluginStep step)
at PluginRegistrationTool.StepRegistrationForm.btnRegister_Click(Object sender, EventArgs e)

Solution Steps for this are mentioned as below..
Step 1: Run query on database to check current max length..

select Maxlength from MetadataSchema.Attribute
where name ='filteringattributes'

Step 2: Update this field to desired value

Update MetadataSchema.Attribute
SET Maxlength = 500
where name ='filteringattributes'

Step 3: Check the Length again to make sure it update from above queries.

Note: – Above customization is unsupported and you must take precautionary measure to make sure to avoid any problem with CRM system.

Hope this helps..

Regards,
MayankP:)

Plug-in type With Id = GUID Does Not Exist

We suddenly started getting following exception on one of our CRM environment.

Unhandled Exception: System.Web.Services.Protocols.SoapException:
Server was unable to process request. Detail:

0x80040217
plugintype With Id = 6ba57788-1975-df11-8b26-0050568d68ea Does Not Exist Platform

Cause:

The reason this error occurred on our environment is that we had plug in assembly registered on crm database as Database deployment and we then unregister the assembly and registered it again which caused problem because steps of the previous assembly was already there in the database (even though they are marked for deletion).

Resolution:

This is tricky problem and might need unsupported SQL delete of the records which are corrupted.

IMP. NOTE: This is unsupported and you should back up your SQL before doing any changes. If you got MS support then it is better to contact them for this tricky issue.

Basically you need to delete or check records regarding this plug in type and store all the rows you remove in excel file because you might need to refer it again to get the relevant Guid.
Firstly let me explain the list of table which stored plug in related details.

PluginTypeBase – all individual Plug In (classes) will be stored in this table.

PluginTypeBaseIds – This is GUID of the record from PluginTypeBase table (this table links individual class with other tables in CRM).

SdkMessageProcessingStepBase – This table stores all the steps related to particular class

SdkMessageProcessingStepBaseIds – This table stores GUID of the record from SdkMessageProcessingStepBase table.

SdkMessageProcessingStepImageBase – This tale stores image s details related to steps.

SdkMessageProcessingStepSecureConfigBase – This table stores any configuration related to this plug-In type.

Now let’s do select queries first to see all records are relevant to our plug–in type and then we need to just replace delete command with select to remove related records from database.

select * from PluginTypeBaseIds where PluginTypeId = GUID
(e.g. select * from PluginTypeBaseIds where PluginTypeId = 'FB270B8E-B48D-DF11-8D06-18A90547D5EE')

SELECT * FROM PluginTypeBase where PluginTypeId = GUID

SELECT * FROM [SdkMessageProcessingStepBase] where PluginTypeId = GUID

SELECT * FROM [SdkMessageProcessingStepBaseIds] where [SdkMessageProcessingStepId] in (Select
SdkMessageProcessingStepId FROM [SdkMessageProcessingStepBase]
where PluginTypeId = GUID)

SELECT * FROM [SdkMessageProcessingStepImageBase] where [SdkMessageProcessingStepId] in (Select
SdkMessageProcessingStepId FROM [SdkMessageProcessingStepBase]
(Select SdkMessageProcessingStepId FROM [SdkMessageProcessingStepBase]where PluginTypeId = GUID)

SELECT * FROM [SdkMessageProcessingStepSecureConfigBase]

Verify that above queries gives you only record related to your plug-in Type , so read the description column on each row and make sure this is related to your plug in type only, Now we need to start deleting records from bottom tables to top.

-> SdkMessageProcessingStepSecureConfigBase table first (only row related to your plug in type and if your plug in type does not have related record in this table ignore this one) and then

-> SdkMessageProcessingStepImageBase (only record related to your GUID) and then

-> SdkMessageProcessingStepBaseIds (you may need to do this after sdkMessageProcessingStepBase so store Guid
and then delete after you delete records from sdkMessageProcessingStepBase table) (only record related to your
GUID)

-> SdkMessageProcessingStepBase (only record related to your GUID)

-> PluginTypeBaseIds (only record related to your GUID)

-> PluginTypeBase (only record related to your GUID)

After all delete queries are run successfully restart CRM Service and Asynchronous Service..

Hope this helps, if need more information please put comments on this post and I will respond with more details ..

Cheers,
MayankP πŸ™‚

CRM Plug-in / Custom Workflow debugging check list

UPDATE (30/07/2010) : I haved updated few steps based on comments from Andriy Butenko (CRM MVP)

If you got plug in or custom workflow application which is not working as expected on CRM server or giving unexpected error then following is the check list to set up for debugging Plug in/Custom workflow application.

1-Ensure that your plug-in is signed ( For Custom workflow this step is optional)

2-Rebuild the plug-in/Custom workflow

3-Restart CRM web site (i.e. run an iisreset command on server)

4. Also restart CRM Asynchronous Service on CRM server

5-copy the .pdb file and your .dll file to server\bin\assembly

6-Register the Plug-in Registration Tool V2 (http://code.msdn.com/crmplugin)

7. Refer to your dll in bin\assembly

8. Make it disk deployment (This step is also optional)

9-Register the step

10-Register the image if needed for relevant Plug-in

11- Open the relevant application in visual studio and click on Debug -> attach and then
select w3wp.exe if Synchronous plug-in or
select CRMAsyncService if asynchronous plug-in or Custom workflow.

12. You must be all set by then and just need to put breakpoint on relevant code line.

Note:- steps 9 & 10 are not needed for custom workflow application.

SOURCE

Hope this helps…

Cheers,
MayankP:)

MSCRMKeyService cannot be found – CRM Plug in Issue

We got following error message after installing plug on one of the CRM Server

The description for Event ID 18960 from source MSCRMKeyService cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event:

CrmWRPCTokenKey
f0f324a8-e843-df11-a4bc-0026551afb74
00000000-0000-0000-0000-000000000000

the message resource is present but the message is not found in the string/message table

Cause

This error comes if you have importing plug in steps (i.e. import xml) using plug in registration tool

Resolution

Manually create the plug in steps and then restart CRM website (i.e. iisreset) and also restart CRM asynchronous service.

Cheers,
MayankP πŸ™‚