הודעת אזהרה בהרצת פרוצדורה

פורומים אפיון ופיתוח פריוריטי הודעת אזהרה בהרצת פרוצדורה

  • Post
    רועי זלוף
    משתתף
    שלום,
    ישנה פרוצדורה לסגירת חשבוניות – CLOSEANINVOICE.
    איך אפשר להוסיף לה הודעת אזהרה? כלומר לאחר לחיצה על הפרוצדורה שתופיע הודעת אזהרה?

    תודה.

מוצגות 15 תגובות – 1 עד 15 (מתוך 22 סה״כ)
  • Replies
    yitzchok
    משתתף
    IL
    אין צורך לעשות שינוי בפרוצדורה (וגם לא ניתן כי מדובר בפרוצדורה סטנדרטית)

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

    מקווה שזה יענה על הדרישה

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    רועי זלוף
    משתתף
    תודה, אך התכוונתי להודעת אזהרה נוספת, שבה אכתוב מלל חופשי.
    אני יכול לשכפל את הפרוצדורה, ולבצע בה את השינוי הנדרש.
    yitzchok
    משתתף
    IL
    לא נראה לי שיש לך ברירה.

    בדרך אגב:

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    רועי זלוף
    משתתף
    אוקיי, אז מה אני עושה? 🙂
    yitzchok
    משתתף
    IL
    שכפל אותה.

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

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    רועי זלוף
    משתתף
    אבל איך אני יכול להוסיף בפועל את הודעת האזהרה לפרוצדורה החדשה שיצרתי.
    yitzchok
    משתתף
    IL
    לא הבנתי שזאת השאלה…

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

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

    להלן רשימה של פרוצדורות בהן יש שימוש ב-PRINTCONT – אולי יעזרו לך להבין איך להשתמש בו. (הרשימה באה מגרסה 15 כי רק לזה יש לי גישה נוחה כרגע, אבל זה צריך להספיק)

    ADJREP
    BACKLOG
    FEEDBACK
    PADJREP
    RUNFSTATEMENT
    MRP
    MRPDEMANDS_OLD
    PREPHEBENGDICT
    RUNFSTATEMENT2
    WINOUTLOOK_OLD
    LOADORDMIGRATION
    LOADPARTMIGRATION
    LOADCUSTMIGRATION
    LOADCUSTPHONEBOOKMIG
    LOADSUPMIGRATION
    LOADSUPPLMIGRATION
    LOADSUPPHONEBOOKMIG
    LOADCUSTPLMIGRATION
    LOADCUSTPARTMIG
    LOADSUPPARTMIG
    LOADMNFPARTMIG
    LOADALTPARTMIG
    LOADPORDMIGRATION
    LOADDOCCMIGRATION
    LOADPARTTREEMIG
    LOADLOCATIONSMIG
    LOADDOCPMIGRATION
    LOADFNCMIGRATION
    LOADACCOUNTSGENERAL
    LOADEXTTRANSq
    LOADUSERSMIG
    LOADUSERSBWORKHOURS
    UNFINALDOC_C
    LOADSALARYTRANS
    LOADUSERSBSALARY
    LOADOLDTAXES
    LOADUSERBMIG
    LOADUSERCHILDREN

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    הילה
    משתתף
    אתה יכול להוסיף שאילתא (SQLI) לפני הרצת הפרוצדורה.
    ובה לעשות את הבדיקות שאתה צריך.
    רועי זלוף
    משתתף
    תודה רבה, אך איני יודע כיצד לשפוך את ההודעה לפרמטר משלב SQLI.
    אפשר לקבל הדרכה קטנה בנושא?

    רועי.

    הילה
    משתתף
    אתה כאילו עוקף את הפרוצדורה.
    מייצר שאילתא של הבדיקה שברצונך לעשות נניח ותוצאת הבדיקה בשאילתא שביצעת תהייה Y/N לתוך משתנה X ואם הערך הוא Y אתה רוצה להציג אזהרה.
    אתה מייצר בהודעות לפרודורה את ההודעה שתרצה למשל הודעה מספר 1000 שגיאה!
    ובשלב הSQLI את רושם WRNMSG 1000 WHERE :X = 'Y';
    רועי זלוף
    משתתף
    אני לא רוצה אפילו לבצע בדיקה.
    אני רוצה להציג את הודעת האזהרה הפעלת הפרוצדורה.
    הכנסתי הודעה מספר 300, ולאחר מכן הכנסתי בשאילתת ה-SQLI את השורה הזו: WRNMSG 300;
    זה לא עבד לי.
    עדיין אני צריך להכניס את השלב PRINTCONT?
    yitzchok
    משתתף
    IL
    Royzluf כתב:

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

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    רועי זלוף
    משתתף
    ניסיתי גם להשתמש ב-PRINTCONT, אך לא עבד.
    הרצתי את הפרוצדורות האחרות שהשלב נמצא בהן, והן גם לא הציגו הודעת אזהרה.
    ניסיתי להכניס פרמטר MSG כסוג ASCII, CHAR ו-RCHAR.
    וגם פרמטר WRN עם כל הסוגים.

    ועדיין הפרוצדורה לא נתנה לי הודעת אזהרה.

    yitzchok
    משתתף
    IL
    אני רואה שברוב הפרוצדורות הצגת ההודעה מותנית במשהו.

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

    ניסית את הפרוצדורה PREPHEBENGDICT? שם ההודעה עולה מיד.

    או אולי הדרישה שלך ב"הודעת אזהרה" מאוד ספציפית וגם ההודעה שבפרוצדורה הנ"ל לא עונה עליה?

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yoram
    משתתף
    זה דיי פשוט , אין צורך בלהסתבך עם כל מיני פרוצדורות אחרות.
    תוסיף אחרי שלב הקלט שלב SQLI ותכתוב בתוכו :
    ERRMSG 900 WHERE
    ואת התנאי שלך להופעת הודעת השגיאה .
    עשיתי את זה אצלי בדיוק באותה תוכנית שאתה רוצה רק עם תנאים שמתאימים לנו .
מוצגות 15 תגובות – 1 עד 15 (מתוך 22 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.