› פורומים › אפיון ופיתוח פריוריטי › הפעלת פרוצדורה עם קלט באצווה
- This topic has 9 תגובות, 2 משתתפים, and was last updated לפני 15 שנים, חודש 1 by אלמוני.
- Post
-
- אוקטובר 21, 2009 בשעה 11:36 am
שלום,נדרש להפעיל פרוצדורה עם קלט באצווה
הפרוצדורה מקבלת כקלט נתונים ממספר טבלאות
כמו מק"ט משפחה וכדומה (יכול להיות אוסף ערכים
מאותה טבלה ) ולאחר עיבוד נבנה הדוח.הבנתי שבאצווה לא ניתן לקבל קלט אלא צריך
להכין הפרוצדורה כך שתקבל קלט בצורה אוטומטית.אני מניח שפיתרון אפשרי
הינו להקים מסך שאליו יקלוט המשתמש את
נתוני קלט (ואולי צריך להקים טבלאות עזר במבנה
דומה לטבלאות הקלט לפרוצדורה להרצה)
והפרוצדורה תהיה מקושרת לטבלאות העזר הנ"ל
ואז נפעיל באצווה את הפרוצדורה.
כמו כן נדרש שפלט הדוח ינותב לאימייל
אבל זה כבר פרמטר שקיים בפקודת ההפעלה של הפרוצדורה.אשמח לשמוח דעתכם איך לפתור הבעיה הנ"ל
בצורה טובה יותר ומהירה?תודה רבה
ארז
- Replies
-
- אוקטובר 23, 2009 בשעה 12:59 pm
למה אתה בדיוק קורא "אצווה". (תן שם מסך וטבלה).
במה היא שונה משאר טבלאות המערכת בהקשר של קלט לפרוצדורה ?- אוקטובר 24, 2009 בשעה 8:07 pm
- אוקטובר 25, 2009 בשעה 10:20 am
שלום , בהמשך לנ"ל :איך ניתן להסב פרוצדורה המקבלת קלט מפקודת INPUT
מקבצי LINK המופיעים בפרמטרים לפרוצדורהשבמקום זאת הפרוצדורה
תקבל את הקלט מאותם קבצי ה LINK
הנ"ל אך שיקבלו
ערך ממקור אחר כמו מטבלה אחרת ולא מהמשתמש ישירות.(הבעיה היא שבINPUT אם רושמים שדה וטבלה
חובה לרשום I בקלט ואני מעוניין בפיתרון לרשום השדה והטבלה הנ"ל ללא ה I כדי למלא להם ערכים מבוקשים מטבלה אחרת)זה יאפשר לי להריץ את הפרוצדורה ב SCHEDULE
(כי ההנחה שלי שה SCHEDULE לא מכיר מה שב INPUT )תודה
ארז- אוקטובר 25, 2009 בשעה 6:31 pm
כעקרון היית רוצה לעטוף את הפרוצדורה הקיימת ולהעביר אליה את הרשימות. רק הדבר הזה בלתי אפשרי כי אפשר להעביר רק רשימה אחת בצורה הזאת.לכן יש, בקיצור:
* להעתיק את הפרוצדורה
* יש לבטל את שלב ה-INPUT (לפחות הסימן של I)
* יש להכניס שלב SQLI
* ב-SQLI יש לבצע LINK לטבלאות שמוגדרות בשלב ה-INPUT ולשפוך לתוכם את השורות הנדרשות
* ואז לתת לפרוצדורה להמשיך לרוץכמובן אם מדובר בפרוצדורה סטנדרטית יש לעקוב אחריה לשינויים בחבילות שרות ושדרוגים כי כבר תשתמשו בעותק שיהיה סטטי ולא יקבל עדכונים אלה (וזה היתרון לעיטוף פרוצדורה כשזה אפשרי).
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 25, 2009 בשעה 6:45 pm
תודה על המענה,
עשיתי כבר השלבים הנ"ל :* להעתיק את הפרוצדורה
* יש לבטל את שלב ה-INPUT (לפחות הסימן של I)
* יש להכניס שלב SQLI
* ב-SQLI יש לבצע _link_ לטבלאות שמוגדרות בשלב ה-INPUT ולשפוך לתוכם את השורות הנדרשות
הבעיה היא שבפרמטרים לפרוצדורה במידה ןאין I
לא ניתן לרשום שם שדה ושם טבלהואז ה LINK בSQLI בשלב הבא מטבלה כזו
אינו עובד תקין כלומר
קורא כל הנתונים הקיימים לטבלה הזו כפי שקיימים במערכתללא קשר למה שהוכנס אליה פרטנית בLINK לפני כן.
אודה לעזרתך
ארז- אוקטובר 25, 2009 בשעה 7:09 pm
אני לא כל כך מביןאתה צריך לבטל את ה-I ואם צריך גם את שם העמודה ושם טבלה. זה לא ישפיע. הגדרות האלה קיימות כדי ששלב ה-INPUT א' יצור טבלת לינק של הטבלה הנכונה וב' יציג השדה הנדרש בקלט (אחרת איך יידע?)
בשלב ה-SQLI שלך תבצע לינק לאותם פרמטרים. עד שתבצע לינק בעצמך לא יהיה "קובץ" כלל כי ביטלת את הקלט. הלינק שלך יהיה רק. עליך לשפוך לשם שורות רלוונטיות. יש לבצע את הלינק אם alias כדי שאפשר להתייחס לטבלה האמיתי בשמה אחרת להשתמש ב-alias – נהוג ORIG כך שאין אי הבנה 🙂
לדוגמה:
[code:1]
LINK CUSTOMERS C TO :$.PAR ;
ERRMSG 500 WHERE :RETVAL[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 25, 2009 בשעה 7:13 pm
- אוקטובר 25, 2009 בשעה 7:13 pm
סליחה הפורום מקטע את הקוד שלי ואין לי כח לרשום פעם שלישית
המלל הספיק לעזור לך?[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 26, 2009 בשעה 10:51 am
- יש להתחבר למערכת על מנת להגיב.