Поделиться через


Использование подсказок порядка в Планировщике

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Порядок сортировки объектов в Планировщике определяется подсказками порядка. Значения подсказок порядка — строки. Чтобы определить порядок следования элементов, клиенты могут сортировать эти строки по порядковому значению символов в них. Сравниваются символы с начала строки и до тех пор, пока не будет обнаружена разница в порядковом значении символов, либо пока одна из строк не закончится — в таком случае короткая строка будет расположена выше длинной. Значения могут содержать любой символ с порядковым номером от 32 (пробел) до 126 (~).

Например, элемент с подсказкой порядка a (порядковый номер 97) будет размещен выше элемента с подсказкой порядка z (порядковый номер 122). Элемент с подсказкой порядка abc (порядковые номера 97, 98, 99) будет размещен выше элемента с подсказкой порядка abd (порядковые номера 97, 98, 100). Элемент с подсказкой порядка a будет размещен выше элемента с подсказкой порядка ab, так как все существующие знаки совпадают, а a короче.

Значения для всех подсказок порядка вычисляет служба. Клиент может изменить расположение элементов, указав для определенного элемента подсказку порядка, которая переместит его между двумя указанными элементами. Для этого необходимо задать такое значение подсказки порядка: <previous order hint> <next order hint>! (где <previous order hint> — значение, которое будет заменено подсказкой порядка элемента, расположенного перед целевым местом, а <next order hint> — значение, которое будет заменено подсказкой порядка элемента, расположенного после целевого места). Между этими значениями ставится пробел, а в конце значения указывается суффикс !. Если предыдущий или предшествующий элемент не существует, вместо него следует указать пустую строку. Значение также можно составить на основе проведенных ранее расчетов. Кроме того, клиент может использовать это значение для сортировки элементов в порядке возвращения подсказок порядка. После того как клиент отправит эти значения в обновлении, служба вычислит короткое значение, которое поможет выполнить сортировку.

Примечание: В следующих примерах фактические значения указаний на заказ заключены в одинарные символы кавычки (') для ясности, однако они не являются частью данных и не должны отправляться в службу.

Рассмотрим следующий список подсказок порядка сортировки.

  1. Элемент 1 (подсказка порядка: '5637').
  2. Элемент 2 (подсказка порядка: 'adhg').

Расположите элемент 3 перед элементом 1, а затем поместите элемент 4 между элементами 1 и 2. Затем поместите элемент 5 после элемента 2. В клиенте будут созданы следующие подсказки порядка.

  1. Элемент 3 (подсказка порядка: ' 5637!').
  2. Элемент 1 (подсказка порядка: '5637').
  3. Элемент 4 (подсказка порядка: '5637 adhg!').
  4. Элемент 2 (подсказка порядка: 'adhg').
  5. Элемент 5 (подсказка порядка: 'adhg !').

Затем переместите элемент 1 в конец списка. Будут созданы следующие подсказки.

  1. Элемент 3 (подсказка порядка: ' 5637!').
  2. Элемент 4 (подсказка порядка: '5637 adhg!').
  3. Элемент 2 (подсказка порядка: 'adhg').
  4. Элемент 5 (подсказка порядка: 'adhg !').
  5. Элемент 1 (подсказка порядка: 'adhg ! !').

Поместите элемент 5 между элементами 3 и 4. Будут созданы следующие подсказки.

  1. Элемент 3 (подсказка порядка: ' 5637!').
  2. Элемент 5 (подсказка порядка: ' 5637! 5637 adhg!!').
  3. Элемент 4 (подсказка порядка: '5637 adhg!').
  4. Элемент 2 (подсказка порядка: 'adhg').
  5. Элемент 1 (подсказка порядка: 'adhg ! !').

Когда эти изменения значений указаний заказа отправляются в службу в запросах на исправление, служба вычислит правильные значения, которые сохраняют заказ, предназначенный клиентом. Клиент может немедленно получить значения, если в PATCH запросах Prefer: return=representation указан заголовок предпочтения. Значения для указанного выше случая могут выглядеть следующим образом (фактические значения могут отличаться).

  1. Элемент 3 (подсказка порядка: '432b').
  2. Элемент 5 (подсказка порядка: '6F"#').
  3. Элемент 4 (подсказка порядка: '7A$6').
  4. Элемент 2 (подсказка порядка: 'adhg').
  5. Элемент 1 (подсказка порядка: 'de5%').

Для создания первого элемента в списке можно использовать значение подсказки порядка !, так как ни предыдущий, ни следующий элемент в таком случае не существуют. Но это не обязательно, так как служба автоматически создаст значения для всех подсказок порядка, если они не указаны во время создания элемента. В следующем примере показаны подсказки порядка, которые следует использовать для добавления элементов в пустой список. Добавьте первый элемент:

  1. Элемент 1 (подсказка порядка: ' !').

Добавьте второй элемент вверху:

  1. Элемент 2 (подсказка порядка: ' !!').
  2. Элемент 1 (подсказка порядка: ' !').

Добавьте третий элемент внизу.

  1. Элемент 2 (подсказка порядка: ' !!').
  2. Элемент 1 (подсказка порядка: ' !').
  3. Элемент 3 (подсказка порядка: ' ! !').