Название участника мероприятия организатора становится нулевым - PullRequest
0 голосов
/ 28 февраля 2019

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

У нас есть разные онлайн-экземпляры Dynamics 365 CRM, но все они идентичны, так как они обновлены из Prod.Недавно разработанный код подключаемого модуля ведет себя по-разному в разных средах.

var organizers = (EntityCollection)appointment["organizer"];
Entity record = organizers.Entities[0];
EntityReference organizer = (EntityReference)record["partyid"];

При создании встречи асинхронный код подключаемого модуля после создания считывает organizer - одно из полей группы действий, но результат очень отличается.Хотя systemuserid идентично, имя происходит от этой ссылки на сущность должным образом в Dev, но приходит как null в других средах.

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

MS согласилась с этим как с ошибкой, но на самом деле это различие контекста идентифицируется между классическим веб-интерфейсом и UCI.Только для объекта назначения, из-за некоторой известной проблемы ответа oData - целевой объект UCI пропустил отформатированные значения.

Я получил журнал профилировщика плагинов от моей команды QA, поэтому я не понял, что они тестируют в UCI, ноЯ тестировал в сети, поэтому быстрые часы показали разницу при воспроизведении / отладке.

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

#region Workaround for fixing UCI app EntityReference coming as empty string

            if (string.IsNullOrEmpty(organizer.Name))
            {
                ctLog.Log("organizer.Name is empty");
                fetch = string.Format(@"<fetch>
                                          <entity name='systemuser' >
                                            <attribute name='fullname' />
                                            <filter type='and' >
                                              <condition attribute='systemuserid' operator='eq' value='{0}' />
                                            </filter>
                                          </entity>
                                        </fetch>", organizer.Id);

                ctLog.Log("fetch built");
                results = userOrgService.RetrieveMultiple(new FetchExpression(fetch));
                ctLog.Log("results count: " + results.Entities.Count);

                if (results.Entities.Count > 0)
                {
                    organizer.Name = results.Entities[0].GetAttributeValue<string>("fullname");
                }
            }

#endregion
0 голосов
/ 01 марта 2019

Это действительно странная проблема.Если вы не обновили другие организации из PROD, я бы сказал, что, возможно, в регистрации плагина зарегистрировано другое изображение.

Поскольку код, среда, регистрации плагина и даже идентификатор записи совпадают, этоодин может стоить тикета поддержки Microsoft.

Тем временем, обходной путь должен был бы проверить, является ли Имя пустым, и если да, получить Имя.Это еще один вызов системе, но он позволит вам продолжить, пока вы не увидите, может ли Microsoft предложить какую-либо информацию.

...