השבוע אני היה יישום "מתפתחים" פתרון עבור לקוח משתמש BDC ואת SPQuery, נתקל בקשיים באמצעות SPQuery נגד ספריית מסמכים המכילה תיקיות. השורה התחתונה: הקצאת "רקורסיבית" את התכונה תצוגה של השאילתה.
את התסריט שלי:
- ביום שני, אני העלאת מסמך, לספק מידע מטא.
- בשבוע הבא, אפשר להעלות מסמך חדש. הרבה מטה נתונים של מסמך חדש זה מבוסס על המסמך שהעליתי ביום שני (שאנו מכנים "מסמך האב").
- יצרנו חזית שירות אינטרנט המספק ממשק ידידותי 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 לעולם לא תחזיר תוצאות כלשהן. השתמשנו תיקיות בעיקר כדי לאפשר קבצים מרובים עם אותו שם להעלאה אבל עם מטה-נתונים שונים. כאשר מועלה קובץ, אנחנו ליצור תיקיה המבוסס על זיהוי של פריט הרשימה ולאחר מכן להעביר את הקובץ שם (כתבתי על זה כאן; . יש לנו . מבולבל עם גישה זו, אבל על כל, זה עובד טוב). המשתמש לא אכפת לי על תיקיות, למעשה, לא ממש מבינים שישנם כל התיקיות. אנחנו קביעת התצורה של כל התצוגות על הספרייה כדי להציג פריטים ללא קשר תיקיות.
. הכיתי את הבעיה פעמיים כמו יישום טכני מפותח ופתר אותה באופן שונה בכל פעם. בפעם הראשונה, לא משתמש באופרטור מכיל שאילתה. ללא מפעיל מכיל, הייתי מסוגל לפתור את הבעיה על-ידי ציון מהנוף של SPQuery contructor. במקום להשתמש את בנאי ברירת מחדל:
Splist.update() oList = אינטרנט.רשימות["מסמכים"];
SPQuery oQuery = חדש SPQuery();
. הייתי במקום בנאי שצוינו תצוגה:
Splist.update() oList = אינטרנט.רשימות["מסמכים"];
SPQuery oQuery = חדש SPQuery(oList.Views["כל המסמכים"]);
זה פתר את הבעיה ואני התחלתי לקבל את התוצאות שלי.
הוספתי את האופרטור מכיל לתערובת והוא נשבר שוב. מתברר כי המפעיל מכיל, עד כמה שאני יכול לומר, לא עובד עם הנוף באותו אופן כמו GEQ פשוטים יותר / LEQ אופרטורים. עשיתי כמה חיפושים ונודע כי יש להגדיר הצג תכונות של השאילתה "רקורסיבית", כמו ב-:
oQuery.ViewAttributes = "היקף = "Recursive"";
זה פתר את הבעיה עבור מכיל. למעשה, זה גם פתרתם את הבעיה החיפוש המקורי שלי, אם היה לי שהגדרתי את רקורסיבית מייחסים בפעם הראשונה, והייתי לא רצה שבדקו את הנושא שוב.
העובדה SPQuery המבוסס על תצוגה עובד עבור כמה מפעילים (GEQ/LEQ) ולא אחרים (מכיל), בשילוב עם העובדה כי Kpi לא נראה לעבוד עם תיקיות המכילות הפניות ספריות מסמכים ממני להאמין כי SPQuery יש כמה בעיות אורתוגונליות.
תודה מיוחדת:
- ההורים טוב בבית U2U והכלי שלהם שאילתה.
- מייקל הופר נהדר "למידה שהיא עושה" הצבת בלוג, הערות ותגובות.
</קצה>
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 a31-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 e500 compaq סוללה,
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 700 מ' סוללה,
http://www.batteryfast.co.uk/dell/inspiron-710m.htm dell inspiron 710 מ' סוללה,
http://www.batteryfast.co.uk/dell/latitude-x200.htm dell latitude x 200 סוללה,
http://www.batteryfast.co.uk/dell/8u443.htm סוללה 8u443 של dell,
http://www.batteryfast.co.uk/dell/312-0058.htm dell 312-0058 סוללה,
אתה יודע StringBuilder היא המומלצת עבור יצירת חוטים ארוכים, מימין?