השהיה בשלבי פרוצדורה

פורומים אפיון ופיתוח פריוריטי השהיה בשלבי פרוצדורה

  • Post
    מאיר
    משתתף
    שלום
    אני רוצה להפעיל פרוצדורה ב TTS , אשר יהיו ב 3 שלבים:

    1. טעינה מטבלת טעינה למסד הנתונים.
    2. הפקד דוח על טבלת טעינה
    3. מחיקת טבלת הטעינה

    כיצד ניתן לוודא כי רק בסיומו של כל שלב יופעל השלב הבא?

מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)
  • Replies
    אלמוני
    אורח
    מה יקרה אם יש תקלה בטעינה מטבלת טעינה? האם אתה רוצה שהפרוצדורה כולה תמשיך?

    אני חושב שצריך ללכת בכיוון ההפוך: לגלות שגיאות ולא להמשיך אם יש.

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

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

    EXECUTE INTERFACE 'TEST_SIF2PART', SQL.TMPFILE, '-L', :$.F1;
    SELECT MESSAGE INTO :PAR1 FROM ERRMSGS
    WHERE USER = SQL.USER AND TYPE = 'i';
    ERRMSG 99 WHERE :RETVAL > 0;

    אפשר להחליף את ERRMSG ב-MAILMSG אבל במקרה כזה, צריך להוסיף פקודת END כדי שהתכנית לא תמשיך אחרי משלוח המכתב.
מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.