Oto ciekawy problem. Chcę poznać wszystkie ustawienia sprawia, że ta różnica lub jakąkolwiek obejście, aby uzyskać prawo.

Mamy inną instancję online Dynamics 365 CRM, ale wszystkie są identyczne, ponieważ są one odświeżone z prod. Ostatnio opracowany kod wtyczki zachowuje się inaczej w środowiskach.

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

W tworzeniu spotkania, kod wtyczki asynchentowej Post-create odczytuje organizer - jeden z pola imprezy aktywności, ale wynik jest bardzo inny. Choć systemuserid jest identyczny, nazwa nadchodzi z tego podmiotu prawidłowo w Dev, ale przychodziła jako null w innych środowiskach.

Wpisz opis obrazu tutaj

Wpisz opis obrazu tutaj

2
Arun Vinoth - MVP 28 luty 2019, 21:18

2 odpowiedzi

Najlepsza odpowiedź

MS uzgodniła to jako błąd, ale właściwie ta różnica kontekstowa jest zidentyfikowana między klasycznym interfejsem UI i UCI. Tylko do podmiotu wizyty, ze względu na niektórych znanych odpowiedzi na odatę - jednostka docelowa UCI brakuje sformatowanych wartości.

Dostałem logo profilera wtyczki z mojego zespołu QA, więc nie zdawałem sobie sprawy, że testowali w UCI, ale przetestowałem w sieci, więc szybki zegarek pokazał różnicę podczas odtwarzania / debugowania.

W każdym razie do MS priorytety i naprawę tego błędu, mam poniższe obejście, aby odblokować ten problem.

#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
Arun Vinoth 11 kwiecień 2019, 14:28

To naprawdę dziwny problem. Jeśli nie odświeżyłeś innych orgów z Produ, powiedziałbym, że w rejestracji wtyczki jest inny obraz.

Od kodu, środowiska, rejestracji wtyczek, a nawet identyfikator rekordu są takie same, to może być warte biletu Microsoft Support.

W międzyczasie obejście byłoby sprawdzenie, czy nazwa jest null, a jeśli tak, pobrać nazwę. To kolejne połączenie do systemu, ale pozwoli Ci kontynuować podczas widzenia, czy Microsoft może zaoferować wgląd.

1
Aron 1 marzec 2019, 12:43