מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית
כל שינויי הנתונים שמבצעים משתמשים במערכת מתבצעים בדרך כלל באמצעות פעולה, שלרוב באה לידי ביטוי בלחיצה על כפתור. כפתור זה יכול להיות כפתור שליחה בטופס, או כפתור פעולה בבלוק נתונים. אירוע לאחר פעולה משמש לקשירת תהליכי עבודה רלוונטיים לפעולות של כפתורים אלה, כך שתהליך ספציפי יופעל לאחר השלמת פעולת המשתמש בהצלחה.
לדוגמה, בעת הוספה או עדכון של נתונים, משתמשים יכולים להגדיר את האפשרות "קשירת תהליך עבודה" עבור כפתור. לאחר השלמת הפעולה, תהליך העבודה הקשור יופעל.
ברמת המימוש, מכיוון שטיפול באירועי לאחר פעולה מתבצע בשכבת הביניים (מידלוור של Koa), קריאות API HTTP ל-NocoBase יכולות גם הן להפעיל אירועי לאחר פעולה מוגדרים.
זהו תוסף מובנה, אין צורך בהתקנה.
בעת יצירת תהליך עבודה, בחרו ב"אירוע לאחר פעולה" כסוג:

עבור אירועי לאחר פעולה, ניתן גם לבחור את מצב הביצוע כ"סינכרוני" או "אסינכרוני" בעת יצירתו:

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

לאחר מכן בחרו את מצב ההפעלה, שיכול להיות מקומי או גלובלי:

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

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

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


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

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

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

בהתעלם מהטיפול העוקב של מחלקת הכספים, הגדרת תהליך בקשת החזר ההוצאות הושלמה כעת. כאשר עובד ממלא ושולח בקשת החזר, תהליך העבודה המתאים יופעל. אם סכום ההוצאה נמוך מ-500, רשומה תיווצר אוטומטית ותמתין לטיפול נוסף על ידי הכספים. אחרת, היא תיבדק על ידי מנהל, ולאחר האישור, גם רשומה תיווצר ותועבר לכספים.
התהליך בדוגמה זו יכול להיות מוגדר גם על כפתור "שליחה" רגיל. ניתן להחליט אם ליצור רשומה תחילה לפני ביצוע תהליכים עוקבים, בהתבסס על התרחיש העסקי הספציפי.
הפעלת אירועי לאחר פעולה אינה מוגבלת לפעולות ממשק משתמש; ניתן להפעיל אותה גם באמצעות קריאות API HTTP.
בעת הפעלת אירוע לאחר פעולה באמצעות קריאת API HTTP, עליכם לשים לב גם למצב ההפעלה של תהליך העבודה ולהתאמה של הגדרת האוסף, אחרת הקריאה עלולה להיכשל או שתתרחש שגיאה.
עבור תהליכי עבודה הקשורים מקומית לכפתור פעולה, ניתן לקרוא להם כך (באמצעות כפתור היצירה של אוסף ה-posts כדוגמה):
כאשר פרמטר ה-URL triggerWorkflows הוא מפתח תהליך העבודה, עם מספר תהליכי עבודה המופרדים בפסיקים. מפתח זה ניתן להשיג על ידי ריחוף העכבר מעל שם תהליך העבודה בחלק העליון של קנבס תהליך העבודה:

לאחר שהקריאה לעיל תצליח, אירוע לאחר פעולה של אוסף ה-posts המתאים יופעל.
מכיוון שקריאות חיצוניות צריכות להתבסס גם על זהות משתמש, בעת קריאה באמצעות API HTTP, בדומה לבקשות הנשלחות מהממשק הרגיל, יש לספק פרטי אימות, כולל כותרת הבקשה Authorization או פרמטר token (הטוקן המתקבל לאחר התחברות), וכותרת הבקשה X-Role (שם התפקיד הנוכחי של המשתמש).
אם אתם צריכים להפעיל אירוע עבור נתוני קשר מסוג אחד-לאחד בפעולה זו (אחד-לרבים אינו נתמך עדיין), תוכלו להשתמש ב-! בפרמטר כדי לציין את נתוני ההפעלה של שדה הקשר:
לאחר שהקריאה לעיל תצליח, אירוע לאחר פעולה של אוסף ה-categories המתאים יופעל.
אם האירוע מוגדר במצב גלובלי, אין צורך להשתמש בפרמטר ה-URL triggerWorkflows כדי לציין את תהליך העבודה המתאים. קריאה פשוטה לפעולת האוסף המתאימה תפעיל אותו.
כפי שמוצג בתמונה למטה:

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