אני עושה קצת מחקר עבור מישהו היום סביב שירות האינטרנט list.asmx במסגרת של SharePoint 2010 (וגירסאות קודמות). היא הצליחה לקבל את רשימת הפריטים בתיקיית הבסיס (כולל שמות תיקיות המשנה), אך לא היתה אפשרות לקבל פריטים בתוך תיקיות המשנה. אני עשיתי את חלקם מביטים למצות והיא שאלה נפוצה באופן מפתיע. עדיין, ושאני לא יכול לקבל תשובה טובה לשאלה פשוטה, "אם אני מכיר את התיקיה, כיצד ניתן לקבל את הפריטים בתיקיה?” והאמת, אני לא מנסה כל מה קשה מאז כבר רציתי דמות זו אחת החוצה בכוחות עצמי קצת .
לשם ביצוע פעולה זו, יצרתי באתר בשם "תרחישים בלוגים" ואת רשימה מותאמת אישית בשם "רשימה עם תת תיקיות מותאמות אישית". מכן יצרת תיקיות בשם:
- השנה 2005
- השנה 2006
- השנה 2007
הוספתי מספר פריטים לתיקיה "השנה-2006". דבר זה נראה:
החבר שלי לכתוב קוד C # אבל במקום שימוש ב- Java, מעטפת ה-SOAP היה מה היא באמת צריך. כדי לקבל את זה, אני כתב מעט jQuery, ואז השתמש כנר כדי לקבל את השיחה בפועל של HTTP.
הנה jQuery רלוונטיים (העתקתי את הקוד למטה מתחת אם ברצונך לבצע העתקה/הדבקה):
הם המפתח הראשון היא לכלול שני <queryOptions> ו <QueryOptions> צומת. המפתח השני הוא כי <תיקיה> צומת הוא URL שאליה ללקוח יש גישה.
ייתכן שקיימות דרכים אחרות להשיג את זה, אבל זה עבד טוב עבורי בעת שימוש ב- jQuery.
הנה מעטפת ה-SOAP עבור לעיל:
<soapenv:Xmlns מעטפה:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>
<soapenv:הגוף>
<GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’>
<listName>רשימה מותאמת אישית עם תיקיות המשנה</listName>
<viewFields>
<ViewFields>
<שם FieldRef =' כותרת’ />
<שם FieldRef ='EncodedAbsUrl’ />
</ViewFields>
</viewFields>
<queryOptions>
<QueryOptions>
<תיקיה>http://demoserver1/בלוגים תרחישים/רשימות/מותאם אישית ברשימה עם תת תיקיות/שנה 2006</תיקיה>
</QueryOptions>
</queryOptions>
</GetListItems>
</soapenv:הגוף>
</soapenv:מעטפה>
המון דוגמאות ודיון סביב זה הוביל אותי להאמין כי כל מה שדרוש לי היה <QueryOptions> וציין שם תיקיה. בשבילי, אני זקוק לשני להקיף אותו בתוך <queryOptions> וכן לציין כתובת URL מלא <תיקיה> צומת.
הנה תוכנית ההתקנה של AJAX jQuery:
$(המסמך).מוכן(פונקציה() {
var soapEnv =
"<soapenv:Xmlns מעטפה:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
<soapenv:הגוף> \
<GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’> \
<listName>רשימה מותאמת אישית עם תיקיות המשנה</listName> \
<viewFields> \
<ViewFields> \
<שם FieldRef =' כותרת’ /> \
<שם FieldRef ='EncodedAbsUrl’ /> \
</ViewFields> \
</viewFields> \
<queryOptions> \
<QueryOptions> \
<תיקיה>http://demoserver1/Blogging תרחישים/רשימות/מותאם אישית ברשימה עם תת תיקיות/שנה 2006</תיקיה> \
</QueryOptions> \
</queryOptions> \
</GetListItems> \
</soapenv:הגוף> \
</soapenv:מעטפה>";
</קצה>
עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin
היי
אני מנסה להציג את המסמכים תחת תיקיה ספציפית באמצעות של SPD 2010 מקור הנתונים GetListItems
פעם להתחבר לשירות האינטרנט שלי, הזן את ה-guid עבור ספריית המסמכים
אני יכול לשנות את QueryOptions, להזין את החלק הבא של CAML
תאימות TrainingCompanyX.
רק זה לא תחזיר תוצאות כלשהן – הסרת את הפרמטר QueryOptions החזרת כל המסמכים בספריית המסמכים שורש….
אני אני מסתכל עובר כמה סוג של הצג את פרמטר ולכלול את תצוגת ה-guid.
. זה ישן מאוד פוסט/תגובה כל-כך מצטערת על אף מענה. אני מניח לך הרבה זמן. מאז הבנתי איך להמשיך.
מאמר טוב! תודה.
באפשרותך גם להשתמש באפשרות הכל רקורסיבי לעבור באופן אוטומטי את מבנה התיקיות (מרמת הבסיס).
אוקיי, . נראה כאילו זה הוסרו xml… פשוט החלף את בסולמיות מתחת סוגריים זוויתיים.
#queryOptions #
#QueryOptions #
#הצג תכונות היקף = 'הכל רקורסיבי' / #
#/QueryOptions #
#/queryOptions #
תודה רבה על הפוסט הזה, פול. אני מנסה לצרוך GetListItems ויה ColdFusion cfhttp, לא יכולתי לקבל את המעטפה נכון. בסופו של דבר נתקלתי בפוסט הזה, והדוגמא שלך עבד ללא רבב. שוב תודה.
דרך אגב – אתה יודע של משאב המפרט בכל המעטפות סבון מתאים? האחד הפריטים GetList פרסמו ב- microsoft.com לא תואמת את שלך כאן…