Ошибка при использовании $ filter = substringof () в SPFx с REST API - PullRequest
0 голосов
/ 23 сентября 2019

Я довольно плохо знаком с SharePoint SPFx и Rest API.Я пытаюсь выбрать один элемент из онлайн-списка SharePoint, используя Rest API.Этот элемент должен быть выбран с проверкой, если свойство содержит строку.Это свойство является URL, и строка будет определенным словом, которое должно быть в URL.Эти данные будут использоваться в пользовательской веб-части для SharePoint Online.Это API, который я сейчас использую: https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({string: word},{property: url}).

Когда я пытаюсь запустить пользовательскую веб-часть в рабочей среде ({tenant} / _ layouts / 15 / workbench.aspx), веб-часть загружаетсяправильно, но я получаю следующую ошибку для вызова API: код: «-1, Microsoft.SharePoint.SPException» сообщение: «Подстрока оператора функции не поддерживается или использование недопустимо.».

Я предполагаю, что мой синтаксис неправильный, но я не могу понять, что я делаю неправильно.

Я пытался изменить мой API, следуя примерам, найденным в Интернете.Эти варианты, которые я уже пробовал: // поменять местами строку и свойство

  • https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({property},{string})

// добавление eq true в конце

  • https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({string},{property}) __eq true__

  • https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=substringof({property},{string}) __eq true__

// использовать $ substringof () вместо $ filter = substringof()

  • https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$ __substringof__({property},{string})
  • https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$ __substringof__({string},{property})

// использовать $ filter = contains () вместо $ filter = substringof ()

  • https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=__contains__({property},{string})
  • https://{tenant}/_api/web/lists/GetByTitle('{listname}')/items?$select={properties}&$filter=__contains__({string},{property})

Первый API работает, когда я проверяю его в браузере и возвращает ожидаемый элемент с выбранными свойствами.Поэтому я предполагаю, что это как-то связано с тем, что я использую его в рабочей среде / SharePoint Online.

Это XML, который я получаю при использовании первого API в браузере:

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
      xmlns:georss="http://www.georss.org/georss" 
      xmlns:gml="http://www.opengis.net/gml" 
      xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
      xml:base="https://{tentant}/_api/">
   <id>{guid}</id>
   <title />
   <updated>2019-09-23T09:51:02Z</updated>
   <entry m:etag="&quot;26&quot;">
      <id>{guid}</id>
      <category term="SP.Data.CustomersListItem" 
       scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
      <link rel="edit" 
       href="Web/Lists(guid'a8c98000-4c6a-43ed-b09a-ba95eb43b15f')/Items(53)" />
      <title />
      <updated>2019-09-23T09:51:02Z</updated>
      <author>
         <name />
      </author>
      <content type="application/xml">
         <m:properties>
           {the requested properties in the select}
         </m:properties>
      </content>
   </entry>
</feed>

Я хотел бы получить тот же вывод XML, чтобы я мог использовать свойства для заполнения полей вмоя пользовательская веб-часть.Но явно я что-то не так делаю.Подстрока () или содержит () не поддерживается SharePoint Online?У меня есть синтаксическая ошибка?Другими словами: как мне заставить это работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...