Category Archives: SharePoint веб-служб

Як вказати людей як область пошуку / Джерела вмісту за допомогою SharePoint 2013 REST API

Я була причина, щоб працювати з SharePoint 2013 API пошуку через відпочинок в перший раз. Я хотів би шукати людей, не документів. Ключ, навчання, тут є те, що ви вказати джерела вмісту через його GUID (або, по крайней мере, в цьому випадку). Наступний фрагмент шоу jQuery як:

    loadExpertsAsync: функція() {

        jQuery.support.cors = Істина;

        $.AJAX({
            URL-адреса: Це.CreateFullApiUrl() +
                "?querytext = 'портали'&вихідного коду = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Навички,AboutMe,Інтереси,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&RowLimit = 99",
            метод: "ОТРИМАТИ",
            заголовки: { "Прийняти": "застосування/json; odata = verbose" },
            кеш: ХИБНІСТЬ,
            успіх: функція (Результат) {

У моєму випадку, Я біжу API проти SharePoint онлайн. Щоб отримати ідентифікатор GUID, Я після цих кроків:

  1. Доступ до центру адміністрування SharePoint
  2. Виберіть "Пошук" з лівою рукою навігації
  3. Виберіть опцію "Впорядкувати результат джерела"
  4. Виберіть "Місцевих жителів результати"
  5. Подивіться на URL-адресу.

Мій URL виглядав таким:

https://xyzzy-admin.sharepoint.com/_layouts/15/searchadmin/EditResultSource.aspx?level=tenant&sourceid=b09a7990%2D05ea%2D4af9%2D81ef%2Dedfab16c4e31&view=1

Параметр вихідного коду є те, що працював для мене.

(Я розумію, що вихідного коду фактично може бути свого роду константа одна з СП, але я завжди буду перевіряти все одно 🙂 ).

</кінець>

undefinedПідписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin

Lists.asmx, GetListItems і папок

Я роблю деякі дослідження для кого-то сьогодні навколо list.asmx веб-служби, що надається як частина SharePoint 2010 (і раніше).  Вона була в змозі отримати елементи в кореневій папці (включаючи імена вкладені папки), але не міг отримати елементи в вкладені папки.  Я зробив деякий озираючись на Інтернет, і це дивно поширені питання.  Ще, Я не міг отримати хорошу відповідь просте запитання:, "Якщо я знаю, що папки, як отримати елементи в папці?”  Щоб бути чесним, Я не спробувати все, що важко, тому що я хотів фігурою, це одне з на моїх на деякий час посмішка.

Щоб реалізувати цю можливість, Я створив сайт, названий "Блогів сценарії" та настроюваний список, названий "Настроюваний список із вкладених папок".  Потім я створив папок, названий:

  • Рік 2005
  • Рік 2006
  • Рік 2007

Я додав кілька елементів до папки "2006 року".  Це те, що він виглядає:

image

Мій друг не писати C# код, але швидше за використання Java, так МИЛО конверт було те, що вона дійсно необхідна.  Щоб отримати, що, Я написав трохи jQuery і потім використовувати скрипаля отримати фактичне розмова HTTP.

Ось відповідних jQuery (Я скопіювати код вниз нижче, якщо ви хочете копіювати/вставити):

image

Вони є першим ключовим включити обидві на <queryOptions> і <QueryOptions> вузол.  Другим ключовим є те, що на <Папка> вузол є URL-адресу, на яку клієнт має доступ.

Можливо, інші способи, щоб отримати це, але це працює добре для мене, коли за допомогою jQuery.

Ось МИЛО конверт для зазначених вище:

<soapenv:Конверт xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Тіло>
    <GetListItems-xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Користувацький список з вкладених папок</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef ім'я =' Назва’ />
          <FieldRef ім'я ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
http://demoserver1/блоги Сценарії, списки, настроюваний список з південь папках на рік 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Тіло>
</soapenv:Конверт>

Багато прикладів і дискусії навколо цього привели мене до думки, що все, що мені потрібно було <QueryOptions> і вкажіть ім'я папки.  Для мене, Я потрібна обом оберніть його всередині <queryOptions> а також вказати повний URL для на <Папка> вузол.

Ось установка AJAX jQuery:

$(документ).готові(функція() {
       VAR soapEnv =
           "<soapenv:Конверт xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Тіло> \
                    <GetListItems-xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Користувацький список з вкладених папок</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef ім'я =' Назва’ /> \
                              <FieldRef ім'я ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Папка>http://demoserver1/Blogging Сценарії, списки, настроюваний список з південь папках на рік 2006</Папка> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Тіло> \
           </soapenv:Конверт>";

</кінець>

Підписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin

Lists.asmx, GetList і "значення не може бути null”

Сьогодні я виявив, що в GetList() метод в lists.asmx веб-служба має називатися дуже ретельно або вона схильна до кинути таємничий "Значення не може бути невизначеним" виняток (і що передбачається, що ви можете отримати минулих ще гірше загальні помилки повідомлення, "Виняткова ситуація типу ' Microsoft.SharePoint.SoapServer.SoapServerException’ був кинутий.")  Зокрема, Я виявив, що ви не можете надати будь-які префікс GetList методом.  Наступний фрагмент jQuery ілюструє точка:

image

У цьому випадку, веб-служба реагує з "Значення не може бути пусте" відповідно до цього Скрипаль-надані HTTP Стенограма:

<?XML версія = "1,0" кодування = "utf-8"?>
  <мило:Конверт
     xmlns:мило ="
http://schemas.xmlsoap.org/SOAP/envelope/"    
     xmlns:XSi = "
http://www.w3.org/2001/XMLSchema-Instance
     xmlns:xsd ="
http://www.w3.org/ 2001/XMLSchema">

  <мило:Тіло>
    <мило:Вини>
      <faultcode>мило:Сервер</faultcode>
      <faultstring>
        Винятком, тип ' Microsoft.SharePoint.SoapServer.SoapServerException’ був кинутий.
      </faultstring>
      <докладно>
        <errorstring xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Значення не може бути невизначеним.
        </errorstring>
      </докладно>
    </мило:Вини>
  </мило:Тіло>
</мило:Конверт>

Звичайно, ви напевно б не додати що префікс "s0" на свій розсуд, але деякі інструменти, схильні до зробити це (як затемнення).

Це все більш заплутаним / розчарування, оскільки інші методи терпіти префіксів.  Наприклад, на GetListCollection метод не проти, якщо вона є префіксом, навіть з префікса дурниця, як "xyzzy":

image

Це "значення не може бути невизначеним" здається досить часто, з lists.asmx, так що сподіваюся, це допоможе хтось на в майбутньому.

</кінець>

Підписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin