ארכיון חודשי: בנובמבר 2007

מוס מספרת לי עמודה שמי שמורות או שימוש ב- … אבל זה לא

עדכון 12/04/07: ראה זה Microsoft KB (http://support.microsoft.com/kb/923589) עבור מידע קשור.

למעשה, מסתבר שזה הוא, אבל ערמומי מוס היה צריך לעשות את זה קשה.

הלקוח שלי עושה כמה עבודות הפיתוח באתר שלו מוס במהלך סוף השבוע. זה קצת ערבוב לגבי מה שהוא באמת עשה, אבל התוצאה הסופית היא זו:

  • הוא מנסה להוסיף עמודת אתר שנקרא "כמות" ותשובות מוס: "שם העמודה שהזנת נמצא כבר בשימוש או ששוריינו. לבחור שם אחר."
  • הוא מנסה להוסיף אותו בסביבת אחרת, וזה מתאים. לכן, "כמות" הוא לא שם שמור.
  • הוא מנסה למצוא עמודה קיימת באתר בשם "כמות" זה אוסף אתרים. הוא לא יכול למצוא את זה.

עשיתי כמה מחקר, אפילו כמה קידוד, שעווה פילוסופי ואז סוף סוף מצאה כי עמודה בשם כמות עשה, למעשה, קיים. זה היה ב- "_ מוסתרת" קבוצה. ומכאן, לא הצלחנו למצוא אותו באמצעות ממשק המשתמש של SharePoint.

איך זה הגיע לשם? לא יודע, . אבל יש לי תיאוריה (או כמו אשתי. הייתי קורא לזה, "בלה בלה בלה"). איפשהו לאורך הקו, של תבנית ארבעים נפלאים היה הוסיף ומופעל כנראה באתר באוסף האתרים. זה היה מכן הפעלתה בוטלה (או באתר הוסר). עמודת האתר, עם זאת, נשאר אבל בתוך "_ מוסתרת" קבוצה. אם מישהו יודע יותר טוב, אנא הודע לי באמצעות דוא או לפרסם הערות.

SharePoint אמר את האמת. . זה בקושי שווה מדגישה כי הודעה זו אינה עוזרת כמו זה יכול להיות. יהיה נחמד לראות במזלג הודעה אל שתי הודעות שונות בעתיד: 1) לומר שם העמודה שמורה או לא. 2) אם זה לא שמור, הצג את האתר, או לפחות הקבוצה, איפה שם העמודה כבר נמצא בשימוש.

</קצה>

תגיות טכנורטי: , ,

הצגת נתונים אום באמצעות רשימה מותאמת אישית (או, עדיין Displayor נתונים אום נוסף [כמו YACC, אבל שונה])

היום, ביליתי קומץ של שעות באיתור הגורם מאחורי ההודעה "שם העמודה שהזנת נמצא כבר בשימוש או שמורות. לבחור שם אחר."

היתה אפשרות ליצור את העמודה המדובר, נמחקת ונוצרת מחדש בסביבה אחרת, אז ידעתי שזה לא היה שם שמור. עם זאת, פשוט לא יכולתי למצוא את העמודה בכל מקום באמצעות ממשק המשתמש של SharePoint סטנדרטית בכל אתר באוסף האתרים.

פרסמתי כדי של פורום MSDN את עשוייה ללא חת אנדרו וודוורד הפנה אותי לכיוון של הנתונים המשמשים כבסיס של מודל אובייקט.

הלכתי codeplex כדי למצוא כמה כלים שיעזרו לי להציץ אל הנתונים המשמשים כבסיס אום ולעזור לי לאתר את הבעיה.

ניסיתי מספר כלים, הם היו מאוד מגניב, מעניין אבל בסופו של דבר, ממשק המשתמש לא היה מספיק טוב עבור המטרה שלי. אני לא מבקר אותם בכל האמצעים, אבל בבירור הכלי להכנת לא היה הבעיה שלי בראש כשהם יצרו UI שלהם :). נראה שרוב האנשים משקיעה כמות סבירה של זמן ומאמץ ביצירת תחנות עבודה / יישומי לקוח המספקים תצוגות עץ, לחץ לחיצה ימנית על תפריטים תלויי-הקשר, וכן הלאה. . אלה נחמדות והכל, אבל זה הרבה עבודה כדי ליצור חוויית משתמש top-of--line הוא גם גמיש מאוד.

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

אם וכאשר אני בהצלחה להשתלט על העולם, אני חושב שיפגשו כל ספקי כלים SharePoint לשקול ברצינות חיפוי הנתונים שלהם מודל אובייקט רשימה מותאמת אישית. ככה, יש לי את הכוח כדי לחפש בכל דרך שארצה (מוגבל, בטח, על-ידי תכונות sharepoint סטנדרטית).

פעולה מותאמת אישית של זרימת העבודה SharePoint Designer — תצפית על <סוג מעצב FieldBind =”StringBuilder” … />

רק תצפית מהר. כי יש הבדל חשוב בין שתי הגדרות אלה:

<שדה FieldBind = "InParam1" DesignerType = "StringBuilder" Id = "2" טקסט = "פרמטר קלט #1" />

לעומת:

<שדה FieldBind = "InParam1" Id = "2" טקסט = "פרמטר קלט #1" />

הראשון מראה כזה ב- SPD:

התמונה

תוך כדי ההופעות האחרון ככה:

התמונה

אני לא בטוח עד כמה צילומי המסך האלה מועילים אבל אני השקעתי מאמץ לעשות אותם אז אתה צריך לראות אותם 🙂

התצפית זה: StringBuilder מאפשר לך לבנות מחרוזת (. ברור) על ידי ערבוב יחד מחרוזת מילולית ועל זרימת הנתונים (דרך "הוספת בדיקת מידע" הלחצן בפינה השמאלית התחתונה). כאשר תשתמש בלחצן הוסף בדיקת מידע, הוא מוסיף רכיב token בדמות"[%האסימון %]". מתי SharePoint הפעלת הפעולה המותאמת אישית שלך, (C# קוד במקרה שלי), SharePoint עובר האסימון עצמה, לא את הערך של ה-token. אם אתה משתמש סוג ברירת המחדל של מעצבים (הסוג השני), SharePoint מרחיבה את ה-token ומעביר את הערך הממשי של ה-token לפעולה שלך.

StringBuilder = רע, ברירת מחדל סוג מעצבים = טוב.

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

<סיום />

הפעלת זרימת עבודה מוקדמת — פתרון שאינם רפואיים

עדכון: לראות את הדיון הזה-MSDN, במיוחד את הערך האחרון: http://forums.microsoft.com/MSDN/showpost.aspx?postid=2631057&siteid=1. היא מתארת מצב זה עשוי לקצר את כל העניין. בקיצור, זה יכול להיות פשוט כמו ביצוע לפחות אחד מהשדות חובה.

. יש לי ספריית מסמכים התומכת שמונה סוגי תוכן.

. יש לי זרימת עבודה של SharePoint Designer שרוצה לחשב ולהקצות תאריך תזכורת"" על-ידי חיסור פשוט 30 ימים מעמודה אחרת, "תאריך יעד". זה צריך לקרות רק עבור אחד מסוגי תוכן, "ביטוח". המטרה העסקית היא לייצר KPI המציגה שתי קטגוריות של מסמכי ביטוח: "עומד לפוג" של "שפג תוקפם." (אתה יכול לקרוא יותר על סוג זה של ה-KPI ויותר ניכר הסתעפות כאן).

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

אסטרטגיה זו לא עובד כאשר אני מעלה מסמך.

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

הטוב ביותר העבודה שאני מכיר היא להכניס "הפסקה עד" פעילות בזרימת העבודה. . יש לי אמרה זרימת עבודה 1 דקה. בזמן זה הוא חושב על זה, לבחור את סוג התוכן הנכון, הזינו את נתוני meta. ההשהיה משלים וממשיך זרימת העבודה כנדרש. (שים לב כי בסביבה שלי, שעון העצר של פעילויות זרימת עבודה מ- SPD אינם פועלים מחוץ לקופסה. ייתכן באותן צרות. ראה כאן לקבלת פרטים נוספים).

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

כתבתי על זה בפורומים MSDN כאן: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2430725&SiteID=1

תחל יסודות האבטחה של SharePoint / להימנע מלכודות נפוצות

עדכון 12/18/07: עיין במאמר פול Liebrand עבור כמה השלכות טכניות של הסרה או שינוי של שמות קבוצות ברירת מחדל (ראה גם את ההערה למטה).

מבט כולל:

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

הערה חשובה:

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

יסודות:

למטרות של סקירה זו, ישנם ארבעה ההיבטים הבסיסיים לבטחון: משתמשים/קבוצות, האובייקטים שניתנים לאבטחה, רמות הרשאה וירושה.

משתמשים וקבוצות לבשר למטה:

  • למשתמשים בודדים: שלף מתוך active ספריות או שנוצר ישירות ב- SharePoint.
  • קבוצות: שמופו ישירות מ- active directory או שנוצר ב- SharePoint. קבוצות הן אוסף של משתמשים. קבוצות הן כלליות באוסף אתרים. הם אף פעם לא "קשורות" לאובייקט ניתן לאבטחה מסוים.

האובייקטים שניתנים לאבטחה לבשר למטה לפחות:

  • אתרים
  • ספריות מסמכים
  • פריטים בודדים בתוך רשימות וספריות מסמכים
  • תיקיות
  • הגדרות BDC שונות.

שם שאר האובייקטים שניתנים לאבטחה, . אבל הבנתם את התמונה.

רמות הרשאה: צרור פרטנית / זכויות גישה ברמה נמוכה כוללים דברים כמו ליצור/קריאה/מחיקת ערכים ברשימות.

ירושה: כברירת מחדל בישויות יורשים את הגדרות האבטחה שלהם אובייקט מכיל. אתרי המשנה יירשו הרשאות מהאב שלהם. ספריות מסמכים בהורשה מאתר שלהם. הלאה וכן הלאה.

המשתמשים והקבוצות מתייחסות האובייקטים שניתנים לאבטחה באמצעות רמות הרשאה וירושה.

הכללים החשובים ביותר אבטחה כדי להבין, אי פעם 🙂 :

  1. קבוצות הן פשוט אוספים של משתמשים.
  2. קבוצות הן כלליות בתוך אוסף אתרים (כלומר. אין דבר כזה כמו קבוצה מוגדרים ברמת האתר).
  3. שם הקבוצה למרות, קבוצות אינם, בולטים של עצמם, יש רמה מסוימת של אבטחה.
  4. קבוצות יש אבטחה בהקשר של אובייקט ניתן לאבטחה מסוים.
  5. ייתכן שתקצה רמות הרשאה שונות לאותה קבוצה עבור כל אובייקט ניתן לאבטחה.
  6. מדיניות יישום אינטרנט טראמפ מכל זה (ראה להלן).

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

מלכודות נפוצות:

  • שמות קבוצות לרמוז באופן כוזב הרשאה: מחוץ לקופסה, SharePoint מגדיר סדרה של קבוצות ששמם מרמז על רמה הטבועה של אבטחה. שקול את קבוצת "משתתפים". אחד לא מוכר עם SharePoint אבטחה ייתכן ובכן תסתכל על השם הזה ונניח כי כל חבר בקבוצה זו יכול "לתרום" לספריית בכל אתר/רשימת/בפורטל. יכול להיות שזה נכון, אבל לא בגלל השם של הקבוצה במקרה "משתתפים". הדבר נכון רק מחוץ לקופסה כי הקבוצה סופק רמת הרשאה המאפשרת להם הוספת/עריכת/מחיקת התוכן באתר שורש. דרך ירושה, "התורמים" קבוצה עשוי גם הוספת/עריכת/מחיקת תוכן ב כל אתר משנה. אחד יכול "לשבור" שרשרת הורשה ושינוי רמת ההרשאה של תת אתר כזה כי חברי התורם"כביכול" קבוצה לא יכולה. לתרום בכלל, אבל קריאה בלבד (לדוגמה). זה לא יהיה רעיון טוב, . ברור, מאז זה יהיה מאוד מבלבל.
  • קבוצות שאינם מוגדרים ברמת האתר. זה קל להתבלבל באמצעות ממשק המשתמש. Microsoft מספקת קישור נוח לניהול משתמש/קבוצה דרך "אנשים וקבוצות כל אתר" קישור. זה קל להאמין שכאשר אני נמצא באתר "xyzzy" ליצור קבוצה דרך של xyzzy ב האנשים ואת קבוצות לקשר את זה אני פשוט יצר קבוצה שקיים רק ב xyzzy. זה לא המקרה. למעשה יצרתי קבוצה עבור אוסף האתרים כולו.
  • הקבוצות החברות אינו משתנה על ידי האתר (כלומר. זה אותו הדבר בכל מקום שהקבוצה משמשת): שקול את קבוצת "בעל" שני אתרים, "HR" ולוגיסטיקה "". יהיה נורמלי לחשוב כי שני אנשים נפרדים יהיו בעלי אתרים אלה — בעלים HR לבין בעל לוגיסטיקה. ממשק המשתמש מקל על מנהל אבטחה mishandle את התרחיש הזה. אם לא הייתי מכיר אותו, אני יכול לגשת הקישורים אנשים וקבוצות דרך האתר HR, בחרו הבעלים"" לקבץ ולהוסיף את הבעלים HR שלי לאותה קבוצה. חודש לאחר מכן, הלוגיסטיקה מגיע על הקו. לגשת אנשים וקבוצות מתוך אתר לוגיסטיקה, להוסיף להעלות. את הבעלים"" קבוצה. פנה לבעלים HR שם ולהסיר אותה, לחשוב כי אני משהה אותה מבעלי האתר לוגיסטיקה. למעשה, . מסירה אותה מהקבוצה בעלי גלובלית. עליצות מתפתח.
  • אי-שם קבוצות המבוסס על תפקיד ספציפי: המאשרים"" הקבוצה היא דוגמה מושלמת. מה יכולים בני אשר קבוצה זו? איפה הם יכולים לאשר את זה? אני באמת רוצה אנשים מחלקת הלוגיסטיקה כדי שניתן יהיה לאשר מסמכים HR? . כמובן שלא. תמיד שם קבוצות על בסיס תפקידם בארגון. פעולה זו תקטין את הסיכון כי הקבוצה מוקצית רמת הרשאה לא הולם עבור אובייקט ניתן לאבטחה מסוים. שם קבוצות בהתבסס על תפקידו המיועד. בתרחיש הקודם של HR/לוגיסטיקה, אני צריך יצרתי שתי קבוצות חדשות: "בעלי HR" לוגיסטיקה בעלי "" ולהקצות רמות הרשאה הגיונית עבור כל אחד, הסכום המינימלי הנדרש עבור אותם משתמשים לעשות את העבודה שלהם.

הפניות שימושיות אחרות:

אם כבר הגעת רחוק:

. בבקשה תן לי יודע את המחשבות שלך באמצעות ההערות או לשלוח לי אימייל.. אם אתה יודע אחרת המלצות טובות, בבקשה לעשות את אותו הדבר!

תגיות טכנורטי:

מהיר וקל: יצירת Web Part של תצוגת נתונים (DVWP)

יש שפע של מידע רב על הקובץ WSS 3.0 Web Part תצוגת נתונים (DVWP) ב- web מכמה מקורות. עם זאת, מצאתי שזה יהיה מפתיע שקשה למצוא מידע על זה הצעד הראשון מאוד בסיסי. הנה מאמר נוסף "מהיר וקל" סדרת לרשום כתובת.

בצע שלבים אלה כדי ליצור web part של תצוגת נתונים (DVWP). הם מבוססים על הכרזות"" ה-web part, אך חל על רשימות רוב.

  1. -Web part של הכרזות ולהוסיף אותו לאתר.
  2. פתח את האתר ב- SharePoint Designer.
  3. פתח את האתר default. aspx..
  4. בחר את ה-web part של הודעות, לחץ לחיצה ימנית.
  5. מהתפריט תלוי-ההקשר, בחר 'המר ל XSLתצוגת נתונים T".

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

לאשר שעשית את זה כראוי:

  1. סגור ופתח מחדש את דפדפן האינטרנט (כדי להימנע בטעות מחדש את פרסום את המקורי "הוספת web part חדש").
  2. בחר את החץ ה-web part הנפתח ובחר "שינוי Web Part משותף" מתוך תפריט.
  3. החלונית ' הכלי ' פותחת ימינה.
  4. החלונית ' ' השתנתה אפשרויות הגדרת הרגיל שלה לזה:
התמונה

“לא ניתן לקבל את מאפיין עמודת הסכימה של הרשימה מרשימת SharePoint” — תיאור-הפתרונות

בשבוע זה, אנו לשכפל לבסוף בעיה כבר דיווחו על-ידי משתמש מרוחק: כאשר היא ניסתה לייצא את התוכן של רשימה ב- excel, הדברים נראים להתחיל לעבוד, אך לאחר מכן Excel מוקפצת שגיאה: "לא יכול לקבל המאפיין עמודה ברשימה הסכימה מרשימת SharePoint". היא רצה משרד 2003, windows XP וחיבור מוס.

חיפוש אינטרנט את וראיתי כמה השערות אבל לא 100% סופי. ומכאן, פירסום.

הבעיה: ייצוא תצוגה ל- excel מכיל תאריך (תאריך = את סוג הנתונים של העמודה).

מה עבד לנו: המרת תאריך כדי "לשורה בודדת של טקסט". לאחר מכן, להמיר אותה בחזרה אל תאריך.

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

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

הפניות אחרות:

http://www.kevincornwell.com/blog/index.php/cannot-get-the-list-schema-column-property-from-the-sharepoint-list/

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2383611&SiteID=1

<קצה>

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

תגיות טכנורטי: ,

מהיר ופשוט: לשלוח אימייל עם ההיפר-קישור המוטבע בזרימת עבודה של SharePoint Designer

פעם או פעמיים בחודש, הודעות מישהו שאלה בפורום: "איך לכלול היפר-קישורים אל כתובת ה-URL של להקליק של דואר אלקטרוני SharePoint Designer?"

הציג ללא תגובה נוספת: (. טוב, למעשה יש תגובות נוספות לאחר התמונה):

התמונה

Isserman בקי הבא עם הסבר מועילות כיצד להטמיע קישור לפריט בדוא: http://www.sharepointblogs.com/mosslover/archive/2007/11/20/addition-to-paul-galvin-s-post-about-sending-an-e-mail-with-hyperlinks-in-spd.aspx

מהדורה חדשה: הרחבות זרימת עבודה של SharePoint Designer (פונקציות מניפולציה המחרוזת)

עדכון: רואה כאן את דעתי על המיסחור של הפרויקט הזה: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

. הייתי עסוק בעבודה על הפרוייקט שלי-Codeplex אשר מתמקדת במתן מחרוזת מניפולציה הרחבות לזרימות עבודה שנוצרו באמצעות SharePoint Designer.

לפרטים, ראה כאן:

פרויקט הבית: http://www.codeplex.com/spdwfextensions

שחרור: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

גירסה 1.0 כוללת את התכונות החדשות הבאות:

פונקציה תיאור (אם לא זהה.הפונקציה נטו)
Num-ערכי() מחזירה את מספר "ערכים" במחרוזת לפי מפריד שיצוין.

לדוגמה: Num-ערכי במחרוזת "a,b,c" עם מפריד"," = 3.

ערך() החזרת ה-token nth במחרוזת לפי מפריד שיצוין.
אורך String.Length
החלף() String.Replace()
מכיל() String.Contains()
מחזירה את המילה "true" או את המילה "false".
מחרוזת משנה(התחלה) String.Substring(התחלה)
מחרוזת משנה(התחלה,אורך) String.Substring(התחלה,אורך)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
מחזירה את המילה "true" או את המילה "false".
EndsWith() String.EndsWith()
מחזירה את המילה "true" או את המילה "false".

שגיאת זמן ריצה BDC הסביר

אני גרמתי שגיאת BDC השבוע זה בא לידי ביטוי בממשק המשתמש ואת 12 כוורת רישום בזמן ריצה.

הראשונה, זה הופיע בממשק המשתמש:

לא היתה אפשרות למצוא שדות כדי להוסיף את כל הערכים מזהה לבצע כהלכה SpecificFinder MethodInstance עם שם … להבטיח שפרמטרים של קלט יש TypeDescriptors הקשורים עם כל המזהה מוגדר עבור ישות זו.

הנה צילום מסך:

clip_image001

אני יכול לגרום גם הודעה זו תופיע 12 כוורת רישום-יהיה (שימוש high-tech-don't-try-this-at-home פטנט שלי "שגיאות מסתורי" שיטה):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0SharePoint Portal Server נתונים עסקיים x0B8C 6q4x חריגה גבוה ב- BusinessDataWebPart.OnPreRender: System.InvalidOperationException: ערך המזהה ”, סוג ”, . זה לא חוקי. הערך הצפוי מזהה מסוג 'System.String'. ב- Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(אובייקט[] subIdentifierValues, LobSystemInstance lobSystemInstance) ב- Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(ישות לישות, אובייקט[] userValues, LobSystemInstance lobSystemInstance) ב- Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(נוף desiredView) ב- Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() ב- Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

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

ב- ADF שלי, אני מתחבר מסד נתונים של SQL כמוצג:

            <רכוש שם="RdbCommandText" סוג="System.String">
              <![CDATA[
                בחר SETID, CARRIER_ID, EFFDT, לתאר, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      מדינה, כתובת1, ADDRESS2, ADDRESS3, ADDRESS4, העיר, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      מחוז, המדינה, מיקוד, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, טלפון, סיומת, פקס, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG מ dbo.PS_CARRIER_ID_VW עם (nolock)
                איפה
                  (SETID <> 'שיתוף') ו
                  (נמוך יותר(CARRIER_ID) >= נמוך(@MinId)) ו
                  (נמוך יותר(CARRIER_ID) <= נמוך(@MaxId)) ו
                  (נמוך יותר(לתאר) כמו התחתון(@InputDescr))
                ]]>
            </רכוש>

אני היה סיפק את SQL מאדם DBA, שאני נותן להבין כי זה מיוחד תצוגה שהם יצרו רק בשבילי. המפתח הייחודי שם הוא CARRIER_ID.

כאן הוא באג הצגתי:

      <מזהי>
        <המזהה שם="CARRIER_ID" TypeName="System.String" />
        <המזהה שם="לתאר" TypeName="System.String" /> 
</מזהי>

איפשהו לאורך הקו, אני הצליח לבלבל את עצמי על המשמעות של <מזהי> והוסיף לתאר למרות שזה לא באמת מזהה. שהוצאתי מתארת מזהי קבוצה, ופרסטו! הכל עבד.

אני מקווה שזה יחסוך למישהו קצת צער 🙂