› פורומים › אפיון ופיתוח פריוריטי › שליחת דוחות אוטומטיים
- This topic has 4 תגובות, 2 משתתפים, and was last updated לפני 8 שנים, 5 חודשים by
אלמוני.
- Post
-
- ינואר 23, 2017 בשעה 5:06 pm
היי,
יש לי מס' דוחות שאני שולח בTTS פעם בשבוע.
מופעל פרוצדורה בשם "דוחות יום ראשון" עם שורת SQLI שמפעילה שם מס' פרוצדורות/דוחות ב-EXECUTE לכל קבוצה שרשומה שם.
הבעיה היא שעכשיו יש לי דו"ח עם קלט
איך אני יכולה להכניס אותו גם לפרוצדורה של "דוחות יום ראשון"? ז"א איך אני יכולה לעדכן את הקלט שם או איך לעדכן שישתמש בקלט האחרון של ה- TABULA?
תודה
- Replies
-
- ינואר 23, 2017 בשעה 5:23 pm
הוספתי את הדו"ח לפרוצדורה וכשאני מריצה את הפרוצדורה בשרת אז אני לא מקבלת את הדוח למייל אבל כשאני מריצה אותו דרך הטרמינל הוא עובד ושולח מייל…
לא מבינה למה?!- ינואר 23, 2017 בשעה 5:27 pm
- ינואר 23, 2017 בשעה 5:36 pm
מה שנעם כותב מניח שאת מריצה את הפרוצדורה שצריכה את הקלט ישירות מה-tts. ולא ב-executeמתוך משהו אחר.אני לא זוכר ששמעתי על דרך להעביר קלט לשלבי input של פרוצדורות. (מעבר לטבלת לינק ל-par)
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- ינואר 23, 2017 בשעה 6:16 pm
בדו"חות האוטומטיים שלי, הכנסתי בתוך הדו"ח את הפרמטרים. בדרך כלל, מדובר ב"כל ההזמנות שנקלטו אתמול" או "ב-24 השעות האחרונות", כך קל לקבוע את הערכים.לגבי "פרמרטים לפי משתמש" ב-TTS – זו השיטה בה אני מפעיל את MRP. אני משער שזה יעבוד גם בפרוצדורה פרטית.
אני חושב שאני עונה מתוך הנחה סמויה: בפרוצדורות שלי, אני אוסף ומכניס נתונים לתוך טבלה "מלונקקת" ואז מפעיל דו"ח באמצעות EXECUTE שיודע להשתמש בנתונים אשר נמצאים בתוך הקובץ המלונקק. יכול להיות שאת עובדת בשיטה אחרת. להלן דוגמא של תכנית שלי:
/* TEST_STATUS40WOOD - No'am, 29/09/16
Prepare a list of all customer orders which are at status 40 wood.
Send report via email when invoked via TTS
*/
:$.GO = (SQL.USER = 1 ? 30 : 40);
LINK STACK TO :$.STK;
ERRMSG 1 WHERE :RETVAL 0
AND NOT EXISTS (SELECT 1 FROM ORDSTATUSLOG
WHERE ORDSTATUSLOG.ORD = ORDERS.ORD
AND ORDSTATUSLOG.ORDSTATUS = 18);
GOTO 300 WHERE :$.GO = 40 OR NOT EXISTS (SELECT 1 FROM STACK
WHERE ELEMENT > 0);
SELECT ENTMESSAGE ('$', 'P', 20) INTO :NAME FROM DUMMY;
SELECT USER INTO :USER
FROM USERS
WHERE USERLOGIN = :NAME;
EXECUTE WINACTIV '-R', 'TEST_STATUS40WOOD', 'STACK', :$.STK, '-u',
:USER;
LABEL 300;
UNLINK STACK;
יש עוד כמה שלבים לפרוצדורה:
20 – GOTO (על סמך המשתנה GO)
30 – END
40 – דו"ח TEST_STATUS40WOODכאשר טבולה מריצה את הדו"ח (דרך המתזמן), המשתנה GO יקבל את הערך 30, לכן הדו"ח יישלח בדו"ח. שלב 20 יעביר את הפיקוד אל שלב 30 – סיום התכנית. כאשר אני מפעיל את הדו"ח ב"חי", GO = 40, לכן לא יישלח דו"ח אלא יופק למסך בשלב 40 לפרוצדורה. זה לא קשור לבעיה שלך אבל משהו נחמד לדעת.
- יש להתחבר למערכת על מנת להגיב.