Yoni Goldberg

SharePoint Expert, Human Workflow specialist. WWW.GOLDBERGYONI.COM

What is the best way to connect to custom database using BCS?

with 3 comments

There are times when you want to connect from SharePoint to some custom database (DB2, Oracle, Siebel, TeraData, your BPM suite, and so on.) using Business Connectivity Services (BCS), unfortunately out-of-the-box only SQL server is supported, in order to connect to other vendors some effort is required and few techniques (Creating web service, .Net connectivity assembly or crafting the BCS xml model file manually) can be employed. Each different technique carry some limitations and strengths, following is a comparison table which may ease your decision.

Read the rest of this entry »

Written by Yoni Goldberg

December 28, 2011 at 7:56 pm

מעל 40 טיפים לפיתרון מוצלח, חלק 3 מתוך 4-SharePoint Workflow

with 3 comments

 

לחץ כאן לחלק 1 –טיפים ליישום ללא קוד
לחץ כאן לחלק 2 –עוד טיפים ליישום ללא קוד
לחץ כאן לחלק 3 – אפילו עוד טיפים ליישום ללא קוד
לחץ כאן לחלק 4 – טיפים לפיתוח באמצעות קוד

 

19. clip_image002_thumb טיפ מספר 19: צור רשימת משימות באמצעות FEATURE

במערכת מהסוג הזה ישנם הרבה דפים שמציגים מידע מרשימת המשימות (דו”חות, הצגת המשימות האישיות לכל משתמש, הצגת המשימות לכל בקשה וכו’), לעתים רבות קורה שבמהלך הפיתוח או לאחר עליית המערכת לאוויר רוצים להחליף את רשימת המשימות (למשל אם משהו השתבש ברשימה הקיימת) לרשימה אחרת אלא שאז כל הדפים שמתשאלים את רשימת המשימות “נשברים” היות והרשימה שאליה הם פנו כבר לא רלוונטית. ראיתי מקרים בהם היו צריכים לשנות דפים רבים רק בגלל החלפת רשימת משימות. לכן מתוך דפים שמתשאלים את רשימת המשימות כדאי לפנות באמצעות שם הרשימה ולא ה-GUID. אולם ישנם מקרים בהם נהיה חייבים להשתמש ב-GUID לדוגמא כשאנו טוענים את דף העריכה של משימה אחד הפרמטרים שיש להעביר לדף הוא ה-GUID של רשימת המשימות ולכן כדאי ליצור את רשימת המשימות לא ידנית אלא באמצעות FEATURE – באופן זה נוכל תמיד ליצור את אותה רשימה עם אותו שם וגם אותו GUID וכך שרוצים ליצור רשימת משימות חדשה פשוט מוחקים את הישנה ומפעילים את ה-FEATURE מחדש.

Read the rest of this entry »

מעל 40 טיפים לפיתרון מוצלח, חלק 4 מתוך 4-SharePoint Workflow

with 3 comments

 
 
בחלק זה טיפים לפיתוח באמצעות קוד
לחץ כאן לחלק 1 –טיפים ליישום ללא קוד
לחץ כאן לחלק 2 –עוד טיפים ליישום ללא קוד
לחץ כאן לחלק 3 – אפילו עוד טיפים ליישום ללא קוד
לחץ כאן לחלק 4 – טיפים לפיתוח באמצעות קוד
 
27. clip_image002 טיפ מספר 27: הזהר מזרימה של מכונת מצבים (State Machine)

אמנם נכון ש-VS מאפשר לך לפתח מכונת מצבים ל-SHAREPOINT אבל שים לב למגבלה חמורה לפני שאתה יוצא אל הדרך: אין באפשרותך ליצור סבב אישורים של כמה אנשים בתוך זרימת מצבים, כלומר לא תוכל למשל להגדיר 2 מצבים: מצב אחד בו קבוצת מנהלים א’ מאשרת ולאחר שהם אישרו הבקשה עוברת למנהל על.

28.  clip_image002 טיפ מספר 28: תהליך שיודע לחזור לאחור
חזרה לאחור בתהליך היא בקשה מבוקשת למדי אולם זרימת עבודה סידרתית (SEQUENTIAL WORKFLOW) אינה תומכת בה באופן טבעי, אפשר אמנם לממש דרישה כזו באמצעות STATE MACHINE אך לשיטה זו מגבלות חמורות יותר. אז מה בכל זאת עושים? תוכל להשתמש בלולאה ולשים בה את כל הפעילויות, בכל פעם שמישהו רוצה להחזיר לאחור נתחיל שוב את הלולאה. הכי קל להסביר עם דוגמא: נניח ויש 4 מנהלים המאשרים אחד אחרי השני. כל מנהל יכול לבקש להחזיר את התהליך לאחור. נשים את כל המנהלים בתוך לולאה (כל מנהל מאשר הוא למעשה פעילות של יצירת משימה שלאחריה פעילות של הקשבה לשינוי במשימה) שתנאי הסיום של הלולאה יהיה שכל המנהלים אישרו או שאחד דחה, כלומר הלולאה תרוץ כל עוד יש מנהלים שצריכים לאשר. עכשיו נניח שמנהל מספר 3 מבקש להחזיר את התהליך למנהל מספר 2, התהליך ממשיך קדימה למנהל מספר 4 אך לא נכנס לשלב זה (על ידי השמת תנאי) היות ואנו צריכים לחזור למנהל מספר 2, כעת הלולאה תתחיל שוב, נדלג על מנהל 1(על ידי השמת תנאי) ונגיע למנהל מספר 2 – בדיוק מה שרצינו.

clip_image006

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

Read the rest of this entry »

Written by Yoni Goldberg

November 27, 2011 at 8:43 am

Posted in Uncategorized

מעל 40 טיפים לפיתרון מוצלח, חלק 2 מתוך 4-SharePoint Workflow

with 6 comments

לחץ כאן לחלק 1 –טיפים ליישום ללא קוד
לחץ כאן לחלק 2 –עוד טיפים ליישום ללא קוד
לחץ כאן לחלק 3 – אפילו עוד טיפים ליישום ללא קוד
לחץ כאן לחלק 4 – טיפים לפיתוח באמצעות קוד

 

10. clip_image008_thumb[1] טיפ מספר 10: תן למעצבי התהליך ב-VISIO סביבת עבודה

אם קיימים באירגון אנליסטים/מעצבים/מיישמים שמעצבים את מודל זרימת עבודה ב-VISIO, למודל עשויות להיות גירסאות רבות, כמה עורכים במקביל ודיונים – מה יותר מתאים מלשמור את מודל זרימת העבודה כמסמך באתר SHAREPOINT ואפילו ליצור סביבת עבודה למסמך (Document Workspace)? באופן זה תהנה מכל יכולות ה-COLLABORATION של ניהול מסמכים בעיצוב זרימת העבודה. מעבר לזה, כל המשתתפים בעיצוב התהליך יוכלו לראות את זרימת העבודה ללא צורך בתוכנה על המחשב ישירות מתוך הדפדפן. בנוסף, כאשר מעצב תהליך יסיים, אפשר להגדיר שגורם בכיר יאשר לו את זרימת העבודה (WF ש ירוץ על המסמך).

clip_image004_thumb[1]

סביבת עבודה לקובץ עם מודל זרימת עבודה ב-VISIO

clip_image006_thumb[1]

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

 

11. clip_image003 טיפ מספר 11: שמירת טיוטא של מסמך/טופס ובחירה מתי להתחיל סבב אישורים

אנו נרצה לאפשר למשתמש שלנו שרוצה למלא טופס או מסמך (למשל בקשת חופשה) לבצע שמירה מבלי להתחיל סבב אישורים. למה? כי לפעמים לוקח יומיים או שבוע למלא בקשה ובטרם הבקשה מוכנה לא נרצה להתחיל בסבב אישורים. כשהבקשה תהיה מוכנה המשתמש ילחץ על כפתור מתוך הטופס להתחיל סבב אישורים. באופן טבעי דרישה כזו נפתרת על ידי ‘הפעלה ידנית של זרימת עבודה’ (כלומר לא להגדיר שזרימת עבודה תחל בעת שמירה של פריט אלא רק בהפעלה ידנית) אך זה דורש להוציא את המשתמש מהחוויה של הטופס וללמוד להפעיל זרימת עבודה במערכת SHAREPOINT. רוב הלקוחות לא יאהבו את זה. אז מה עושים? (1) מגדירים ברשימה שדה בשם IsDraft שאומר האם הטופס במצב טיוטא, בהתחלה ערכו של השדה חיובי (2) נגדיר שזרימת העבודה מתחילה בעת שמירה של פריט (כלומר מתחילה מייד כשנוסף פריט חדש). באופן זה כאשר המשתמש שומר טיוטא התהליך כבר התחיל (3) בתוך התהליך בהתחלה נאזין לערך השדה IsDraft ולא נתקדם קדימה עד שערכו ישתנה לערך שלילי. באופן זה ניתן למשתמש להתחיל את סבב האישורים כשנוח לו מבלי לצאת מהטופס.

 

Read the rest of this entry »

מעל 40 טיפים לפיתרון מוצלח, חלק 1 מתוך 4-SharePoint Workflow

leave a comment »

 

הקדמה קצרה

לפניכם מעל 40 טיפים לביצוע HUMAN WORKFLOW מוצלח ואיכותי בסביבת SHAREPOINT. חלק גדול מהמערכות שלקוחות מבקשים בסביבת SHAREPOINT הן מערכות שנועדו לנהל תהליך או מקרה (Case) עיסקי: החלטה על מתן הלוואה, אישור חופשה, סקירת איכות קוד של מתכנת, בקשת העלאת שכר, קבלת עובד חדש, הזמנת טיסה, צירוף ספק, תיכנון ישיבת הנהלה ואפשר בקלות להביא מאות דוגמאות לבקשות דומות. בשנים האחרונות אני מתמחה בפיתרונות מהסוג הזה לאירגונים, הן בהיבט הטכנולוגי והן בהיבט העיסקי ובכתבה שלפניכם תמצאו טיפים המחולקים ל-4 חלקים:

· בחלק 1, 2 ו-3 תמצאו טיפים הקשורים ליישום ללא קוד של פיתרונות, לדוגמא טיפ מספר 5# שעשוי לחסוך לכם זמן רב, או טיפ מספר 7# שממש יכול להציל אתכם ממצב לא נעים וטיפ מספר 15# שיכול לסחוט מהלקוח קריאת התפעלות.

· בחלק 4 תמצאו טיפים הקשורים לפיתוח בקוד, שימו לב לטיפ מספר 33# שעשוי ליצור עבורכם פיתרון עם ארכיטקטורה איכותית וקלה יותר לתחזוקה.

לחץ כאן לחלק 1 –טיפים ליישום ללא קוד
לחץ כאן לחלק 2 –עוד טיפים ליישום ללא קוד
לחץ כאן לחלק 3 – אפילו עוד טיפים ליישום ללא קוד
לחץ כאן לחלק 4 – טיפים לפיתוח באמצעות קוד

 

חלק 1 – טיפים ליישום ללא קוד

1. clip_image002 טיפ מספר 1: ליצירת משימות בתהליך השתמש ב-Custom Task Process
נתבקשת להקצות משימה לאדם או לקבוצת אנשים באופן סידרתי או במקביל. ב-SharePoint Designer קיימים מספר ACTIONS ליצירת משימה או סבב אישורים. כשמדובר ביצירת משימה בודדת לגורם אחד – אנו עשויים להתפתות להשתמש בפעולות מסוג-COLLECT DATA או ב-Assign a To-Do Item (המוכרים לנו מגירסת 2007) היות והם כביכול מיועדים למשימה פשוטה, אולם גם כשאנו יוצרים משימה לאדם בודד יתכן וסביר שהלקוח שלנו יבקש דברים מורכבים יותר בעתיד כמו: להגדיר SLA (זמן תגובה מקסימלי לאישור משימה), או לאפשר לעובד להעביר את המשימה לאדם אחר. Custom Task Process יוכל לתמוך בכל המצבים האלה ולכן הכי בטוח לצאת איתו אל הדרך. שימוש בפעולה זו תבטיח לך שתוכל בעתיד לתמוך ברוב הדרישות שיעלו.

Start Approval Process ו-Start Feedback Process הם אחים של ה-ACTION הזה וגם הם יוכלו לתמוך במצבים מתקדמים.

clip_image004

הוספת Custom Task Process

2. clip_image005 טיפ מספר 2: פתח את האתר באנגלית, שנה לעברית לאחר מכן
אם תפתח את האתר עליו הינך עובד בעברית, כל ה-ACTIONS של זרימת העבודה ב-SHAREPOINT DESIGNER יופיעו בעברית. סביר להניח שלא תבין חלק גדול מהתירגומים המוזרים (בחן את עצמך: מה הוא "תהליך משימה מותאם אישית"?…), כשיהיו לך תקלות לא תוכל לחפש במנוע חיפוש עזרה כי כל המידע יהיה בעברית. לפיכך, כדאי לפתוח האתר באנגלית,
ואז במידת הצורך להוסיף את השפה העברית, במקרה כזה ה-ACTIONS ימשיכו להיות באנגלית.

Read the rest of this entry »

SharePoint keyboard productivity tips

leave a comment »

This post is about making your keyboard boost SharePoint navigation and document launching. I’ll show you how use a tool called ‘Launchy’ to open SharePoint documents really fast, provide some useful SharePoint keyboard shortcuts (do you know how to view ‘all site content’ without touching the mouse?) and end up with a CodePlex solution which makes  ‘site settings’ page much more accessible.

Read the rest of this entry »

Workflow feedback process – granting one user (the pivot) to decide for all

leave a comment »

In feedback process (where multiple users are assigned a feedback task), a typical pattern is that one user is the manager (“the pivot”) of the process, everybody else can set their decisions but no decision stops the process, the pivot is the only one who can set the final decision and stop the process. If few participants hadn’t set their decision while the pivot fills his feedback task – their task will be cancelled. In this article I will show how to implement this in SharePoint designer 2010 (without any code, of course).

Read the rest of this entry »

Written by Yoni Goldberg

October 4, 2011 at 9:05 am