Fetchxml po stronie serwera zwraca różne wyniki

Jedna z naszych procedur pozwala użytkownikom na zbiorcze wstawianie powiązanych rekordów poprzez wybranie widoku, a następnie naciśnięcie przycisku wstążki. Formularz jest zapisywany, ustawiana jest flaga, a wtyczka wykonuje swoje zadanie.

Używamy podkategorii z selektorem widoku, aby umożliwić użytkownikom wybieranie lub tworzenie własnych widoków w locie. Po wybraniu widoku wyświetlana jest liczba wyników (podana lte 5k).

Gdy wtyczka uruchamia tę samą stronę serwera fetchxml (Pobierz zapytanie użytkownika lub zapisaną kwerendę, a następnie Pobierz + FetchExpression), wyniki się zmieniają. Dostajemy nie tylko inną liczbę rekordów, ale także niektóre rekordy są różne.

Doszliśmy do wniosku, że problem dotyczy stref czasowych. Niektóre filtry zawierały operatory „on-or-after” wraz z wartościami daty. Przykład:

<filter type="and">
  <condition attribute="modifiedon" operator="on-or-after" value="2011-01-01" />
  <condition attribute="modifiedon" operator="on-or-before" value="2011-12-31" />
</filter>

Wtyczka działała jako admin. Zmiana użytkownika wtyczki nie ma żadnego efektu - tak jakby bieżąca strefa czasowa użytkownika nie była brana pod uwagę podczas wyciągania rekordów z CRM przy użyciu wyrażenia FetchExpression.

Jak mogę się upewnić, że wyrażenie fetchxml zwraca te same wyniki po stronie klienta i po stronie serwera?

Prawdopodobnie powiązane:Wątek MSDN.

Dziękuję za Twój czas.

Edytuj: zgodnie z sugestią Daryla uruchomiłem śledzenie SQL. Wyniki są zagadkowe. Daty są poprawnie przesunięte dla zapytań po stronie klienta (uruchamianych z CRM, tj. Wyszukiwanie zaawansowane) - oznacza to, że fetchxml jest poprawnie przetłumaczony przy użyciu ustawień strefy czasowej użytkownika. Nie dzieje się tak dla tego samego zapytania po stronie serwera; wyjściowy SQL zawiera filtry daty „tak jak jest”, bez przesunięcia strefy czasowej. Zakładałem, że to samo tłumaczenie stało się bez względu na pochodzenie kontekstu wykonania zapytania.

Edytuj 2: Flaga w ukrytym regionie kodu (mój ostatni ośrodek debugowania) uniemożliwiała wtyczce utworzenie instancji usługi w kontekście uruchomionego użytkownika. Wszystko działa teraz dobrze. Dziękujemy wszystkim za poświęcony czas i twoją pomoc, to bardzo doceniane.

questionAnswers(1)

yourAnswerToTheQuestion