Среда - Dynamics 365, текущая версия.
У нас есть плагин, который запускается при получении возможности. Все хорошо с этим. Но есть другой способ закрыть выигранную возможность, и это связано с цитатой.
Если вы находитесь в соответствующей цитате и делаете "создать заказ", у вас есть шанс закрыть возможность также, как выиграл. Но в этом случае плагин не запускает сообщение «win».
Я предполагаю, что событие находится слишком глубоко в цепочке, и оно не инициируется.
Или что это не победное событие, а обновление или что-то еще. вот так.
Кто-нибудь сталкивался с этим делом? Есть мнения?
Обновление для вопроса Dot_NET Pro:
Существуют условия if, которые выходят из кода.
Первый из них:
public void Execute(IServiceProvider serviceProvider)
{
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationService organizationService = serviceFactory.CreateOrganizationService(null);
if (context.MessageName.ToLower() != "win")
{
return;
}
var currentOpportunity = RetrieveCurrentOpportunity(serviceFactory, context, organizationService);
if (currentOpportunity == null)
{
return;
}
// More code comes here.
Второй оператор if входит в метод с таким кодом:
private Entity RetrieveCurrentOpportunity(IOrganizationServiceFactory serviceFactory, IPluginExecutionContext context, IOrganizationService organizationService)
{
Guid opportunityId = Guid.Empty;
if (context.InputParameters.Contains("OpportunityClose") && context.InputParameters["OpportunityClose"] is Entity)
{ // ... more code here.
// else-case does nothing.