Μηνιαία Αρχεία: Φεβρουαρίου 2014

Πώς να καθορίσετε ένα εύρος αναζήτησης άνθρωποι / Προέλευση περιεχομένου χρησιμοποιώντας SharePoint 2013 ΥΠΌΛΟΙΠΟ API

Είχα λόγο να εργαστεί με το SharePoint 2013 API αναζήτησης μέσω υπόλοιπο για πρώτη φορά. Θα ήθελα να ψάξει για τους ανθρώπους, δεν έγγραφα. Το κλειδώστε τη μαθαίνοντας εδώ είναι ότι μπορείτε να καθορίσετε προελεύσεις περιεχομένου μέσω του GUID (ή τουλάχιστον σε αυτή την περίπτωση). Το ακόλουθο απόσπασμα jQuery πώς:

    loadExpertsAsync: συνάρτηση() {

        jQuery.support.cors = TRUE;

        $.Ajax({
            διεύθυνση URL: αυτό.CreateFullApiUrl() +
                "?querytext = «πύλες»&"αναγνωριστικό προέλευσης" = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Δεξιότητες,AboutMe,Συμφέροντα,Τίτλος εργασίας,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl»" +
                "&ROWLIMIT = 99",
            μέθοδος: "ΠΆΡΕΤΕ",
            κεφαλίδες: { "Δεχθεί": "εφαρμογή/json; OData = λεπτομερή" },
            cache: ψευδές,
            επιτυχία: συνάρτηση (αποτέλεσμα) {

Στην περίπτωσή μου, Τρέχω το API εναντίον του SharePoint σε απευθείας σύνδεση. Να πάρει το GUID, Ακολούθησα τα βήματα:

  1. Να επισκεφτείτε το κέντρο admin του 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

Η παράμετρος αναγνωριστικού προέλευσης είναι τι λειτούργησε για μένα.

(Καταλαβαίνω ότι το "αναγνωριστικό προέλευσης" στην πραγματικότητα μπορεί να είναι ένα είδος μόνιμης πράγμα με SP, but I’ll always check anyway 🙂 ).

</Τέλος>

undefinedΕγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Παράδειγμα SharePoint υπόλοιπο κλήσεις

Εδώ είναι ένα σύνολο δείγμα υπόλοιπο κλήσεις που λειτουργεί για μένα και μπορεί να σας βοηθήσει καθώς και. Ως της 02/2014, there are two examples 🙂

  1. Αναφοράς μια στήλη με τα διαστήματα στο όνομά της
  2. Αναφορά μιας πολλαπλής επιλογής στήλης
  3. Εκτελέστε μια αναζήτηση άνθρωποι μέσω υπόλοιπο

 

Εγώ θα προσθέσω σε αυτό όσο περνάει ο καιρός.

Εδώ είναι μερικές χρήσιμες μελάνια που βρήκα καθώς και:

Αναφοράς μια στήλη με τα διαστήματα στο όνομά της

Μπορώ να δημιουργήσω μια προσαρμοσμένη λίστα με μια στήλη που ονομάζεται "Συγγραφέας Blog" (διάστημα μεταξύ των Blog και συγγραφέας).

Το $select να αναφέρονται σε αυτήν τη στήλη είναι:

image

Απλά αντικαταστήστε το διάστημα με "_x0020_". Βλέπουμε το _x0020_ σε πολλά παραδείγματα σε όλο το Ίντερνετ και το υπόλοιπο είναι δεν διαφέρει.

Αν δεν το κάνετε αυτό, είστε ενδέχεται να λάβετε ένα μήνυμα σφάλματος όπως αυτό:

Η έκφραση “Συγγραφέας του blog” δεν είναι έγκυρη.

Αρκετά εύκολο.

Αναφοράς μια στήλη πολλαπλής επιλογής αναζήτησης

Έχει συσταθεί:

  1. Δημιουργήσετε μια προσαρμοσμένη λίστα όνομα "κατηγορίες".
  2. Προσθέστε μερικές κατηγορίες. Πρόσθεσα κατηγορίες thusly:image
  3. Δημιουργήσετε ένα άλλο προσαρμοσμένη λίστα που ονομάζεται MockBlog και να προσθέσετε κατηγορίες ως μια στήλη λίστας πολλαπλών επιλογών (ή στήλη τοποθεσίας, αν αυτό είναι το πώς ζαριά).

Προσθέσετε ορισμένα στοιχεία στη λίστα Mockblog και είστε έτοιμοι.

Μια κλήση Ajax στυλ που χρησιμοποιούν jQuery θα φανεί κάτι παρεμφερή:

serverUrl  = "/_api/web/κατάλογοι/GetByTitle(«MockBlog»)/στοιχεία" +
             "?$Επιλέξτε = τίτλος,Κατηγορίες/τίτλος,Blog_x0020_Author/τίτλος" + 
             "&$επέκταση = Blog_x0020_Author,Κατηγορίες";

Λέμε SharePoint "Δώσε μου τίτλο για όλες τις κατηγορίες (Κατηγορίες/τίτλος). Πάρτε τις πραγματικές τιμές για Τίτλος από $επεκτείνετεσης λίστα κατηγορίες." (Ξεκούραστη παραφράσει μου είναι πιθανώς αρκετά χαλαρά, αλλά αυτό πώς ερμηνεία).

Αν το κάνετε αυτό μέσω JavaScript και χρησιμοποιώντας Fiddler να εξετάσουμε την έξοδο, Μπορείτε να πάρετε κάτι σαν αυτό σε αντάλλαγμα:

 

image

(Τα παραπάνω είναι ένα αντικείμενο JSON)

Εκτελέστε μια αναζήτηση άνθρωποι μέσω υπόλοιπο

Εγώ blogged σχετικά με αυτό χωριστά. Το κλειδί είναι να καθορίσετε μια παράμετρο αναγνωριστικού προέλευσης των οποίων η αξία είναι το GUID της προέλευσης περιεχομένου ντόπιους. (Προελεύσεις περιεχομένου που χρησιμοποιείται για να ονομάζεται εμβελειών και είναι μου-ω-μου δεν είναι τόσο δύσκολο να καλέσετε τα πάντα ένα πεδίο για μένα!).

Διαβάστε περισσότερα για αυτό εδώ: http://www.mstechblogs.com/paul/?p=10385

 

</Τέλος>

undefinedΕγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Γρήγορη και εύκολη: Δημιουργήστε μια τοποθεσία του SharePoint χρησιμοποιώντας το υπόλοιπο

Υπάρχουν πολλοί πόροι γύρω από εκείνη την επίδειξη πώς να το κάνουμε αυτό, αλλά δεν μπορούσα να βρω μια ολοκληρωμένη πάει σε σύνδεση, έτσι είμαστε εδώ.

Μπορείτε να δημιουργήσετε μια τοποθεσία του SharePoint χρησιμοποιώντας το API υπόλοιπο.  Εδώ είναι ένα παράδειγμα της πλήρως ψημένο:

<!--
    SiteRequestForm.html: Συλλέγουν πληροφορίες και να δημιουργήσετε μια τοποθεσία για το χρήστη.
-->

<κέντρο>
<Πίνακας>
    <TR>
        <TD>Όνομα τοποθεσίας:</TD>
        <TD><εισόδου Τύπος= "κείμενο" Όνομα= "Όνομα_τοποθεσίας" αναγνωριστικό= "Όνομα_τοποθεσίας" /></TD>
    </TR>
    <TR>
        <TD ColSpan= "2">
            <εισόδου Τύπος= "αποστολή" αναγνωριστικό= "CreateSiteButton" αξία= "Δημιουργία της τοποθεσίας" />
        </TD>
    </TR>
</Πίνακας>
</κέντρο>

<σενάριο src="../Plugins/jQuery-1.11.0.min.js"></σενάριο>

<σενάριο>
var CreateSiteLogicContainer = {

    createSiteData: {
            "παράμετροι": {
                __metadata: { "τύπος": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Τίτλος: "Paultest1",
                Περιγραφή: «δημιουργήθηκε από το υπόλοιπο web από Paul!",
                Γλώσσα: 1033,
                Ήταν: "sts",
                UseUniquePermissions: ψευδές
            }
    },

    createSite: συνάρτηση () {

        jQuery.support.cors = TRUE;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.Ajax({
            διεύθυνση URL: «https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            μέθοδος: "POST",

            κεφαλίδες: {
                "αποδοχή": "εφαρμογή/json; OData = λεπτομερή",
                "content-type": "εφαρμογή/json;OData = λεπτομερή",
                «X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            δεδομένα: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            επιτυχία: συνάρτηση () { συναγερμού("η επιτυχία"); },
            σφάλμα: συνάρτηση () { συναγερμού("σφάλμα"); }

        });
    },

    wireUpForm: συνάρτηση () {
        $("#CreateSiteButton").Κάντε κλικ στο κουμπί(συνάρτηση () {
            συναγερμού(«Για να προσπαθήσουμε και να δημιουργήσετε την τοποθεσία.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</σενάριο>

Όταν ολοκληρωθεί με επιτυχία, Μπορείτε να πάρετε ένα πακέτο JSON σε απάντηση όπως αυτό:

image

Μου βασικές σκέψεις και εκμαθήσεις από αυτόν περιλαμβάνουν:

  • Αυτή η προσέγγιση χρησιμοποιεί jQuery.  Στην περίπτωσή μου, μου το jQuery βιβλιοθήκη βρίσκεται στην ".../ plugins. "  Θα θελήσετε να αλλάξετε ότι σας αγαπημένο JQ θέση.
  • Μπορείτε να αντιγράψετε και να επικολλήσετε αυτό ολόκληρο απόσπασμα σε ένα τμήμα Web προγράμματος επεξεργασίας περιεχομένου σε μια σελίδα και θα πρέπει να λειτουργεί μια χαρά.  Θα θελήσετε να αλλάξετε το σημείο τερματισμού της την κλήση API και βεβαιωθείτε ότι αναφέρετε JQ σωστά.
  • Η διεύθυνση URL είναι σε σχέση με το τελικό σημείο του API σας.  Στην περίπτωσή μου, είναι η δημιουργία κάτω από τις δευτερεύουσες τοποθεσίες https://bigapplesharepoint.com
  • Δεν χρειάζεται να παρέχει μια περιεχομένου-μήκους. Μερικές θέσεις blog και MSDN έγγραφο σημαίνει ότι μπορείτε να κάνετε, αλλά συνέβη για μένα αυτόματα, που μπορώ να υποθέσω is being χερούλι από τα $.ajax κλήση εαυτό.
  • Αυτή η γραμμή είναι απαιτείται προκειμένου να αποφευχθεί ένα "απαγορευμένο" απάντηση: «X-RequestDigest": $("#__REQUESTDIGEST").Val().  Υπάρχουν άλλοι τρόποι να το κάνουμε, αλλά αυτό είναι αρκετά συμπαθητικό.  Έχω χάσει το link στο blog που παρέχονται αυτήν τη συντόμευση.  H/T σε σας, μυστηριώδη blogger!

Καλή τύχη και ελπίδα αυτό βοηθά κάποιος έξω.

</Τέλος>

undefinedΕγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Ξεπεραστούν ενοχλητικό πρόβλημα με συγγενής Urls στο SharePoint γρήγορη εκκίνηση

Θα ήθελα να προσθέσω μια σύνδεση στη ναυσιπλοΐα γρήγορης εκκίνησης τις προάλλες και μου είπε SharePoint:

image

Καθαρό κείμενο έκδοση του που είναι:

Εξασφαλίσει ότι η διεύθυνση URL είναι έγκυρη και αρχίζει με είτε έγκυρος χαρακτήρας (ένα αριθμητικό σύμβολο (#) ή κάθετο (/)) ή μια έγκυρη Υποστηριγμένο πρωτόκολλο (για παράδειγμα, «http://’, «https://’, «αρχείο://’, «ftp://’, «mailto:’, «Ειδήσεις:’).

"Blech και ευλογιά!"Είπα.

Μια λύση για αυτό είναι η χρήση JavaScript για να βρείτε μια γνωστή η αεροπορική σύνδεση στην γρήγορη έναρξη και να παρακάμψετε τη συμπεριφορά.

Για να ελέγξετε αυτό, προσθέσετε ένα νέο σύνδεσμο στο δικτυακό σας τόπο δοκιμής, thusly:

image

Χρησιμοποίησα jQuery. Να το λύσουμε, πάρετε κάποια JavaScript και jQuery στη σελίδα χρησιμοποιώντας την τεχνική σας αγαπημένο και με μια γραμμή κώδικα όπως αυτό:

 

$(έγγραφο).έτοιμο( συνάρτηση () {

    $("ένα:περιέχει(«Δοκιμή URL αντικατάσταση»)").Κάντε κλικ στο κουμπί(συνάρτηση () { συναγερμού("αλλάξει κλικ συμπεριφορά!"); επιστροφή ψευδές;});

});

Και σας θείος του Bob.

Ο επιλογέας jQuery βρίσκει κάθε <ένα> ετικέτα που έχει «Αντικατάστασης δοκιμή URL» στο όνομά του. Μπορεί να θέλετε να βρείτε-μελωδία που ανάλογα με το σας σύνδεσμο και τέτοια.

Το .click(συνάρτηση() παρακάμπτει ό, τι του SharePoint θα είχε κάνει όταν ο χρήστης κάνει κλικ. Βεβαιωθείτε ότι σας "επιστρέψει false" ή αλλιώς θα κάνουμε πράγματα σας και προσπαθήστε να το href πράγμα πάρα πολύ, που είναι σχεδόν σίγουρα δεν είναι στόχος σας.

Αυτό έγινε και δοκιμής σε περιβάλλον SharePoint online, αλλά θα πρέπει να λειτουργούν καλά σε 2010 και νωρίτερα πάρα πολύ.

</Τέλος>

undefinedΕγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Γρήγορη και απλή: SharePoint υπόλοιπο κλήση μόνο επιστρέφει 100 Εγγραφές

Έχω εργαστεί σε μια δημόσια τοποθεσία του web που αντιμετωπίζουν για SharePoint πρακτική μου εδώ στο Νέα Υόρκη και χρησιμοποιεί πολλές κλήσεις JavaScript και το υπόλοιπο να εμφανίζεται περιεχόμενο.

Κατά τη διάρκεια της κύριας γραμμής ανάπτυξης, Μπορώ να δημιουργήσω ένα μικρό σύνολο δεδομένων με απλά 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Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Γρήγορη και απλή: Επίλυση "μη έγκυρη διεύθυνση URL παράμετρος” πρόβλημα με UpdateListItems στο lists.asmx

Όταν εργάζεστε με UpdateListItems μέσω lists.asmx, είναι εύκολο να δημιουργήσει το σφάλμα:

Παράμετρος μη έγκυρη διεύθυνση URL.

Το παρεχόμενο URL περιέχει μια μη έγκυρη εντολή ή τιμή. Παρακαλώ ελέγξτε το URL και πάλι.

Μπορείτε να πάρετε αυτό το σφάλμα όταν ξεχάσετε να συμπεριλάβετε το αναγνωριστικό στον τα τη λίστα των πεδίων για να ενημερώσετε.  Αυτό, σαν πολλή SP αυτών των υπηρεσιών web, είναι λίγο αντιφατικό, δεδομένου ότι θα πρέπει να συμπεριλάβετε το αναγνωριστικό στο χαρακτηριστικό ID της το <Μέθοδος> στοιχείο.  Και δεν είστε ενημέρωση ID και πιθανώς ποτέ δεν θέλουν να στην πρώτη θέση.

Το SOAP envelope λειτουργεί:

<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" CMD ="Ενημέρωση">
            <Πεδίο Όνομα ="CooperativeLock">κλειδωμένη!</Πεδίο>
            <Πεδίο Όνομα ="ΑΝΑΓΝΩΡΙΣΤΙΚΌ">1</Πεδίο>
          </Μέθοδος>
        </Μαζική>                     
        </ενημερώσεις>                
      </UpdateListItems>             
  </soapenv:Οργανισμός>         
</soapenv:Φάκελος>

Εάν μπορείτε να στερήσετε από την αναφορά του πεδίου ID τότε θα πάρετε το ενοχλητικό μήνυμα "Παράμετρος μη έγκυρο URL".

</Τέλος>

undefinedΕγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin