فئة المحفوظات: خدمات ويب SharePoint

كيفية تحديد الناس كنطاق البحث / مصدر المحتوى باستخدام SharePoint 2013 بقية API

كان السبب العمل مع SharePoint 2013 API البحث عبر بقية للمرة الأولى. كنت أرغب في البحث عن أشخاص, لا وثائق. مفتاح التعلم هنا أنه يمكنك تحديد مصادر المحتوى عبر guid الخاص به (أو على الأقل في هذه الحالة). يظهر أجزاء التعليمات البرمجية المتكررة التالية مسج كيف:

    لواديكسبيرتساسينك: الدالة() {

        jQuery.support.cors = صحيح;

        $.أجاكس({
            عنوان url: وهذا.كريتيفولابيورل() +
                "?كويريتيكست = 'بوابات'&سورسيد = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&سيليكتبروبيرتيس = ' لينكيدينبروفيليورل,جوجليسيركليسبروفيليورل,بالارجيبروفيليبيكتوريورلس,باجريدبيكتوريس,ووركيميل,المهارات,AboutMe,المصالح,جوبتيتلي,باستبروجيكتس,بيكتوريورل,بريفيريدنامي,تويتيرهاندلي,لينكيدينبروفيليورل,بريفيريدنامي,جوجليسيركليسبروفيليورل '" +
                "&rowlimit = 99",
            الأسلوب: "الحصول على",
            رؤوس: { "قبول": "تطبيق/json; odata = مطول" },
            ذاكرة التخزين المؤقت: كاذبة,
            النجاح: الدالة (النتيجة) {

في حالتي, أنا تشغيل API ضد SharePoint على الإنترنت. للحصول على المعرف الفريد العمومي, لقد اتبعت هذه الخطوات:

  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

المعلمة سورسيد ما عملت بالنسبة لي.

(وأفهم أن سورسيد قد يكون فعلا نوعا من شيء دائم مع SP, but I’ll always check anyway 🙂 ).

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

Lists.asmx, جيتليستيتيمس والمجلدات

كنت تفعل بعض البحوث لشخص اليوم حول خدمة ويب list.asmx وقدمت كجزء من SharePoint 2010 (وقبل ذلك).  وقالت أنها كانت قادرة على الحصول على قائمة العناصر الموجودة في المجلد الجذر (بما في ذلك أسماء المجلدات الفرعية), ولكن لم أستطع الحصول على العناصر الموجودة في المجلدات الفرعية.  فعلت بعض حولهم على الإنترنت وأنها ليست مسألة مشتركة مما يثير الدهشة.  بعد, لم أستطع الحصول على رد جيد على سؤال بسيط, "لو أعرف المجلد, كيف يمكنني الحصول على العناصر في مجلد?”  أن نكون صادقين, لم يحاول كل ما جد منذ كنت أريد أن الرقم هذا أحد الخروج بمفردي لفترة من الوقت ابتسامة.

لإعداد هذا, قمت بإنشاء موقع المسمى "سيناريوهات المدونات" وقائمة مخصصة المسماة "قائمة مخصصة مع المجلدات الفرعية".  ثم أنشئت المجلدات المسماة:

  • السنة 2005
  • السنة 2006
  • السنة 2007

أضفت بعض العناصر إلى المجلد "العام 2006".  وهذا ما يبدو:

image

صديقي ليس كتابة التعليمات البرمجية C# ولكن بدلاً من ذلك باستخدام Java, هكذا كان مغلف SOAP ما أنها في حاجة حقا.  للحصول على ذلك, كتب قليلاً من jQuery، وثم استخدم fiddler للحصول على محادثة HTTP الفعلية.

هنا هو jQuery ذات الصلة (نسخ التعليمة البرمجية إلى الأسفل أدناه إذا كنت تريد نسخ/لصق):

image

أنها المفتاح الأول أن تشمل كلا <كويريوبشنز> و <كويريوبشنز> العقدة.  المفتاح الثاني أن <المجلد> العقدة هو عنوان URL الذي يملك العميل حق الوصول.

قد تكون هناك طرق أخرى للحصول على هذا, ولكن هذا عمل جيد بالنسبة لي عند استخدام jQuery.

هنا هو مغلف SOAP المذكورة أعلاه:

<سوابينف:Xmlns المغلف:سوابينف =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <سوابينف:الهيئة>
    <Xmlns جيتليستيتيمس =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <listName>قائمة مخصصة مع المجلدات الفرعية</listName>
      <فيوفيلدس>  
        <فيوفيلدس>
          <اسم فيلدريف = ' العنوان’ />
          <اسم فيلدريف = ' انكوديدابسورل’ />
        </فيوفيلدس>
      </فيوفيلدس>
      <كويريوبشنز>
        <كويريوبشنز>
          <المجلد>
http://demoserver1/المدونات قائمة السيناريوهات/قوائم/مخصص مع الفرعي مجلدات/عام 2006</المجلد>
        </كويريوبشنز>
      </كويريوبشنز>
   
</جيتليستيتيمس>
  </سوابينف:الهيئة>
</سوابينف:مغلف>

كثير من الأمثلة والمناقشة حول هذا قادني إلى الاعتقاد بأن كل ما أحتاج <كويريوبشنز> وحدد اسم مجلد.  بالنسبة لي, أنا بحاجة إلى كل الانتهاء من ذلك داخل <كويريوبشنز> فضلا عن تحديد عنوان URL مؤهل بشكل كامل <المجلد> عقده.

وإليك الإعداد أياكس jQuery:

$(الوثيقة).استعداد(الدالة() {
       فأر سوابينف =
           "<سوابينف:Xmlns المغلف:سوابينف =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <سوابينف:الهيئة> \
                    <Xmlns جيتليستيتيمس =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <listName>قائمة مخصصة مع المجلدات الفرعية</listName> \
                       <فيوفيلدس> \
                           <فيوفيلدس> \
                              <اسم فيلدريف = ' العنوان’ /> \
                              <اسم فيلدريف = ' انكوديدابسورل’ /> \
                          </فيوفيلدس> \
                       </فيوفيلدس> \
                       <كويريوبشنز> \
                         <كويريوبشنز> \
                           <المجلد>http://demoserver1/Blogging قائمة السيناريوهات/قوائم/مخصص مع الفرعي مجلدات/عام 2006</المجلد> \
                         </كويريوبشنز> \
                       </كويريوبشنز> \
                   </جيتليستيتيمس> \
               </سوابينف:الهيئة> \
           </سوابينف:مغلف>";

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

Lists.asmx, جيتليست و "لا يمكن أن تكون القيمة فارغة”

اكتشفت اليوم أن جيتليست() الأسلوب في lists.asmx قد خدمة ويب ليتم استدعاؤها بعناية شديدة أو أنها عرضه لرمي غامض "لا يمكن أن تكون القيمة null" الاستثناء (وهذا هو افتراض يمكن أن تحصل في الماضي رسالة خطأ عامة أكثر سوءا, "استثناء من نوع' Microsoft.SharePoint.SoapServer.SoapServerException’ وقد ألقيت. ")  على وجه التحديد, لقد وجدت أن كنت لا توفر أي نوع من بادئة على الأسلوب جيتليست.  مسج المقتطف التالي يوضح هذه النقطة:

image

إذا كنت تفعل ذلك, تستجيب خدمة ويب مع "لا يمكن أن تكون القيمة null" وفقا لهذا fiddler-قدمت نسخة 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">

  <الصابون:الهيئة>
    <الصابون:خطأ>
      <فاولتكودي>الصابون:خادم</فاولتكودي>
      <فولتسترينج>
        استثناء من نوع ' Microsoft.SharePoint.SoapServer.SoapServerException’ وألقيت.
      </فولتسترينج>
      <التفاصيل>
        <ارورسترينج xmlns ="
http://schemas.microsoft.com/sharepoint/soap/">
لا يمكن أن تكون القيمة فارغة.
        </ارورسترينج>
      </التفاصيل>
    </الصابون:خطأ>
  </الصابون:الهيئة>
</الصابون:مغلف>

طبعًا, ربما لن تضيف هذه البادئة "s0" على الجهاز الخاص بك, ولكن بعض الأدوات المعرضة للقيام بذلك (مثل كسوف الشمس).

هذا الخلط بين أكثر / محبطة لأن أساليب أخرى تحمل البادئات.  وعلى سبيل المثال, في جيتليستكولكشن الأسلوب لا تمانع إذا تم ذلك مسبوقاً, حتى مع بادئات هراء مثل "xyzzy":

image

وهذا "لا يمكن أن تكون القيمة null" يبدو شائع إلى حد كبير مع lists.asmx لذا نأمل أن هذا سوف يساعد شخص بها في المستقبل.

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin