יום שני, 12 במאי 2008

InfoPath 2007 - איך לקבל את פרטי המנהל של ממלא הטופס

בזמן האחרון (או קצת לפני?), שמתי לב שיותר ויותר אנשים משתמשים בטפסים אלקטרונים (בתוכנת INFOPATH) אותם אפשר למלא בדפדפן IE בזכות השירות החדש במערכת MOSS - Microsoft Office Sharepoint Server.
בניית טופס בInfoPath 2007 נעשתה יותר קלה מאשר הגרסאות הקודמות לה.
כמו כן, יש אינטגרציה יותר מלאה בין תוכנות האופיס השונות.
למשל, Data Connections, הנושא עליו נדבר כעת.
 
חיפשתי, סרקתי, עיינתי ולא מצאתי: איך לקבל את שם המנהל (או פרטים נוספים עליו) כאשר אני ממלא טופס InfoPath. (למשל לצורך שימוש בשם המנהל בWorkFlow).
 
הפתרון מאוד מאוד פשוט בזכות הWeb Services שמצויים בMOSS.
רשימה של הWeb Services תמצאו כאן:

 http://claytonj.wordpress.com/2007/02/19/wss-30-web-service-reference-guide (תודה לCJ)
 
אנו נשתמש בWeb Service זה:
http://ServerName/_vti_bin/UserProfileService.asmx

 
הסבר מפורט לקבלת פרטים על המשתמש הנוכחי שפתח שבודק או ממלא את הטופס, נמצא כאן: http://blogs.microsoft.co.il/blogs/itaysk/archive/2007/04/05/InfoPath-_2D00_-Get-the-current-user-without-writing-code.aspx (תודה לאיתי שקורי, אמן InfoPath)
 
אז לענייננו.
כפי שרשמתי קודם, ישנו משתמש שממלא טופס ואנו רוצים לקבל את פרטי המנהל של המשתמש שממלא את הטופס ברגע זה.


1. דבר ראשון שנעשה הוא (בהנחה שהטופס מוכן ורק נשאר להוסיף את הData Connection), הוא ליצור Data Connection ע"י לחיצה על "כלים" ולאחר מכן: "חיבורי נתונים".
 
2. לאחר מכן נלחץ על "הוספה". במסך: "צור חיבור חדש עבור" נבחר "קבלת נתונים" ונלחץ על כפתור "הבא".
 
3. במסך הבא: "מהיכן ברצונך לקבל את הנתונים" נבחר: "שירות אינטרנט" ולאחר מכן נלחץ על כפתור "הבא".
 
4. במסך: "פרטי שירות אינטרנט" תחת שדה "הזן את מיקומו של שירות האינטרנט בו ברצונך להשתמש ..." נרשום את מיקום הWeb Service שנרצה להשתמש בו.
    במקרה שלנו, Web Service זה: http://ServerName/_vti_bin/UserProfileService.asmx

    (נא לשים לב שבמקום ServerName יש לרשום את שרת הMOSS שלכם).
 
5. לאחר מכן נקבל רשימה של הפונקציות שנמצאות בתוך Web Service זה. אנו נבחר באפשרות: GetCommon Manager ונלחץ על כפתור "הבא".
 
6. במסך הבא אפשר לבחור אילו פרמטרים להחזיר. נשאיר את הפרטים כפי שהם ונלחץ על כפתור הבא: "הבא".
 
7. נלחץ על כפתור: "הבא" שוב ובמסך אחריו יש לסמן "קבל נתונים אוטומאטי כאשר הטופס נפתח". ונלחץ על כפתור "סיום".
 
בשלב זה יצרנו את הData Connection שבו נשתמש כדי לקבל את פרטיו של המנהל.
 
כדי לראות את הפרטים שאנו רוצים לקבל, נוסיף פקד "תיבת טקסט" מרשימת הפקדים.

 1. נלחץ פעמיים על פקד "תיבת הטקסט" שיצרנו וכך נגיע למאפיינים של הפקד.

 2. יש לתת שם לפקד (לא חובה אבל יותר נוח). למשל: "שם המנהל".

 3. לאחר מכן, נלחץ על כפתור הFX (בשדה "ערך"):

  

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

ברשימה שתתקבל תחת הקבוצה: dataFields, נלחץ על כל הפלוסים "+" כדי להגיע לפרטים של המנהל. כאן תוכלו לראות רשימה של הפרטים שאפשר לקבל.

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

בשלב זה גרמנו לכך שברגע שנפתח את הטופס, "תיבת הטקסט" שקראנו לה: "שם המנהל", אוטומאטית תכיל את שם המנהל של ממלא הטופס (כמובן אם הוא מוגדר בActive Directory בארגון).

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

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

אנו נלחץ על "כן", הטופס ייפתח ו..... הופ'לה: תיבת הטקסט: "שם המנהל", תכיל את שם המנהל של ממלא הטופס.

תגובה 1:

OfirSh אמר/ה...

האם יש לך תשובה לבעיה הזו:
http://forums.microsoft.com/MSDN/Sh
owPost.aspx?PostID=3333386&SiteID=1