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

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

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

לאחר הפעלת אירוע אוסף, שורת הנתונים שיצרה את האירוע תוזרק לתוכנית הביצוע כנתוני הקשר (context) של ההפעלה, כדי שצמתים עוקבים בתהליך העבודה יוכלו להשתמש בה כמשתנים. אך כאשר צמתים עוקבים ירצו להשתמש בשדות הקשר של נתונים אלה, עליכם להגדיר תחילה טעינה מוקדמת של נתוני הקשר. נתוני הקשר שנבחרו יוזרקו יחד עם ההפעלה לתוך ההקשר ויהיה ניתן לבחור ולהשתמש בהם באופן היררכי.
אירועי אוסף אינם תומכים כרגע בהפעלה באמצעות פעולות נתונים בכמות גדולה. לדוגמה, בעת יצירת מאמר והוספה בו-זמנית של מספר תגיות לאותו מאמר (נתוני קשר מסוג אחד-לרבים), רק תהליך העבודה ליצירת המאמר יופעל. התגיות הרבות שנוצרו בו-זמנית לא יפעילו את תהליך העבודה ליצירת תגיות. בעת קישור או הוספה של נתוני קשר מסוג רבים-לרבים, גם תהליך העבודה עבור טבלת הביניים לא יופעל.
פעולות על אוספים באמצעות קריאות HTTP API לממשק היישום יכולות גם הן להפעיל אירועים מתאימים. אך אם שינויי נתונים מתבצעים ישירות באמצעות פעולות מסד נתונים במקום דרך יישום NocoBase, לא ניתן יהיה להפעיל את האירועים המתאימים. לדוגמה, טריגרים מקוריים של מסד הנתונים לא יהיו מקושרים לתהליכי עבודה ביישום.
בנוסף, שימוש בצומת פעולת SQL לביצוע פעולות על מסד הנתונים שקול לפעולות ישירות על מסד הנתונים, ולא יפעיל אירועי אוסף.
תהליכי עבודה תומכים במקורות נתונים חיצוניים החל מגרסה 0.20. אם אתם משתמשים בתוסף של מקור נתונים חיצוני ואירוע האוסף מוגדר עבור מקור נתונים חיצוני, כל עוד פעולות הנתונים על מקור נתונים זה מתבצעות בתוך היישום (כגון יצירה, עדכון ופעולות נתונים של תהליך עבודה על ידי משתמשים), ניתן להפעיל את אירועי האוסף המתאימים. אך אם שינויי הנתונים מתבצעים באמצעות מערכות אחרות או ישירות במסד הנתונים החיצוני, לא ניתן יהיה להפעיל אירועי אוסף.
ניקח לדוגמה את התרחיש של חישוב המחיר הכולל והפחתת המלאי לאחר יצירת הזמנה חדשה.
ראשית, ניצור אוסף מוצרים ואוסף הזמנות עם מודלי הנתונים הבאים:
| שם שדה | סוג שדה |
|---|---|
| שם מוצר | טקסט בשורה אחת |
| מחיר | מספר |
| מלאי | מספר שלם |
| שם שדה | סוג שדה |
|---|---|
| מזהה הזמנה | מספר סידורי |
| מוצר הזמנה | רבים-לאחד (מוצרים) |
| סך הכל הזמנה | מספר |
ונוסיף נתוני מוצרים בסיסיים:
| שם מוצר | מחיר | מלאי |
|---|---|---|
| iPhone 14 Pro | 7999 | 10 |
| iPhone 13 Pro | 5999 | 0 |
לאחר מכן, ניצור תהליך עבודה המבוסס על אירוע אוסף ההזמנות:

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

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