logologo
התחלה
מדריך
פיתוח
תוסף
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
התחלה
מדריך
פיתוח
תוסף
API
logologo
זרימת עבודה
סקירה כללית
התחלה מהירה

טריגר

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

צומת

סקירה כללית

AI

LLM

בקרת זרימה

תנאי
ענף רב-תנאי
לולאה
משתנה
ענף מקבילי
קריאה ל-Workflow
פלט זרימה
מיפוי משתני JSON
השהיה
סיום

חישוב

חישוב
חישוב תאריך
חישוב JSON

פעולת נתונים

הוספת נתונים
עדכון נתונים
שאילתת נתונים
מחיקת נתונים
פעולת SQL

טיפול ידני

טיפול ידני
אישור
העתק

סוג הרחבה

בקשת HTTP
סקריפט JavaScript
התראה
שליחת דוא'ל
תגובה
הודעת תגובה
משתנה
יומן ביצוע
ניהול גרסאות
אפשרויות מתקדמות

פיתוח הרחבות

סקירה כללית
הרחבת סוגי טריגרים
הרחבת סוגי צמתים
API Reference
Previous Pageאירוע לפני פעולה
Next Pageאירוע פעולה מותאם אישית
TIP

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

#אירוע לאחר פעולה

This feature is provided by the plugin «תהליך עבודה: אירוע לאחר פעולה»

#מבוא

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

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

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

#התקנה

זהו תוסף מובנה, אין צורך בהתקנה.

#הגדרת טריגר

#יצירת תהליך עבודה

בעת יצירת תהליך עבודה, בחרו ב"אירוע לאחר פעולה" כסוג:

יצירת תהליך עבודה_טריגר אירוע לאחר פעולה

#מצב ביצוע

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

יצירת תהליך עבודה_בחירת סינכרוני או אסינכרוני

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

#הגדרת אוסף

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

הגדרת תהליך עבודה_בחירת אוסף

#בחירת מצב הפעלה

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

הגדרת תהליך עבודה_בחירת מצב הפעלה

כאשר:

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

במצב מקומי, כפתורי הפעולה התומכים כיום בקשירה הם כדלקמן:

  • כפתורי "שליחה" ו"שמירה" בטופס ההוספה.
  • כפתורי "שליחה" ו"שמירה" בטופס העדכון.
  • כפתור "עדכון נתונים" בשורות נתונים (טבלה, רשימה, קנבן וכו').

#בחירת סוג פעולה

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

#בחירת נתוני קשר טעונים מראש

אם אתם צריכים להשתמש בנתונים הקשורים לנתוני ההפעלה בתהליכים הבאים, תוכלו לבחור את שדות הקשר שיטענו מראש:

הגדרת תהליך עבודה_טעינת קשר מראש

לאחר ההפעלה, תוכלו להשתמש ישירות בנתונים קשורים אלה בתהליך.

#הגדרת פעולה

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

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

אירוע לאחר פעולה_כפתור שליחה

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

אירוע לאחר פעולה_הגדרת קשירת תהליך עבודה_בחירת הקשר

אירוע לאחר פעולה_הגדרת קשירת תהליך עבודה_בחירת תהליך עבודה

הערה

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

#דוגמה

הנה הדגמה באמצעות פעולת יצירה.

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

ראשית, נוכל ליצור אוסף "החזר הוצאות" עם השדות הבאים:

  • שם פרויקט: טקסט בשורה אחת
  • מגיש בקשה: רבים-לאחד (משתמש)
  • סכום: מספר
  • סטטוס: בחירה יחידה ("אושר", "טופל")

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

דוגמה_הגדרת טריגר_בחירת אוסף

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

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

דוגמה_הגדרת כפתור טופס_קשירת תהליך עבודה

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

דוגמה_זרימת טיפול

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

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

#קריאה חיצונית

הפעלת אירועי לאחר פעולה אינה מוגבלת לפעולות ממשק משתמש; ניתן להפעיל אותה גם באמצעות קריאות API HTTP.

הערה

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

עבור תהליכי עבודה הקשורים מקומית לכפתור פעולה, ניתן לקרוא להם כך (באמצעות כפתור היצירה של אוסף ה-posts כדוגמה):

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Hello, world!",
    "content": "This is a test post."
  }'
  "http://localhost:3000/api/posts:create?triggerWorkflows=workflowKey"

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

תהליך עבודה_מפתח_שיטת צפייה

לאחר שהקריאה לעיל תצליח, אירוע לאחר פעולה של אוסף ה-posts המתאים יופעל.

הערה

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

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

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Hello, world!",
    "content": "This is a test post.",
    "category": {
      "title": "Test category"
    }
  }'
  "http://localhost:3000/api/posts:create?triggerWorkflows=workflowKey!category"

לאחר שהקריאה לעיל תצליח, אירוע לאחר פעולה של אוסף ה-categories המתאים יופעל.

הערה

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

#שאלות נפוצות

#הבדל מאירוע לפני פעולה

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

כפי שמוצג בתמונה למטה:

סדר ביצוע פעולות

#הבדל מאירוע אוסף

אירועי לאחר פעולה ואירועי אוסף דומים בכך ששניהם תהליכים המופעלים לאחר שינויי נתונים. עם זאת, רמות היישום שלהם שונות. אירועי לאחר פעולה הם ברמת ה-API, בעוד שאירועי אוסף מיועדים לשינויי נתונים באוסף.

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

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

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