ארכיון חודשי: ייתכן 2011

PerformancePoint ושגיאה 33494

אחד הלקוחות שלי שנקרא היום כאשר סביבת PerformancePoint שלהם (ב- SharePoint 2010) נשברה.  באחד מהשרתים יישום בחווה היה אוזל שטח הדיסק.  בעת אשר, הלקוח להסרה "יותר מדי" ועצר הדברים עמ' כל תפקוד.  רכיבי web part שונים יראו "אירעה שגיאה בלתי צפויה. שגיאה 33494. פרטים נוספים הכניסה עבור מנהל המערכת":

image

הסתכלתי למעלה את השגיאה, לא מצאו שום דבר ספציפי "שגיאה-33494", אך זה פורומים MSDN הצבת היה שימושי: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

מצאתי ADOMD.NET כאן כרכיב ב- SQL Server 2008 ערכת feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(לחץ להגדלה)

הורדה והתקנת אשר ותוקנו זה הכל.

אני חושב שזה יפה כלי יוצא דופן מעין שגיאות, אך אם פגעת בו, לך לפחות יש לך אפשרות.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

Lists.asmx, GetListItems ותיקיות

אני עושה קצת מחקר עבור מישהו היום סביב שירות האינטרנט list.asmx במסגרת של SharePoint 2010 (וגירסאות קודמות).  היא הצליחה לקבל את רשימת הפריטים בתיקיית הבסיס (כולל שמות תיקיות המשנה), אך לא היתה אפשרות לקבל פריטים בתוך תיקיות המשנה.  אני עשיתי את חלקם מביטים למצות והיא שאלה נפוצה באופן מפתיע.  עדיין, ושאני לא יכול לקבל תשובה טובה לשאלה פשוטה, "אם אני מכיר את התיקיה, כיצד ניתן לקבל את הפריטים בתיקיה?”  והאמת, אני לא מנסה כל מה קשה מאז כבר רציתי דמות זו אחת החוצה בכוחות עצמי קצת חיוך.

לשם ביצוע פעולה זו, יצרתי באתר בשם "תרחישים בלוגים" ואת רשימה מותאמת אישית בשם "רשימה עם תת תיקיות מותאמות אישית".  מכן יצרת תיקיות בשם:

  • השנה 2005
  • השנה 2006
  • השנה 2007

הוספתי מספר פריטים לתיקיה "השנה-2006".  דבר זה נראה:

image

החבר שלי לכתוב קוד C # אבל במקום שימוש ב- Java, מעטפת ה-SOAP היה מה היא באמת צריך.  כדי לקבל את זה, אני כתב מעט jQuery, ואז השתמש כנר כדי לקבל את השיחה בפועל של HTTP.

הנה jQuery רלוונטיים (העתקתי את הקוד למטה מתחת אם ברצונך לבצע העתקה/הדבקה):

image

הם המפתח הראשון היא לכלול שני <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, טיפים וטריקים

נתתי את המצגת שלי היום בפסטיבל SharePoint בדנוור. הנה מצגת ה-PowerPoint עצמה: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

Lists.asmx, GetList, "ערך אינו יכול להיות null”

גיליתי היום בהם GetList() שיטת ב lists.asmx שירות האינטרנט צריך להיקרא היטב או זה נוטה לזרוק מסתורי "ערך אינו יכול להיות null" יוצא מן הכלל (ואת כל זאת בהנחה שבאפשרותך לקבל אחרי הודעת שגיאה כללית גרוע, "חריגה מסוג ' Microsoft.SharePoint.SoapServer.SoapServerException’ המערכת התריעה.")  באופן ספציפי, מצאתי לא יכול לספק כל סוג של קידומת על שיטת GetList.  הגזיר jQuery שלהלן ממחיש את הנקודה:

image

אם תעשי זאת, שירות האינטרנט מגיב עם "ערך אינו יכול להיות null" לפי זה כנר-בתנאי פרוטוקול HTTP:

<?גירסת xml = "1.0" קידוד = "utf-8"?>
  <סבון:מעטפה
     xmlns:סבון ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/ 2001/סכימת Xml-מופע
     xmlns:xsd ="
http://www.w3.org/ 2001/סכימת Xml">

  <סבון:הגוף>
    <סבון:אשמתו>
      <faultcode>סבון:שרת</faultcode>
      <faultstring>
        חריגה מסוג ' Microsoft.SharePoint.SoapServer.SoapServerException’ נזרק.
      </faultstring>
      <פירוט>
        <errorstring xmlns ="
http://schemas.microsoft.com/sharepoint/soap/">
ערך אינו יכול להיות null.
        </errorstring>
      </פירוט>
    </סבון:אשמתו>
  </סבון:הגוף>
</סבון:מעטפה>

בטח, אתה כנראה לא להוסיף את הקידומת "s0" בכוחות עצמך, אבל כלים מסוימים נוטים לעשות את זה (כמו ליקוי חמה).

זה עוד יותר מבלבל / מתסכל כי שיטות אחרות לסבול קידומות.  למשל, את GetListCollection שיטה לא אכפת אם הוא היה קידומת, אפילו עם קידומות שטויות כמו "xyzzy":

image

זה "ערך אינו יכול להיות null" נראה שכיחה למדי עם lists.asmx כך אני מקווה שזה יעזור למישהו החוצה בעתיד.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

קינון אינסופית <div> תגיות ו- Mootools

זה נראה כמו נושא כלי יוצא דופן, אני לא בטוח שזה באמת שווה בלוגים אודות, אבל זה מעולם לא הפסיקה אותי לפני, אז הנה אנחנו הולכים חיוך

אני עובד על פרוייקט בו אני אני שליפת נתונים מסוימות לאחר חיפוש, אריזה זה לתוך הודעת ה-XML ולאחר מכן ב- XML הוא בסופו של דבר הופך HTML באמצעות ה-XSLT.  יש הרבה jQuery מעורב, סיבית אחת אשר מיישמת חלק מהפונקציונליות הטאבים.  בעת לחיצה על לשונית (באמת, של <div>), jQuery מפעיל להחביא() הראי() ב- divs שונים (עומס הדף ההתחלתי מוריד את התוכן כך ישנן פעולות postback אין במקרה זה).

חבורה של לפני שעות, הכרטיסיה מיתוג לוגיקה התחיל לשיבושים, זה מופיע באחת הכרטיסיות שלי.  אני בסופו של דבר הצליחו לקשר זאת העובדה שבה internet explorer (לפחות) חשב <div> תגים מקוננים רחוק, עמוק הרבה יותר המיועד.הכלים מפתח יראה:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— סוף סוף להראות את זה נסגר כל הדרך לכאן!

כל כך, אם כן $("#Tab1Content").הסתר(), אני גם הייתי מסתיר Tab2 ואני לעולם לא אראה Tab2 אם אני גם לא להראות Tab1.  העתקתי והדבקתי את הקוד לתוך visual studio וזה הראה כל בתור של div יפה, בדיוק כמו שהם היו אמורים לעשות, כשאני נראה ככה:

-<div id = "Tab1Content">
  +<div>
  +<div>
-<div id = "Tab2Content">
  +<div>
  +<div>

לנצח את הראש שלי בקיר לזמן והבחנתי כי בקוד ה-HTML בפועל קוד היה יצירת הרבה ריק <div> תגים, כמו:

<הגוף>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

</הגוף>

(האמור לעיל הוא waaaaaaaaaaaay פשטני.  תגי div ריק תקפים לחלוטין. חלק שלי <div> תגיות היו מלאות תוכן, אבל לא היו הרבה יותר.  אני נשבע לך. זה שלי <xsl:עבור-כל> הוראות פלטו הקצר-הטופס div תגיות כאשר ה-xsl:לא עבור יח ' למצוא את כל הנתונים.  אני הכרחתי את הערת HTML של הפלט, כפי שמוצג:

image

 

אחרי שעשיתי את זה, כל div בשורה יפה, מיתוג הכרטיסיה שלי התחיל לעבוד.

כמו תמיד, אני מקווה שזה עוזר למישהו בצרה.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תיקון מהיר: "שם סוג התוכן ' משאבים$:ReportServerResources … אין אפשרות להכיל … תווים מיוחדים”

אני כבר לבלות זמן ניקוי SharePoint 2010 אחת הסוגיות ניקוי ואתר מתייחסת מושחתים / שירותי SQL Server דוח בעיה שמותקן בצורה שגויה.  הבעיה התעורר כאשר אחד מעמיתיי ניסה לשמור אתר כתבנית ולאחר מכן ליצור יצירת אתר חדש המבוסס על התבנית.  שמור פעולת עבד מצוין, אך כאשר היא ניסתה ליצור את האתר החדש, SharePoint מוצגת הודעת השגיאה הבאה:

שגיאה

שם סוג התוכן ' משאבים $:ReportServerResources,DataSourceContentTypeName;' אינו יכול להכיל: \ / : * ? “ # % < > { } | ~ & , שתי תקופות מעצר (..), או תווים מיוחדים כגון טאבים.

הנה כיפה מסך:

 

image

היה לראות סוגי התוכן באתר ומצאו זה:

image

סוגי תוכן אלה הם בבירור לא תקינים.

בעיה זו נראה שיבוא הרבה בלמצות, שם לא נראה שיש הסכמה כללית אחת כיצד לפתור אותה.  מצאתי טבלה בהישג יד שמיפו את שמות סוגי התוכן רע שמות סוגי התוכן טוב כאן: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  באופן ידני עדכנתי אותם thusly:

image

(BrightStarr שם הוא כמובן אופציונלי, אך אולי יתמזל מזלכם חיוך )

זה איפשר לי ליצור תבנית חדשה, שברו את דבר באתרים אחרים, כולל כמה דברים שרת PerformancePoint קבוצה שונה לחלוטין של אנשים עבדת.  לאחר מכן הצלחתי ליצור אתר חדש על התבנית.  הצלחה!

אני לא בטוח שזו 100% פתרון, אבל זה גרם לי, כל מי שעוסק אחרי זה מציק שגיאה.  אם אני מוצא שום דבר חדש, אני לפרסם עדכון.  עצבנות שלי נובע כי שמות אלה לא אמורה להיות שגוי מלכתחילה ועל -ידי תיקון שם התצוגה, אני אני לא לגעת שם פנימי. 

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

סיבה אחת עבור "היוצר של תקלה זו לא ציין סיבה.”

אני כבר עושה הרבה עבודה עם חיפוש SharePoint בזמן האחרון, במיוחד המחלקה KeywordQuery, מאפיינים ופעולות שירות.

אם ברצונך ערכת התוצאות ללהחזיר תוצאות מעל ומעבר החשודים הרגילים (ראה כאן), באפשרותך להוסיף אותו לאוסף SelectedProperties, כמו ב-:

myKeywordQuery.SelectProperties.Add("xyzzy");

תודה רבה, תיאור של הכובע כדי קורי רוט ו בבלוג זה שימושי מאוד (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

במקרה שלי, "xyzzy" לא באמת מאפיין מנוהל.  כאשר הוספתי אותו כדי SelectedProperties בכל מקרה, SharePoint זרקו אחד האהובים אי פעם חריגות זמן ריצה:

"היוצר של תקלה זו לא ציין סיבה."

אהבתי במיוחד את עיר הבירה "R" ההיגיון.  זה נשמע לי כמו.המקבילה נטו של"יש לי פה לא, ו חייב לצעוק.”

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

הפניה בהישג יד: ברירת המחדל תוצאות בחיפוש KeywordQuery

מתי להפעיל את ביצוע() שיטה ב- KeywordQuery, באפשרותך ליצור ResultTable מבוסס על ResultType.RelevantResults.  מקטע קוד זה ממחיש למה אני מתכוון:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

הטבלה שתיווצר תהיה את העמודות הבאות של מידע: 

מזהה
דרגה
כותרת
מחבר
גודל
נתיב
תיאור
כתיבה
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

אני נגזר רשימה זו SharePoint 2010 סביבה, מהדורה של הארגון.  בתקווה שזה יהיה שימושי למישהו בעתיד.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

אחת הסיבות: "נכשלה לחלץ את קובץ ה-cab בפתרון”

בעת עבודה ב- web part של visual studio פרוייקט היום, עשיתי של ארגוני-re משניות של קבצים מסוימים כדי לשים אותו בתוך התיקיה _ layouts כחלק מתהליך הפריסה. באופן ספציפי, שיניתי את שם קובץ .js מ- "TypeAhead.js" "TypeAhead(הישן).js"  אני מתכנן להסיר אותו ברגע הפעילות העוקבת שלה "TypeAhead.js" מוכיח הנכון.  הוא נראה כמו זה:

image

זה גרם בעיה עם visual studio מיד כאשר ניסיתי לפרוס את הפרוייקט:

אירעה שגיאה בשלב פריסה "פתרון להוסיף": נכשל לחלץ את קובץ ה-cab בפתרון.

מתברר כי לא מומלץ להכניס תו סוגריים בשמות קבצים.  הסרתי parens, אשר פתר את הבעיה.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin