Λύση: SPQuery δεν πραγματοποιεί αναζήτηση σε φακέλους

Αυτή η προηγούμενη εβδομάδα, είχα την εφαρμογή ένα «εξελίσσεται" λύση για έναν πελάτη που χρησιμοποιεί BDC και SPQuery και έτρεξε σε κάποια δυσκολία χρησιμοποιώντας SPQuery ενάντια σε μια βιβλιοθήκη εγγράφων που περιέχουν τους φακέλους. Κάτω γραμμή: αντιστοιχίσετε "αναδρομικό" για το χαρακτηριστικό γνώμη του ερωτήματος.

Το σενάριο μου:

  • Τη Δευτέρα, Μπορώ να φορτώσω ένα έγγραφο και να παρέχουν κάποια μετα-δεδομένα.
  • Την επόμενη εβδομάδα, Μπορώ να φορτώσω ένα νέο έγγραφο. Μεγάλο μέρος αυτού του νέου εγγράφου μετα-δεδομένα είναι με βάση το έγγραφο που ανέβασα τη Δευτέρα (που ονομάζουμε "πρωτεύον έγγραφο").
  • Έχουμε δημιουργήσει μια πρόσοψη υπηρεσία web που παρέχει μια διεπαφή BDC φιλικές στον κατάλογο, έτσι ώστε οι χρήστες να εντοπίσετε εύκολα το έγγραφο τη Δευτέρα μέσω μια αναζήτηση του τίτλου.
  • Μια στήλη δεδομένων BDC παρέχει ένα φιλικό περιβάλλον εργασίας. (Αυτό είναι μέρος της προσπάθειά μου σε χρήση BDC για ένα πιο φιλικό στήλη αναζήτησης).

Η τελική BDC πρόσοψη υπηρεσία χρησιμοποιεί ένα ερώτημα όπως αυτό να κάνετε την αναζήτηση:

 // Χρησιμοποιείται το εργαλείο U2U να βοηθήσει στην δημιουργία αυτή CAML ερώτημα.
      oQuery.Query =
        "<Όπου>";

      Αν (titleFilter.Length > 0)
        oQuery.Query  =
          "  <Και>";

      oQuery.Query  =
        "    <Και>" +
        "      <GEQ>" +
        "        <FieldRef όνομα =  "DocumentId" />" +
        "        <Δημιουργία τύπου τιμής =  "Text">" + minId + "</Αξία>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <FieldRef όνομα =  "DocumentId" />" +
        "        <Δημιουργία τύπου τιμής =  "Text">" + maxId + "</Αξία>" +
        "      </LEQ>" +
        "    </Και>";

      Αν (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Περιέχει>" +
          "      <FieldRef όνομα =  "Title" />" +
          "      <Δημιουργία τύπου τιμής =  "Text">" + titleFilter + "</Αξία>" +
          "    </Περιέχει>" +
          "  </Και>";
      oQuery.Query  =
        "</Όπου>";

Κατά το αρχικό στάδιο της ανάπτυξης, αυτό έλυσα σπουδαίος. Ωστόσο, Εισαγάγαμε φακέλους στον κατάλογο να λύσει κάποια προβλήματα και ξαφνικά, μου επιλογέα BDC δεν θα επιστρέψει καθόλου αποτελέσματα. Αυτό εντοπίζονται στο γεγονός ότι το SPQuery ποτέ δεν θα επιστρέψει καθόλου αποτελέσματα. Χρησιμοποιήσαμε φακέλους κατά κύριο λόγο για να επιτρέπει πολλά αρχεία με το ίδιο όνομα για να φορτωθούν αλλά με διαφορετικά μετα-δεδομένα. Όταν το αρχείο έχει φορτωθεί, δημιουργούμε ένα φάκελο με βάση το ID του στοιχείου λίστας και έπειτα μετακινήστε το αρχείο εκεί (Έγραψα για αυτό Εδώ; είχαμε ανάμεικτα αποτελέσματα με την προσέγγιση αυτή, αλλά σε όλη τη, αυτό λειτουργεί καλά). Ο χρήστης δεν ενδιαφέρονται για τους φακέλους και στην πραγματικότητα, πραγματικά δεν καταλαβαίνω ότι υπάρχουν οποιουσδήποτε φακέλλους. Ότι θα έχουν ρυθμιστεί όλες τις απόψεις για την βιβλιοθήκη να δείξει στοιχεία αδιαφορώντας για φακέλους.

Χτύπησα δύο φορές ως την τεχνική εφαρμογή εξελίχθηκε και να λυθεί αυτό διαφορετικά κάθε φορά που αυτό το πρόβλημα. Πρώτη φορά, Εγώ δεν ήμουν χρησιμοποιώντας τον τελεστή περιέχει στο ερώτημα. Χωρίς ένα χειριστή περιέχει, Ήμουν σε θέση να λύσει το πρόβλημα, καθορίζοντας την άποψη σχετικά με το SPQuery ανάδοχος. Αντί να χρησιμοποιήσετε την προεπιλεγμένη κατασκευή:

SPList oList = web.Λίστες["Έγγραφα"];

SPQuery oQuery = νέα SPQuery();

Αντίθετα, χρησιμοποίησα ένα κατασκευαστή που ορίσει μια προβολή:

SPList oList = web.Λίστες["Έγγραφα"];

SPQuery oQuery = νέα SPQuery(oList.Views["Όλα τα έγγραφα"]);

Που έλυσε το πρόβλημα και άρχισα να μου αποτελέσματα.

Στη συνέχεια, προστίθενται στο χειριστή περιέχει στο μίγμα και έσπασε πάλι. Αποδεικνύεται ότι ο φορέας εκμετάλλευσης περιέχει, μέχρι στιγμής, όπως μπορώ να πω, δεν λειτουργεί με την άποψη τον ίδιο τρόπο όπως το ένα απλούστερο GEQ / LEQ φορείς. Έκανα κάποια έρευνα και έμαθε ότι η ViewAttributes του ερωτήματος πρέπει να ρυθμιστεί σε «Αναδρομικό», όπως και στην:

oQuery.ViewAttributes = «Πεδίο εφαρμογής = "Recursive"";

Που έλυσε το πρόβλημα για περιέχει. Στην πραγματικότητα, αυτό επίσης λυθεί το πρόβλημά μου Αρχική αναζήτηση και αν που είχα ορίζεται η αναδρομική αποδίδουν την πρώτη φορά, Δεν θα έχουν τρέξει το θέμα και πάλι.

Το γεγονός ότι ένα βάσει προβολής SPQuery λειτουργεί για ορισμένους οικονομικούς παράγοντες (GEQ/LEQ) και όχι τους άλλους (ΠΕΡΙΈΧΕΙ), σε συνδυασμό με το γεγονός ότι KPI δεν φαίνεται να λειτουργεί καθόλου με το φάκελο που περιέχει το έγγραφο οδηγεί βιβλιοθήκες να πιστέψω ότι η SPQuery έχει κάποια θέματα ορθογωνιότητα.

Ιδιαίτερες ευχαριστίες:

  • Οι καλοί λαοί στο U2U και η τους εργαλείο ερωτημάτων.
  • Michael Hoffer είναι μεγάλη "Εκμάθηση μέσω της πράξης" καταχώρηση ιστολογίου, σχόλια και απαντήσεις.

</Τέλος>

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

3 thoughts on «Λύση: SPQuery δεν πραγματοποιεί αναζήτηση σε φακέλους

  1. Χωρίς όνομα

    http://www.batteryfast.co.uk/asus/w3v.htm Asus w3v μπαταρία,
    http://www.batteryfast.co.uk/asus/w3000a.htm Asus w3000a μπαταρία,
    http://www.batteryfast.co.uk/asus/w3000.htm Asus τα w3000 μπαταρία,
    http://www.batteryfast.co.uk/asus/w3000v.htm Asus w3000v μπαταρία,
    http://www.batteryfast.co.uk/asus/a31-s5.htm ASUS μπαταρίας Α31-s5,
    http://www.batteryfast.co.uk/asus/a32-s5.htm Asus a32-s5 μπαταρία,
    http://www.batteryfast.co.uk/asus/s52n.htm Asus s52n μπαταρία,
    http://www.batteryfast.co.uk/asus/s5000.htm Asus s5000 μπαταρία,
    http://www.batteryfast.co.uk/asus/s5200n.htm Asus s5200n μπαταρία,
    http://www.batteryfast.co.uk/asus/s5n.htm Asus s5n μπαταρία,
    http://www.batteryfast.co.uk/asus/90-naa1b1000.htm ASUS μπαταρίας 90-naa1b1000,
    http://www.batteryfast.co.uk/asus/s2691061.htm Asus s2691061 μπαταρία,
    http://www.batteryfast.co.uk/asus/a42-v6.htm Asus a42-v6 μπαταρία,
    http://www.batteryfast.co.uk/asus/a32-u5.htm Asus a32-u5 μπαταρία,
    http://www.batteryfast.co.uk/asus/u5f.htm Asus u5f μπαταρία,
    http://www.batteryfast.co.uk/asus/u5a.htm Asus u5a μπαταρία,
    http://www.batteryfast.co.uk/asus/u5f.htm Asus u5f μπαταρία,
    http://www.batteryfast.co.uk/asus/u5.htm Asus u5 μπαταρία,
    http://www.batteryfast.co.uk/compaq/nw8000.htm Compaq nw8000 μπαταρία,
    http://www.batteryfast.co.uk/compaq/nc8000.htm Compaq nc8000 μπαταρία,
    http://www.batteryfast.co.uk/compaq/v1000.htm Compaq μπαταρία v1000,
    http://www.batteryfast.co.uk/compaq/nc6000.htm Compaq nc6000 μπαταρία,
    http://www.batteryfast.co.uk/compaq/nx5000.htm Compaq nx5000 μπαταρία,
    http://www.batteryfast.co.uk/compaq/n600.htm Compaq n600 μπαταρία,
    http://www.batteryfast.co.uk/compaq/n600c.htm Compaq n600c μπαταρία,
    http://www.batteryfast.co.uk/compaq/n610c.htm Compaq n610c μπαταρία,
    http://www.batteryfast.co.uk/compaq/n610v.htm Compaq n610v μπαταρία,
    http://www.batteryfast.co.uk/compaq/n620c.htm Compaq n620c μπαταρία,
    http://www.batteryfast.co.uk/compaq/e500.htm Compaq e500 μπαταρία,
    http://www.batteryfast.co.uk/compaq/e500s.htm Compaq e500s μπαταρία,
    http://www.batteryfast.co.uk/compaq/v300.htm Compaq v300 μπαταρία,
    http://www.batteryfast.co.uk/compaq/v500.htm Compaq v500 μπαταρία,
    http://www.batteryfast.co.uk/compaq/pp2060.htm Compaq pp2060 μπαταρία,
    http://www.batteryfast.co.uk/compaq/nx9000.htm Compaq nx9000 μπαταρία,
    http://www.batteryfast.co.uk/compaq/nx9005.htm Compaq nx9005 μπαταρία,
    http://www.batteryfast.co.uk/compaq/nx9010.htm Compaq nx9010 μπαταρία,
    http://www.batteryfast.co.uk/compaq/nx9020.htm Compaq nx9020 μπαταρία,
    http://www.batteryfast.co.uk/compaq/n110.htm Compaq n110 μπαταρία,
    http://www.batteryfast.co.uk/compaq/n110s.htm Compaq n110s μπαταρία,
    http://www.batteryfast.co.uk/compaq/pp2101x.htm Compaq pp2101x μπαταρία,
    http://www.batteryfast.co.uk/compaq/presario-2100.htm Compaq presario 2100 μπαταρία,
    http://www.batteryfast.co.uk/compaq/ze4000.htm Compaq ze4000 μπαταρία,
    http://www.batteryfast.co.uk/compaq/f4809a.htm Compaq f4809a μπαταρία,
    http://www.batteryfast.co.uk/compaq/f4812a.htm Compaq f4812a μπαταρία,
    http://www.batteryfast.co.uk/dell/inspiron-700m.htm Dell inspiron μπαταρία 700m,
    http://www.batteryfast.co.uk/dell/inspiron-710m.htm Dell inspiron 710m μπαταρία,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm Dell γεωγραφικό πλάτος x 200 μπαταρία,
    http://www.batteryfast.co.uk/dell/8u443.htm Dell 8u443 μπαταρία,
    http://www.batteryfast.co.uk/dell/312-0058.htm η Dell 312-0058 μπαταρία,

Αφήστε μια απάντηση, να Paul Galvin Ακύρωση απάντησης

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *