הפעלת פרוצדורה עם קלט באצווה

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

  • Post
    אלמוני
    אורח
    שלום,

    נדרש להפעיל פרוצדורה עם קלט באצווה

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

    הבנתי שבאצווה לא ניתן לקבל קלט אלא צריך
    להכין הפרוצדורה כך שתקבל קלט בצורה אוטומטית.

    אני מניח שפיתרון אפשרי

    הינו להקים מסך שאליו יקלוט המשתמש את

    נתוני קלט (ואולי צריך להקים טבלאות עזר במבנה

    דומה לטבלאות הקלט לפרוצדורה להרצה)

    והפרוצדורה תהיה מקושרת לטבלאות העזר הנ"ל

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

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

    אשמח לשמוח דעתכם איך לפתור הבעיה הנ"ל
    בצורה טובה יותר ומהירה?

    תודה רבה
    ארז

מוצגות 9 תגובות – 1 עד 9 (מתוך 9 סה״כ)
  • Replies
    Lior
    מנהל בפורום
    למה אתה בדיוק קורא "אצווה". (תן שם מסך וטבלה).
    במה היא שונה משאר טבלאות המערכת בהקשר של קלט לפרוצדורה ?
    אלמוני
    אורח
    הכוונה להפעלת פרוצדורה בSCHEDULE
    אלמוני
    אורח
    שלום , בהמשך לנ"ל :

    איך ניתן להסב פרוצדורה המקבלת קלט מפקודת INPUT
    מקבצי LINK המופיעים בפרמטרים לפרוצדורה

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

    (הבעיה היא שבINPUT אם רושמים שדה וטבלה
    חובה לרשום I בקלט ואני מעוניין בפיתרון לרשום השדה והטבלה הנ"ל ללא ה I כדי למלא להם ערכים מבוקשים מטבלה אחרת)

    זה יאפשר לי להריץ את הפרוצדורה ב SCHEDULE
    (כי ההנחה שלי שה SCHEDULE לא מכיר מה שב INPUT )

    תודה
    ארז

    yitzchok
    משתתף
    IL
    כעקרון היית רוצה לעטוף את הפרוצדורה הקיימת ולהעביר אליה את הרשימות. רק הדבר הזה בלתי אפשרי כי אפשר להעביר רק רשימה אחת בצורה הזאת.

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

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    אלמוני
    אורח
    תודה על המענה,
    עשיתי כבר השלבים הנ"ל :

    * להעתיק את הפרוצדורה

    * יש לבטל את שלב ה-INPUT (לפחות הסימן של I)

    * יש להכניס שלב SQLI

    * ב-SQLI יש לבצע _link_ לטבלאות שמוגדרות בשלב ה-INPUT ולשפוך לתוכם את השורות הנדרשות

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

    ואז ה LINK בSQLI בשלב הבא מטבלה כזו
    אינו עובד תקין כלומר
    קורא כל הנתונים הקיימים לטבלה הזו כפי שקיימים במערכת

    ללא קשר למה שהוכנס אליה פרטנית בLINK לפני כן.

    אודה לעזרתך
    ארז

    yitzchok
    משתתף
    IL
    אני לא כל כך מבין

    אתה צריך לבטל את ה-I ואם צריך גם את שם העמודה ושם טבלה. זה לא ישפיע. הגדרות האלה קיימות כדי ששלב ה-INPUT א' יצור טבלת לינק של הטבלה הנכונה וב' יציג השדה הנדרש בקלט (אחרת איך יידע?)

    בשלב ה-SQLI שלך תבצע לינק לאותם פרמטרים. עד שתבצע לינק בעצמך לא יהיה "קובץ" כלל כי ביטלת את הקלט. הלינק שלך יהיה רק. עליך לשפוך לשם שורות רלוונטיות. יש לבצע את הלינק אם alias כדי שאפשר להתייחס לטבלה האמיתי בשמה אחרת להשתמש ב-alias – נהוג ORIG כך שאין אי הבנה 🙂

    לדוגמה:

    [code:1]
    LINK CUSTOMERS C TO :$.PAR ;
    ERRMSG 500 WHERE :RETVAL

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    אלמוני
    אורח
    תודה רבה על ההסבר המצויין

    אבדוק זאת

    ארז 🙂

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

    נפתרה הבעיה שנבעה מאי שימוש ב ORIG במקום המתאים.

    תודה רבה
    ארז

מוצגות 9 תגובות – 1 עד 9 (מתוך 9 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.