Мне нужно создать один плагин для запуска событий создания, обновления и удаления сущностей возможностей.
Могу ли я сделать это в одном плагине? Если да, то как я могу их сделать?
Мне нужно создать один плагин для запуска событий создания, обновления и удаления сущностей возможностей.
Могу ли я сделать это в одном плагине? Если да, то как я могу их сделать?
да, вы можете использовать тот же плагин, чтобы выполнить его при создании, обновлении и удалении
напишите свой плагин следующим образом..
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
if (context.MessageName == "Create")
{
//write the logic what you want this plugin to do on Create
}
if (context.MessageName == "Update")
{
//write the logic what you want this plugin to do on Update
}
if (context.MessageName == "Delete")
{
//write the logic what you want this plugin to do on Delete
}
}
Зарегистрируйте свой плагин в Create, Update, Delete for Oppertunity Entity, используя инструмент регистрации плагинов.
он должен работать
Ваш плагин должен реализовать интерфейс Microsoft.Xrm.Sdk.IPlugin
, который имеет только один метод для реализации, Execute
. В вашем методе Execute
вам нужно проверить свойство MessageName
IPluginExecutionContext и проверить, какой тип события вызвал плагин. Вам также потребуется зарегистрировать плагин для каждого типа сообщений (Создать/Обновить/Удалить) с помощью инструмента регистрации плагинов.
Вот мой личный список типов сообщений OOB для сравнения с MessageName
:
AddItem,
AddListMembers,
AddMember,
AddMembers,
AddPrincipalToQueue,
AddPrivileges,
AddProductToKit,
AddRecurrence,
AddToQueue,
AddUserToRecordTeam,
Assign,
AssignUserRoles,
Associate,
BackgroundSend,
Book,
Cancel,
CheckIncoming,
CheckPromote,
Clone,
Close,
CopyDynamicListToStatic,
CopySystemForm,
Create,
CreateException,
CreateInstance,
Delete,
DeleteOpenInstances,
DeliverIncoming,
DeliverPromote,
DetachFromQueue,
Disassociate,
Execute,
ExecuteById,
Export,
ExportAll,
ExportCompressed,
ExportCompressedAll,
GenerateSocialProfile,
GrantAccess,
Handle,
Import,
ImportAll,
ImportCompressedAll,
ImportCompressedWithProgress,
ImportWithProgress,
LockInvoicePricing,
LockSalesOrderPricing,
Lose,
Merge,
ModifyAccess,
PickFromQueue,
Publish,
PublishAll,
QualifyLead,
Recalculate,
ReleaseToQueue,
RemoveFromQueue,
RemoveItem,
RemoveMember,
RemoveMembers,
RemovePrivilege,
RemoveProductFromKit,
RemoveRelated,
RemoveUserFromRecordTeam,
RemoveUserRoles,
ReplacePrivileges,
Reschedule,
Retrieve,
RetrieveExchangeRate,
RetrieveFilteredForms,
RetrieveMultiple,
RetrievePersonalWall,
RetrievePrincipalAccess,
RetrieveRecordWall,
RetrieveSharedPrincipalsAndAccess,
RetrieveUnpublished,
RetrieveUnpublishedMultiple,
RetrieveUserQueues,
RevokeAccess,
Route,
RouteTo,
Send,
SendFromTemplate,
SetRelated,
SetState,
SetStateDynamicEntity,
TriggerServiceEndpointCheck,
UnlockInvoicePricing,
UnlockSalesOrderPricing,
Update,
ValidateRecurrenceRule,
Win