אינטגרציה של מערכות פיננסיות
למה חיבור כספי אינו העברת נתונים אלא יישוב, שתי הדרישות שאי אפשר להוסיף אחר כך, והמקרה שכל אינטגרציה שלישית מטפלת בו לא נכון.
בקצרה
באינטגרציה רגילה המטרה היא שהנתון יעבור. בכספים המטרה היא ששני הצדדים יסתכמו לאותו מספר, וזו דרישה אחרת. שתי דרישות נקבעות בצורת החיבור ואי אפשר להוסיף אותן אחר כך: מזהה ייחודי לכל תנועה עם התעלמות מניסיון חוזר, ושמירת ההודעה המקורית כפי שהתקבלה. והמקרה שנופל בדרך כלל הוא ביטול או זיכוי, כי הוא מגיע אחרי שהמקור נקלט ולעתים אחרי שהחודש נסגר.
העברה נגד יישוב
| השאלה |
אינטגרציה רגילה |
חיבור כספי |
| מה נחשב הצלחה |
ההודעה נקלטה |
שני הצדדים מסתכמים לאותו מספר. קליטה אינה הצלחה |
| מה קורה בכפילות |
לרוב לא נורא. רשומה כפולה שמתקנים |
תנועה כפולה היא כסף. היא מתגלה בהתאמת בנק, בדרך כלל בחודש הבא |
| מה קורה באיבוד |
שולחים שוב |
אי אפשר לשלוח שוב בלי לדעת אם הראשון נקלט. מכאן הצורך במזהה |
| מה נדרש בדיעבד |
לדעת שהנתון עבר |
לדעת למה המספר הזה כך. כלומר לשחזר את החישוב ואת הקלט שלו |
השורה האחרונה היא זו שמפרידה בין חיבור שעובד לבין חיבור שיעבוד עד הבדיקה הראשונה. השאלה «למה המספר הזה כך» נשאלת בכל בדיקה, בכל מחלוקת עם ספק, ובכל סגירת חודש שלא מסתדרת.
שתי דרישות שנקבעות בהתחלה
מזהה ייחודי, והתעלמות מחזרה
כל תנועה נושאת מזהה שנוצר אצל השולח, והמקבל מתעלם ממזהה שכבר ראה. זה פותר את המצב שאין לו פתרון אחר: שלחנו ולא קיבלנו תשובה, ואיננו יודעים אם נקלט.
בלי זה, שתי הדרכים שגויות. שליחה חוזרת מכפילה תנועה, והימנעות מאבדת אותה, ובשני המקרים אף אחד לא יודע עד שההתאמה לא מסתדרת. זו הדרישה הבסיסית בתחום, והיא גם זו שמושמטת הכי הרבה בחיבורים שנבנו בחיפזון.
ההודעה המקורית, כפי שהתקבלה
לא רק מה שנשמר ממנה. המקור השלם, עם המזהה, עם מה שהמערכת עשתה בעקבותיו ועם מתי.
הסיבה מעשית: כשמספר לא מסתדר, השאלה היא אם הטעות בשליחה, בפירוש או בחישוב, ואי אפשר להבדיל בין שלושתן בלי המקור. מערכות ששמרו רק את התוצאה יכולות לספר מה הן חושבות ולא מה קיבלו, וההפרש בין השניים הוא בדיוק הבאג.
ומה שנגזר מזה על מטבע חוץ. סכום שהומר הוא תוצאה של חישוב, ולכן שומרים ארבעה דברים יחד: סכום, מטבע, שער, ותאריך השער. מערכת ששמרה רק את הסכום בשקלים לא תוכל להסביר הפרשי אגורות ביישוב, ואת ההפרשים האלה תחפשו ימים.
הביטול: המקרה שנופל
זה המקרה שאני בודק ראשון בכל חיבור כספי, כי הוא נכשל בתדירות גבוהה ובשקט.
תנועה מבוטלת או זוכה אחרי שהמקור נקלט. שלוש שאלות, ולכל אחת צריכה להיות תשובה בכתב:
- הביטול מבטל את המקור או יוצר תנועה נגדית? בחשבונאות בדרך כלל תנועה נגדית, אבל מערכות תפעוליות נוטות למחוק, וההפרש בין השניים הוא כל ההיסטוריה.
- מה אם החודש נסגר? אז אי אפשר לגעת בתקופה, והביטול חייב להיכנס לתקופה הפתוחה עם קישור למקור. אם אין מנגנון כזה, מישהו יעשה את זה ביד.
- ביטול חלקי? זיכוי על חלק מהסכום, או על חלק מהשורות. זה המקרה שאינטגרציות מטפלות בו הכי פחות, והוא נפוץ.
ובדיקה שאפשר לעשות על חיבור קיים: קחו את הזיכויים של החודש האחרון וראו שכולם מקושרים למקור. מה שלא מקושר הוא עבודה ידנית שמישהו עשה בשקט, והיא גם רשימת הבאגים.
הבדיקה שמכריעה
לא השוואת מספר תנועות. יישוב סכומים על דוח שהעסק מכיר, בשני הצדדים, על אותה נקודת זמן.
הסיבה שספירת תנועות לא מספיקה היא שהיא עוברת גם כששדה פורש לא נכון: מטבע, סימן, או עיגול. מספר תנועות זהה עם סכום שונה הוא בדיוק הכשל שמחפשים, והוא גם זה שהתקנה שלו זולה כשמוצאים אותו מוקדם.
ועוד שאלה שחייבת תשובה בכתב: מי מודיע למישהו שהיישוב לא מסתדר, ובתוך כמה זמן. יישוב שנבדק פעם בחודש על ידי מי שפנוי אינו בקרה. אותו היגיון של תור שנתקע בשקט מתואר גם בחיבור חנות ל-ERP.
הקשר הישראלי
שני דברים משנים את התכנון כאן, ושניהם מעשיים.
הנפקת חשבונית מקבלת מצב מול רשות המס. כלומר היא עשויה להיות איטית, להיכשל או לסרב, ולכן אי אפשר להתייחס אליה כפעולה מקומית שנגמרת מיד. היא צריכה אותו טיפול כמו כל תנועה כספית: תור, מזהה, וניסיון חוזר. על הצד הקולט: עיבוד חשבוניות, ניהול רכש.
הנהלת החשבונות היא צד שלישי שמחייב הסכמה. הקבצים עוברים בפורמטים של השוק המקומי, והגורם שמאשר את הספרים הוא מי שקובע מה רשומה תקינה. חיבור שתוכנן בלי לשבת איתו ייבנה פעמיים.
איך אני עובד על זה
עיסוק בתחום מאז 2004, עבודה על מערכות AI מאז 2023, פרויקטים ללקוחות בארבע עשרה מדינות, חלקם במערכות שבהן מבקר או רגולטור הוא חלק מהדרישה. אני ארכיטקט עצמאי, ולכן «החיבור הקיים תקין, מה שחסר הוא יישוב אוטומטי והתראה» היא מסקנה אפשרית של סקירה, ולא פעם אחת היא גם הנכונה.
מה סקירה מייצרת: בדיקת המזהה הייחודי ושל ההתעלמות מחזרה, בדיקה מה נשמר מההודעה המקורית, שלוש התשובות על ביטול וזיכוי, דוחות היישוב שישמשו קריטריון, ותשובה בכתב למי מודיע כשלא מסתדר.
SLAtech LTD