Плагин PostOperation Create должен выполнить InitializeFromRequest и выплевывает «Запись не существует» - PullRequest
1 голос
/ 09 мая 2019

У меня разработан плагин (Post-Operation, Create, Sync), который захватывает Target и вызывает InitializeFromRequest для создания другой записи, производной от создаваемой.

версия метода Execute вниз:

public void Execute(IServiceProvider serviceProvider)
{
  IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
  IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
  IOrganizationService service = factory.CreateOrganizationService(context.UserId);

  var newRecord = (service.Execute(new InitializeFromRequest
  {
    EntityMoniker = new EntityReference(context.PrimaryEntityName, context.PrimaryEntityId),
    TargetEntityName = "my_entityName",
    TargetFieldType = TargetFieldType.ValidForCreate
  }) as InitializeFromResponse).Entity;

}

Это работало отлично, пока пару недель назад.

Теперь точно такие же ошибки плагина с указанием my_entity with Id = <guid> does not exist.

Я вроде понимаю, почему это происходит, я все еще в транзакции, и запись еще не была на самом деле создана, следовательно, ошибка.

Я подозреваю, что апрельское обновление виновато, потому что оно начало происходить в то время, когда обновление было массово развернуто во всех средах (мы, как обычно, не обновляемся, если в этом нет необходимости, так как обновления всегдасломать кучу случайных вещей).

Что-то изменилось в том, как плагины Post-Operation Create обрабатываются платформой?Это еще один недокументированный трюк, который нам нужно как-то обойти?

...