Категория Архиви: SharePoint уеб услуги

Как да зададете хора като обхват за търсене / Източник на съдържание с помощта на SharePoint 2013 ПОЧИВКА API

Имах причина да работите на SharePoint 2013 API за търсене чрез почивка за първи път. Исках да търсене на хора, не документи. Ключът обучение тук е, че задавате източници на съдържание чрез своя GUID (или поне в този случай). В следните jQuery фрагмент показва как:

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

        jQuery.support.cors = вярно;

        $.Аякс({
            URL адрес: Това.CreateFullApiUrl() +
                "?querytext = "портали"&SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Умения,AboutMe,Интереси,Длъжност,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl "" +
                "&RowLimit = 99",
            метод: "ВЗЕМИ",
            заглавки: { "Приемете": "приложение/json; oData = многословно" },
            кеш: фалшиви,
            успех: функция (Резултат) {

В моя случай, Аз съм тичане API срещу SharePoint онлайн. Да получите GUID, Аз последовател тези стъпвам:

  1. Достъп до центъра за администриране на SharePoint
  2. Изберете "търсене" от лявата навигация
  3. Изберете "Управление на източници на резултат"
  4. Изберете "Резултати от местните хора"
  5. Погледнете на сайта.

Моят URL погледна нещо подобно:

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

Параметърът на sourceid е това, което работи за мен.

(Аз разбирам, че sourceid всъщност може да бъде нещо като нещо постоянно с SP, but I’ll always check anyway 🙂 ).

</край>

undefinedАбонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Lists.asmx, GetListItems и папки

Аз правя няколко изследвания на някой днес около list.asmx уеб услуга, предоставени като част от SharePoint 2010 (и по-рано).  Тя е в състояние да получи елементите от списъка в главната папка (включително имената на подпапките), но не можа да се получи елементите в подпапките.  Направих някои поглед по internets и това е изненадващо общ въпрос.  Още, Не мога да получа добра отговорът на прост въпрос, "Ако знам, че папката, Как да получа елементите в папката?”  За да бъда честен, Аз не опитайте всички усърдно, тъй като съм исках да фигура, тази комбинация, на моята собствена за известно време Усмивка.

За да зададете това като настройка, Създадох даден сайт, наречена "Сценарии за Blogging" и списък по избор, наречена "Потребителски списък с последващо папки".  След това създадох папки, наречени:

  • Година 2005
  • Година 2006
  • Година 2007

Добавих няколко елементи в папката "2006 година".  Ето как изглежда той:

image

Моят приятел не писане C# код а по-скоро използване на Java, така че САПУН плика е това, което тя наистина необходимо.  За да получите, I пише малко jQuery и използва fiddler, за да получите действителната HTTP разговор.

Ето съответните jQuery (Аз копиран кода под ако искате да копирате/поставяте):

image

Те първият ключ е да включат и двете <queryOptions> и <QueryOptions> възел.  Вторият ключ е, че <Папка> възел е URL АДРЕС, към която клиентът има достъп.

Може да има други начини да получите това, но това работи добре за мен, когато се използва jQuery.

Тук е SOAP пакет за горните:

<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:Плик>

Много примери и дискусия около това довело ми да се смята, че всичко трябва да е <QueryOptions> и задайте име на папка.  За мен, Аз трябва да и го поставете между вътре <queryOptions> както и да укажете напълно квалифицирани URL АДРЕС за <Папка> възел.

Тук е настройка на jQuery AJAX:

$(документ).готов(функция() {
       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 и "стойност не може да бъде нулев”

Аз открих днес, че GetList() метод в lists.asmx уеб услугата трябва да бъде наречен много внимателно или тя е склонна да хвърлят един тайнствен "Стойност може да бъде null" изключение (и това се предполага, можете да получите миналото дори по-лошо общо съобщение за грешка, "С изключение на тип" Microsoft.SharePoint.SoapServer.SoapServerException’ е било хвърлено.")  Специално, Открих, че не може да даде всякакъв вид на префикс на метода на GetList.  Следните jQuery фрагмент илюстрира точка:

image

Ако направите това, уеб услугата отговаря с "Стойност не може да бъде null" като това цигулар-при условие че 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

Това "стойност може да бъде null" изглежда доста често с lists.asmx, така че се надяваме това ще помогне на някой, в бъдеще.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin