תפריט נגישות

כיצד נתמודד עם אתגר הסבת הנתונים למערכת ה-ERP החדשה?

האם אתם מכירים מנהל פרויקט ERP שלא נאנח מהשאלה: "מה המצב אצלך עם הסבות הנתונים?".

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

אולם עד כה הזכרתי את המושג "מערכות", אך מה לגבי ה"מידע" עצמו?

הרי במערכות-"מידע" עסקינן, וללא המידע עצמו השלם והמדויק,  מה טיב המערכת כולה?

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

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

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

כאן המקום לשאול את שאלת ה"מיליון דולר", כיצד עושים זאת?" כיצד נבצע תהליך מבוקר של העברת נתונים שלמה ומדויקת ממערכת ה- legacy למערכת ה- ERP תוך כדי שמירה על לוח הזמנים, בקרת שגיאות מרבית ותיעוד מהלכי הטעינה?

ביום בהיר אחד לפני כ-3 שנים, לאחר כוס קפה חם, התחלתי לפתח מערכת אחת ייעודית שתפקידה יהיה לתת מענה למכלול הצרכים המיוחדים של הסבת הנתונים למערכת ERP.

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

בשלב זה  אפרט את הבעיות המרכזיות בהסבת נתונים ואת פתרונות המערכת:

הבעיה - טעינה חלקית של ישויות מורכבות-

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

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

ע"י כך ניתן למנוע טעינה לא רצויה או חלקית של ישויות מורכבות.

הבעיה  -  שליטה על טעינת רשומות בודדות או טעינה במנות קצובות.

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

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

 הבעיה - כיצד לשמור את הודעות השגיאה ולרכז את הרשומות השגויות.

מערכות ERP משתמשות במגוון שיטות לטעינה נתונים (interface tables, API etc.).

מגוון השיטות מקשה על המשתמש בבניית קובץ הנתונים בהתאם למבנה הנדרש,

בקליטת הקובץ ל- ERP ובארגון ובקרת השגיאות המתקבלות מהטעינה.

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

הבעיה - כיצד לשמור את הודעות השגיאה ולרכז את הרשומות השגויות.

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

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

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

היבטים נוספים לנושא ההסבות נתונים

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

מהמערכת ניתן להפיק קבצים של רשימות ערכים מה- ERP על מנת שישמשו כעזרה והכוונה בבניית קבצי הנתונים לטעינה, ויתנו כלי נוסף לבדיקה מקפת של המיישמים על ה- SETUP של ה- ERP.

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

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

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

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

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

האם אתם מכירים מנהל פרויקט ERP  שלא ישמח לכך?

כותב המאמר: טל שקד

 ליצירת קשר:

Tal_s@malam.com

050-5427380.

פרסום באתר