Microsoft Dynamics CRM 插件 - 通过托管解决方案停用或禁用插件 SDK 消息处理步骤
Microsoft Dynamics CRM Plugin - Deactivate or disable plugin SDK message processing step via managed solution
我通过托管解决方案为我的实体引入了一个在更新 SDK 消息处理步骤中注册的插件。
现在,我想通过托管补丁解决方案禁用此步骤。
我可以从自定义 window 中停用 SDK 消息处理步骤作为非托管更改。但是,如果我将其导出为托管解决方案,则更改不会反映在 solution.xml 或 customizations.xml 文件中。
customizations.xml 文件中的 SdkMessageProcessingStep 节点似乎没有类似 IsActive 或 IsEnabled 的属性。
你能告诉我如何实现吗?
<SdkMessageProcessingSteps>
<SdkMessageProcessingStep Name="PreValidationUpdatePlugin: Update of entity" SdkMessageProcessingStepId="{a496dc85-87b3-e911-8199-000d3af937a2}">
<PluginTypeName>PreValidationUpdatePlugin, PreValidationUpdatePlugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11db56e249ade881</PluginTypeName>
<PluginTypeId>a7d27d5a-6d79-4d50-b898-d41b67ed6c89</PluginTypeId>
<PrimaryEntity>custom_entity</PrimaryEntity>
<AsyncAutoDelete>0</AsyncAutoDelete>
<Description>Update of custom_entity</Description>
<FilteringAttributes>name</FilteringAttributes>
<InvocationSource>1</InvocationSource>
<Mode>0</Mode>
<Rank>1</Rank>
<SdkMessageId>{20bebb1b-ea3e-db11-86a7-000a3a5473e8}</SdkMessageId>
<EventHandlerTypeCode>4602</EventHandlerTypeCode>
<Stage>20</Stage>
<IsCustomizable>1</IsCustomizable>
<IsHidden>0</IsHidden>
<SupportedDeployment>0</SupportedDeployment>
<IntroducedVersion>1.0</IntroducedVersion>
<SdkMessageProcessingStepImages>
<SdkMessageProcessingStepImage Name="Image">
<SdkMessageProcessingStepImageId>{bcff8b8d-87b3-e911-8199-000d3af937a2}</SdkMessageProcessingStepImageId>
<Attributes></Attributes>
<EntityAlias>Image</EntityAlias>
<ImageType>0</ImageType>
<MessagePropertyName>Target</MessagePropertyName>
<IsCustomizable>1</IsCustomizable>
</SdkMessageProcessingStepImage>
</SdkMessageProcessingStepImages>
</SdkMessageProcessingStep>
</SdkMessageProcessingSteps>
您必须在目标系统上使用插件注册工具来禁用插件步骤。解决方案不保留插件步骤的状态,因此无法通过解决方案做到这一点。
您可以在客户的解决方案导入指南中将其记录为 post 解决方案导入任务。
更新
我没有这样做,但我相信您可以将插件步骤作为包部署程序的一部分禁用。请参阅下面的文档 link 中创建包的步骤 5,您可以在其中插入 SDK 代码。
Create packages for the Dynamics 365 for Customer Engagement Package deployer
我通过托管解决方案为我的实体引入了一个在更新 SDK 消息处理步骤中注册的插件。 现在,我想通过托管补丁解决方案禁用此步骤。
我可以从自定义 window 中停用 SDK 消息处理步骤作为非托管更改。但是,如果我将其导出为托管解决方案,则更改不会反映在 solution.xml 或 customizations.xml 文件中。
customizations.xml 文件中的 SdkMessageProcessingStep 节点似乎没有类似 IsActive 或 IsEnabled 的属性。
你能告诉我如何实现吗?
<SdkMessageProcessingSteps>
<SdkMessageProcessingStep Name="PreValidationUpdatePlugin: Update of entity" SdkMessageProcessingStepId="{a496dc85-87b3-e911-8199-000d3af937a2}">
<PluginTypeName>PreValidationUpdatePlugin, PreValidationUpdatePlugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=11db56e249ade881</PluginTypeName>
<PluginTypeId>a7d27d5a-6d79-4d50-b898-d41b67ed6c89</PluginTypeId>
<PrimaryEntity>custom_entity</PrimaryEntity>
<AsyncAutoDelete>0</AsyncAutoDelete>
<Description>Update of custom_entity</Description>
<FilteringAttributes>name</FilteringAttributes>
<InvocationSource>1</InvocationSource>
<Mode>0</Mode>
<Rank>1</Rank>
<SdkMessageId>{20bebb1b-ea3e-db11-86a7-000a3a5473e8}</SdkMessageId>
<EventHandlerTypeCode>4602</EventHandlerTypeCode>
<Stage>20</Stage>
<IsCustomizable>1</IsCustomizable>
<IsHidden>0</IsHidden>
<SupportedDeployment>0</SupportedDeployment>
<IntroducedVersion>1.0</IntroducedVersion>
<SdkMessageProcessingStepImages>
<SdkMessageProcessingStepImage Name="Image">
<SdkMessageProcessingStepImageId>{bcff8b8d-87b3-e911-8199-000d3af937a2}</SdkMessageProcessingStepImageId>
<Attributes></Attributes>
<EntityAlias>Image</EntityAlias>
<ImageType>0</ImageType>
<MessagePropertyName>Target</MessagePropertyName>
<IsCustomizable>1</IsCustomizable>
</SdkMessageProcessingStepImage>
</SdkMessageProcessingStepImages>
</SdkMessageProcessingStep>
</SdkMessageProcessingSteps>
您必须在目标系统上使用插件注册工具来禁用插件步骤。解决方案不保留插件步骤的状态,因此无法通过解决方案做到这一点。
您可以在客户的解决方案导入指南中将其记录为 post 解决方案导入任务。
更新
我没有这样做,但我相信您可以将插件步骤作为包部署程序的一部分禁用。请参阅下面的文档 link 中创建包的步骤 5,您可以在其中插入 SDK 代码。 Create packages for the Dynamics 365 for Customer Engagement Package deployer