मासिक अभिलेख: फ़रवरी 2014

कैसे लोगों को एक खोज स्कोप के रूप में निर्दिष्ट करने के लिए / सामग्री स्रोत SharePoint का उपयोग करना 2013 बाकी एपीआई

मैं SharePoint के साथ काम करने के लिए कारण था 2013 खोज एपीआई के माध्यम से पहली बार के लिए आराम. मैं लोगों के लिए खोज करना चाहता था, नहीं दस्तावेजों. चाबी यहाँ है कि सीखने आप इसका GUID के द्वारा सामग्री स्रोत निर्दिष्ट करें (या कम से कम इस मामले में). निम्नलिखित jQuery स्निपेट दिखाता है कैसे:

    loadExpertsAsync: समारोह() {

        jQuery.support.cors = सच है;

        $.ajax({
            यूआरएल: यह.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 वाचाल =" },
            कैश: झूठी,
            सफलता: समारोह (परिणाम) {

मेरे मामले में, मैं एपीआई के खिलाफ 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

Sourceid पैरामीटर क्या मेरे लिए काम किया है.

(मैं समझता हूँ कि sourceid वास्तव में एक तरह की स्थायी बात सपा के साथ हो सकता, but I’ll always check anyway 🙂 ).

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

उदाहरण SharePoint बाकी कॉल्स

यहाँ नमूना बाकी कॉल है कि मेरे लिए काम करते हैं और आपकी रूचि मदद कर सकता का एक सेट है. के रूप में 02/2014, there are two examples 🙂

  1. इसके नाम में रिक्त स्थान के साथ एक स्तंभ का संदर्भ
  2. एक बहु चयन स्तंभ संदर्भ
  3. बाकी के जरिए लोगों को खोजें

 

मैं इस समय गुजरता के रूप में जोड़ें करेंगे.

यहाँ हैं कुछ उपयोगी रूप में अच्छी तरह से मैंने पाया है स्याही:

इसके नाम में रिक्त स्थान के साथ एक स्तंभ का संदर्भ

मैं के साथ एक स्तंभ "ब्लॉग के लेखक" नामक एक कस्टम सूची बनाएँ (ब्लॉग और लेखक के बीच रिक्ति).

उस स्तंभ को संदर्भित करने के लिए $select है:

image

बस अंतरिक्ष "_x0020_" के साथ बदलें. हम internets भर में कई उदाहरणों में _x0020_ देखें और बाकी कोई अलग है.

यदि आप ऐसा नहीं करते, तुम इस तरह एक त्रुटि संदेश प्राप्त करने के लिए उत्तरदायी हो:

अभिव्यक्ति “ब्लॉग लेखक” मान्य नहीं है.

काफी आसान है.

एक बहु चयन लुकअप स्तंभ संदर्भ

सेट अप:

  1. नामांकित श्रेणियाँ एक कस्टम सूची बनाएँ.
  2. कुछ श्रेणियाँ जोड़ें. मैं श्रेणियाँ thusly जोड़ा:image
  3. MockBlog नामक एक और कस्टम सूची बनाएँ और श्रेणियों के रूप में एक बहु चयन सूची स्तंभ जोड़ें (या आप कैसे रोल अगर उस साइट स्तंभ है).

आपकी Mockblog सूची में कुछ आइटम जोड़ें और तुम तैयार हो.

JQuery का उपयोग कर एक Ajax शैली फोन कुछ इस तरह दिखेगा:

serverUrl   = "/_api/वेब/सूचियाँ/GetByTitle('MockBlog')/आइटम" +
             "?$का चयन करें शीर्षक =,श्रेणियाँ/शीर्षक,Blog_x0020_Author/शीर्षक" + 
             "&$विस्तृत करें = Blog_x0020_Author,श्रेणियाँ";

हम "मेरे शीर्षक सभी श्रेणियों के लिए दे SharePoint बता रहे हैं (श्रेणियाँ/शीर्षक). वास्तविक मान के लिए जाओ शीर्षक द्वारा $विस्तृत करेंआईएनजी श्रेणियाँ सूची." (मेरी शोकहारा paraphrasing शायद बहुत ढीला है, लेकिन यह कैसे मैं यह व्याख्या कर रहा हूँ).

अगर तुम यह जावास्क्रिप्ट और सारंगी पर आउटपुट देखने के लिए का उपयोग कर के माध्यम से कर रहे हैं, तुम कुछ इस तरह बदले में मिल:

 

image

(इसके बाद के संस्करण एक JSON ऑब्जेक्ट है)

बाकी के जरिए लोगों को खोजें

मैं इस बारे में blogged अलग से. स्थानीय लोगों को सामग्री स्रोत का GUID जिसका मूल्य है एक sourceid पैरामीटर निर्दिष्ट करने के लिए कुंजी है. (Scopes कहा जा करने के लिए सामग्री स्रोतों का इस्तेमाल किया और यह सब कुछ मेरे लिए एक गुंजाइश कॉल करने के लिए मेरी-ओह-मेरा इतना मुश्किल नहीं है!).

और अधिक पढ़ें इसके बारे में यहाँ: http://www.mstechblogs.com/paul/?p=10385

 

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

त्वरित और आसान: एक SharePoint साइट के आराम का उपयोग कर बनाएँ

कैसे यह करने के लिए उस शो के आसपास संसाधनों का एक बहुत कुछ कर रहे हैं, लेकिन मैं नहीं मिल सकता है एक व्यापक जाने के लिए लिंक, तो यहाँ हम कर रहे हैं.

आप किसी SharePoint साइट में बाकी एपीआई का उपयोग कर बना सकते हैं।  यहाँ है एक पूरी तरह से पके हुए उदाहरण:

<!--
    SiteRequestForm.html: जानकारी एकत्र और उपयोगकर्ता के लिए एक साइट बनाएँ.
-->

<केंद्र>
<तालिका>
    <टी. आर.>
        <td>साइट का नाम:</td>
        <td><इनपुट प्रकार"पाठ =" नाम"SiteName =" आईडी"SiteName =" /></td>
    </टी. आर.>
    <टी. आर.>
        <td colspan= "2">
            <इनपुट प्रकार= "जमा करें" आईडी"CreateSiteButton =" मान= "साइट बनाएँ" />
        </td>
    </टी. आर.>
</तालिका>
</केंद्र>

<स्क्रिप्ट एसआरसी="../Plugins/jquery-1.11.0.min.js"></स्क्रिप्ट>

<स्क्रिप्ट>
var CreateSiteLogicContainer = {

    createSiteData: {
            "पैरामीटर": {
                __metadata: { "प्रकार": 'सपाWebInfoCreationInformation" },
                यूआरएल: "Paultest1",
                शीर्षक: "Paultest1",
                विवरण: "बाकी-बनाया वेब द्वारा पॉल!",
                भाषा: 1033,
                WebTemplate: "अनुसूचित जनजातियों",
                UseUniquePermissions: झूठी
            }
    },

    createSite: समारोह () {

        jQuery.support.cors = सच है;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").वैल();
        
        $.ajax({
            यूआरएल: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            विधि: 'पोस्ट",

            शीर्ष लेख: {
                "स्वीकार करते हैं": आवेदन/json"; odata वाचाल =",
                "सामग्री-प्रकार": आवेदन/json";odata वाचाल =",
                "एक्स-RequestDigest": $("#__REQUESTDIGEST").वैल()
            },

            डेटा: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            सफलता: समारोह () { चेतावनी("सफलता"); },
            त्रुटि: समारोह () { चेतावनी("त्रुटि"); }

        });
    },

    wireUpForm: समारोह () {
        $("#CreateSiteButton").क्लिक करें(समारोह () {
            चेतावनी("के बारे में प्रयास करें और साइट बनाने के लिए।");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</स्क्रिप्ट>

जब सफल, आप इस तरह की प्रतिक्रिया में एक JSON पैकेट प्राप्त:

image

मेरे मुख्य विचारों और इस शामिल से सीखों:

  • इस दृष्टिकोण का उपयोग करता है jQuery.  मेरे मामले में, मेरे jQuery पुस्तकालय में स्थित है "../ plugins. "  आप जो अपने पसंदीदा JQ स्थान को इंगित करने के लिए परिवर्तित करने के लिए चाहता हूँ.
  • आप की प्रतिलिपि बनाएँ और एक पृष्ठ पर सामग्री संपादक वेब पार्ट में उस पूरे टुकड़ा चिपकाएँ कर सकते हैं और यह काम करना चाहिए तो बस ठीक है।  आप API कॉल के अंत बिंदु परिवर्तित करें और सुनिश्चित करें कि आप सही ढंग से JQ को संदर्भित करने के लिए चाहता हूँ.
  • URL अपने एपीआई समाप्तिबिंदु के सापेक्ष है।  मेरे मामले में, यह उप-साइटों के नीचे पैदा कर रही है https://bigapplesharepoint.com
  • तुम एक सामग्री लंबाई प्रदान करने की आवश्यकता नहीं. कुछ ब्लॉग पोस्ट और MSDN दस्तावेज़ का तात्पर्य है कि आप, लेकिन मेरे लिए स्वचालित रूप से हुआ, जो मुझे लगता है $.ajax कॉल द्वारा खुद को संभाला जा रहा है.
  • इस लाइन से बचने के एक "मना" प्रतिसाद करने के लिए आवश्यक है: "एक्स-RequestDigest": $("#__REQUESTDIGEST").वैल().  यह करने के लिए अन्य तरीके हैं, लेकिन यह बहुत अच्छा है।  मैं ब्लॉग है कि यह शॉर्टकट प्रदान करने के लिए लिंक खो दिया है।  एच/टी तुम करने के लिए, रहस्यमय ब्लॉगर!

गुड लक और आशा है कि यह किसी को मदद मिलती है.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

SharePoint त्वरित लॉन्च में रिश्तेदार यूआरएल के साथ कष्टप्रद समस्या पर काबू पाने

मैं दूसरे दिन त्वरित लॉन्च नेविगेशन करने के लिए एक लिंक जोड़ने के लिए चाहता था और SharePoint मुझे बताया:

image

कि शुद्ध पाठ संस्करण है:

सुनिश्चित करें कि URL मान्य है और के साथ या तो मान्य वर्ण शुरू होता है (एक संख्या चिह्न (#) या फ़ॉरवर्ड स्लैश (/)) या कोई मान्य प्रोटोकॉल समर्थित (उदाहरण के लिए, ' http://’, ' https://’, ' फ़ाइल://’, ' एफ़टीपी://’, ' इन्हें मेल करें:’, ' समाचार:’).

"Blech और चेचक!"मैंने कहा.

त्वरित लॉन्च में एक ज्ञात लिंक ढूँढें और उसके व्यवहार को ओवरराइड करने के लिए जावास्क्रिप्ट का उपयोग करने के लिए यह करने के लिए एक workaround है.

इस परीक्षण के लिए, thusly अपने परीक्षण साइट के लिए एक नई लिंक जोड़ने:

image

मैं jQuery का उपयोग. यह हल करने के लिए, कुछ जावास्क्रिप्ट और jQuery कोड इस तरह की एक पंक्ति के साथ और अपने पसंदीदा तकनीक का उपयोग कर पृष्ठ पर जाओ:

 

$(दस्तावेज़).तैयार( समारोह () {

    $("एक:होता है('URL प्रतिस्थापन का परीक्षण')").क्लिक करें(समारोह () { चेतावनी("परिवर्तित क्लिक व्यवहार!"); वापस जाएँ झूठी;});

});

और अपने चाचा बॉब है.

JQuery चयनकर्ता पाता है हर <एक> टैग है कि इसके नाम में "Test URL प्रतिस्थापन" है. आप ढूँढें जो आपके लिंक और इस तरह के आधार पर ट्यून करने के लिए चाहते हो सकता.

.Click(समारोह() ओवरराइड करता है जब उपयोगकर्ता क्लिक किया जो भी SharePoint किया होता. सुनिश्चित करें कि आप "वापसी झूठी" या फिर इसे अपने सामान करना और फिर href बात करने की कोशिश भी करेंगे, जो लगभग निश्चित रूप से अपने लक्ष्य नहीं है.

यह किया गया था और एक SharePoint ऑनलाइन वातावरण में परीक्षण होना चाहिए लेकिन में अच्छी तरह से काम 2010 और इससे पहले भी.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

त्वरित और आसान: SharePoint बाकी केवल रिटर्न कॉल 100 रिकॉर्ड्स

मैं एक सार्वजनिक सामना करना पड़ रहा वेब साइट पर मेरे SharePoint अभ्यास में यहाँ के लिए काम कर रहा है न्यू यार्क और यह जावास्क्रिप्ट और बाकी कॉल्स का एक बहुत का उपयोग करता है सामग्री दिखाएँ.

Mainline विकास के दौरान, मैं बस के साथ एक छोटे डाटासेट बनाएँ 10 या तो में कोई कस्टम सूची और बाकी कॉल मेरे सभी पंक्तियाँ वहाँ से खींच लिया।  एक बार मैं कुछ सौ पंक्तियों के डेटा के लिए अनुमानित वृद्धि दर का परीक्षण करने के लिए है के लिए सूची अप टकरा गया, मैंने पाया कि मैं ठीक हो रही थी 100 पंक्तियाँ मेरे बाकी कॉल पर वापस लौटे.

इस पते के लिए एक बहुत ही साधारण बात है।  मेरे मामले में (और मेरा मानना है कि ज्यादातर मामलों में), डिफ़ॉल्ट SharePoint करने के लिए कहता है बाकी (और संभवतः एक उद्योग मानक के रूप में?) वापस जाएँ 100 पंक्तियाँ।  डिफ़ॉल्ट रूप से अधिक पर लौटने के लिए, अपने फोन पर $top पैरामीटर का उपयोग करें, के रूप में:

/Insights Dev/_api/web/lists/GetByTitle पाने('MockBlog')/आइटम?$का चयन करें = ID,शीर्षक,श्रेणियाँ/शीर्षक,Blog_x0020_Author/शीर्षक,DatePublished,BlogSummary&$विस्तृत करें = Blog_x0020_Author,श्रेणियाँ&$फ़िल्टर =&$शीर्ष = 9999

मैं उठाया 9999 इस मामले में जब से मैं growth-wise पता है कि, वहाँ अभ्यस्त हो अधिक से अधिक 200 या तो पंक्तियाँ एक वर्ष में इस सूची में जोड़ा।  यदि यह छलकती हो जाता है, हम सड़क के नीचे कुछ पेजिंग को लागू कर सकते हैं.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

त्वरित और आसान: "अमान्य URL पैरामीटर का समाधान” lists.asmx में UpdateListItems के साथ समस्या

के द्वारा lists.asmx UpdateListItems के साथ कार्य करते समय, यह त्रुटि उत्पन्न करने के लिए आसान है:

अमान्य URL पैरामीटर.

प्रदान की गई URL में कोई अमान्य आदेश या मान है. कृपया URL को फिर से जाँचें.

आप इस त्रुटि प्राप्त कर सकते हैं जब आप ID में शामिल करने के लिए भूल जाओ फ़ील्ड्स अद्यतन करने के लिए की सूची।  यह, एसपी इन वेब सेवाओं का एक बहुत की तरह, सा counterintuitive के बाद से आप ID की ID विशेषता में शामिल करने की ज़रूरत है <विधि> तत्व।  और तुम नहीं कर रहे हैं ID को अद्यतन और शायद कभी नहीं करने के लिए चाहते पहली जगह में.

इस SOAP एनवलप काम करता है:

<soapenv:लिफ़ाफ़ा xmlns:soapenv =' http://schemas.xmlsoap.org/soap/envelope/'>
  <soapenv:शरीर>                      
    <UpdateListItems xmlns =' http://schemas.microsoft.com/sharepoint/soap/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <अपडेट>                     
         <बैच OnError ="जारी रखें">
          <विधि ID ="1" अध्यक्ष तथा प्रबंध निदेशक ="अद्यतन">
            <फ़ील्ड का नाम ="CooperativeLock">अवरोधित!</फ़ील्ड>
            <फ़ील्ड का नाम ="आईडी">1</फ़ील्ड>
          </विधि>
        </बैच>                     
        </अपडेट>                
      </UpdateListItems>             
  </soapenv:शरीर>         
</soapenv:लिफ़ाफ़ा>

तब आप कष्टप्रद "अमान्य URL पैरामीटर" संदेश प्राप्त होगा यदि आप ID फ़ील्ड संदर्भ बाहर पट्टी.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin