שליחת דוחות אוטומטיים

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

  • Post
    sayo
    משתתף
    היי,
    יש לי מס' דוחות שאני שולח בTTS פעם בשבוע.
    מופעל פרוצדורה בשם "דוחות יום ראשון" עם שורת SQLI שמפעילה שם מס' פרוצדורות/דוחות ב-EXECUTE לכל קבוצה שרשומה שם.
    הבעיה היא שעכשיו יש לי דו"ח עם קלט
    איך אני יכולה להכניס אותו גם לפרוצדורה של "דוחות יום ראשון"? ז"א איך אני יכולה לעדכן את הקלט שם או איך לעדכן שישתמש בקלט האחרון של ה- TABULA?
    תודה
מוצגות 4 תגובות – 1 עד 4 (מתוך 4 סה״כ)
  • Replies
    sayo
    משתתף
    הוספתי את הדו"ח לפרוצדורה וכשאני מריצה את הפרוצדורה בשרת אז אני לא מקבלת את הדוח למייל אבל כשאני מריצה אותו דרך הטרמינל הוא עובד ושולח מייל…
    לא מבינה למה?!
    אלמוני
    אורח
    אפשר להגדיר בממשק למתזמן המשימות להשתמש בהגדרות (פרמטרים) של משתמש כלשהו. שינו את הממשק כך לא אוכל להגיד לך בדיוק מה צריך לכתוב (אלא אם את עובדת עם 17.1 או גבוה).
    yitzchok
    משתתף
    IL
    מה שנעם כותב מניח שאת מריצה את הפרוצדורה שצריכה את הקלט ישירות מה-tts. ולא ב-executeמתוך משהו אחר.

    אני לא זוכר ששמעתי על דרך להעביר קלט לשלבי input של פרוצדורות. (מעבר לטבלת לינק ל-par)

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    אלמוני
    אורח
    בדו"חות האוטומטיים שלי, הכנסתי בתוך הדו"ח את הפרמטרים. בדרך כלל, מדובר ב"כל ההזמנות שנקלטו אתמול" או "ב-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 לפרוצדורה. זה לא קשור לבעיה שלך אבל משהו נחמד לדעת.

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