יום חמישי, 22 במאי 2008

The query cannot be run for the following DataObject: GetCommonManager

לאחרונה (יותר נכון בשבועות האחרונים) נתקלתי בבעיה שהדירה שינה מעיניי.
בניתי טופס InfoPath ויצרתי Data Connection (חיבור נתונים) לWeb Service שנקרא: GetCommonManager תחת UserProfileService.asmx.
לטופס הוספתי פקד מסוג "תיבת טקסט" שמכיל את שם המנהל של המשתמש שממלא כרגע את הטופס.
(איך עושים זאת, אפשר לראות בפוסט זה)
ברגע שלחצתי על Preview Form (תצוגה מקדימה של הטופס), קיבלתי את ההודעת שגיאה הבאה:

The query cannot be run for the following DataObject: GetCommonManager

InfoPath cannot run the specified query.

The SOAP response indicates that an error occurred on the server:

Server was unable to process request. ---> Object reference not set to an instance of an object.

אמא'לה!!!! מה עושים!!??!

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

אני מצידי אמרתי לו: אני יכול להישבע שגם אם השדה ריק, הוא לא מחזיר שום דבר אבל לא נותן הודעת שגיאה.
מה מסתבר? טעיתי :)
אז מה למדנו פה היום? אם יש לכם הודעת שגיאה מסוג זה: The query cannot be run for the following DataObject: GetCommonManager (שאגב, GetCommonManager יכול להיות משהו אחר), פשוט לבדוק אם השדה מלא או ריק (סביר להניח שהוא ריק).
או שפשוט להתקשר ליניב חדד, הוא בד"כ פותר כל מה שבלתי פתיר וגם מתקן כל מה שבלתי תקין :)
סופ"ש נעים לכולם.

אין תגובות: