NoamN

Forum Replies Created

מוצגות 15 תגובות – 46 עד 60 (מתוך 442 סה״כ)
  • Replies
  • NoamN
    משתתף
    none
    אני תמיד מגדיר לשדות הקובצים אפיון גרפי G
    • in reply to: DBLOAD
    NoamN
    משתתף
    none
    מצאתי תשובה לשאלה השניה (איך משתמשים בפרמטרים לממשק כשלב נפרד) בפרוצדורה בשם BANKPAGE_AMEXCARD. אבל אשמח לתשובות לגבי השאלה הראשונה, מדוע הקובץ שנוצר ריק כאשר יש שורות שגורמות לשגיאה.
    • in reply to: שגיאות
    NoamN
    משתתף
    none
    אין לי מושג כמובן מה הבעיה, אבל אני רוצה לתאר בעיה אפשרית ואיך פתרתי אותה.

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

    אבל מתברר שכל פעם מתבצע לינק לאותה טבלה ולפעמים הלינק ייכשל מפני שטבלה עדיין מלונקקת. יש לי שתי הצעות: 1) להרחיב את ה-UNLINK אל UNLINK AND REMOVE.

    2) להשתמש ב-ALIAS.

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

    SELECT SQL.TMPFILE INTO :CCT FROM DUMMY;
    LINK GENERALLOAD CCT TO :CCT;
    GOTO 57 WHERE :RETVAL <= 0;
    SELECT ENTMESSAGE ('ORDERS', 'F', 8300) INTO :PAR1 FROM DUMMY;
    INSERT INTO GENERALLOAD CCT (LINE, RECORDTYPE, INT1, TEXT6)
    VALUES (1, '1', :CC, :PAR1);
    EXECUTE INTERFACE 'TEST_UPDCCSTATUS', SQL.TMPFILE, '-L', :CCT;
    :XMSG = ";
    SELECT MESSAGE INTO :XMSG FROM ERRMSGS
    WHERE USER = SQL.USER AND TYPE = 'i';
    GOTO 56 WHERE :RETVAL <= 0;
    :PAR1 = STRIND (:XMSG, 1, 60);
    :PAR2 = STRIND (:XMSG, 61, 60);
    :PAR3 = STRIND (:XMSG, 121, 60);
    WRNMSG 35;
    LABEL 56;
    UNLINK AND REMOVE GENERALLOAD CCT;
    LABEL 57;

    השינויים הללו מאד עזרו לי.

    NoamN
    משתתף
    none
    לא הבנתי מה זה "פירוט בתג שורש". האם אפשר להעתיק חלק מהקובץ לתוך השאלה כדי שנבין במה מדובר?
    NoamN
    משתתף
    none
    בעמודת הטבלה תרשום DUMMY ושם טבלה DUMMY. במסך הבן "עמודות הדו'ח – הרחבה", תרשום

    = 1 AND

    #500 <> '000'

    NoamN
    משתתף
    none
    לפי הנסיון שלי, הוספת משימה (או שינוי משימה קיימת) במתזמן המשימות גורמת למשימות עם תדירות להתבצע באותה נקודת זמן. לדוגמא: יש אצלי משימה שמתבצעת כל 15 דקות ונניח שהיא מופעלת בדקות 00, 15, 30 ו-45 לשעה. אם אבצע שינוי במתזמן, המשימה הזו תתצבע עכשיו וכל 15 דקות החל מ"עכשיו". לכן אני משתדל לבצע שינויים בדיוק כאשר המשימה הזו מתבצעת!
    NoamN
    משתתף
    none
    יש קבוע מערכת, MAXFORMLINES, אשר קובע את מספר השורות המקסימלי למסך.

    היתרון של ממשק – אפשר להפעיל אותו, ללכת לטייל, לחזור אחרי שעה ולגלות שהממשק עדיין עובד (170,000 זה הרבה רשומות!) [צריך להבין את חוש ההומור הבריטי שלי: התכוונתי לכך שהממשק עובד לבד ולא צריך להזין אותו בשום דבר].כמובן לבדוק את הממשק על כמה שורות בודדות כדי לוודא שאין תקלות.

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

    NoamN
    משתתף
    none
    התכוונתי להגיב עד שראיתי את השורה האחרונה……

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

     

    • in reply to: שגיאות
    NoamN
    משתתף
    none
    האם יש עבודות רצות תחת מתזמן המשימות? האם יש דמוי בין שעות ההודעה לבין שעות שמשהו מופעל? מי שולח את ההודעות הללו? האם הכנסת בפרוצדורות כלשהו פקודה לשלוח אליך הודעה אם יש שגיאה בהפעלת ממשק? אני עשיתי זאת, אך גם הקפדתי להוסיף את שם התכנית להודעה.

    באופן כללי, ההודעות האלה לא ממש עוזרות. מזמן ביקשתי שיוסיפו שני שדות לטבלת ERRMSGS – מאיזו תכנית הגיעה ההודעה ושעת ההודעה. עד אז, עלינו רק לנסות ולנחש.

    NoamN
    משתתף
    none
    אמנם אין לנו תמונה כוללת של מה שאת רוצה לעשות, אבל אזכיר דבר אחד שלעיתים שוכחים: העדכון צריך להתבצע על הטבלה האמיתית, לא טבלה מלונקקת. כך אם יש פקודה LINK ORDERSA TO, אז צריך לכתוב משהו כמו UPDATE ORDERSA ORIG SET
    NoamN
    משתתף
    none
    לצערי, יש פעילויות בארגון שלי שאינן מפיקות חשבוניות על סמך תעודות משלוח. אין בעיה כאשר מוכרים מוצר סופי כמו כסא, אבל יש בעיה כאשר "מוכרים" מטר רץ של רצפה תעשייתית ומספקים לאתר הבניה חומרים שנצרכים שם.

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

    NoamN
    משתתף
    none
    עשיתי משהו דומה לפני כמה שנים.

    לגבי הזמנות לקוח, הגדרתי דגל מיוחד בטבלת הסטטוסים להזמנה שתאורו "להסיר מאובליגו". אחרי זה סימנו אלו סטטוסים לא ייחשבו לאובליגו. כל יום רצה פרוצדורה שאוספת הזמנות שהגיעו לסטטוס/ים האלה ביממה האחרונה, גם הזמנות שעונות על דרישות אחרות. בסוף יש לולאה שעוברת על ההזמנות הללו (מספר הזמנה ORD נשמר ב-STACK) ומעדכנת את השדה OBLIGOFLAG בטבלת ORDERSA עם הערך Y (פירושו "לא לכלול באובליגו").

    במקביל יש טיפול בתעודות משלוח ושורות תעודות משלוח להסיר את הדגל "לחיוב" מהשורות המתאימות.

    כתוצאה מכך, התכנית לחישוב האובליגו מתעלמת מהישוית הללו.

    אני מקווה שזה נותן לרעיון איך ליישם את הבקשה.

    NoamN
    משתתף
    none
    בשביל מה ביטוי DUMMY? מה קורה אם את מסירה אותו?

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

    NoamN
    משתתף
    none
    אין להודעה כל קשה לשינוי טיפוס. ההודעה מציינת שגיאה ב-GROUP BY: אלה השדות לפיהם נעשה קיבוץ. בדרך כלל זה אומר שיש שדה שערכו משתנה שנמצא בביטוי ל-GROUP או להיפך, שחסר ביטוי בתוך ה-GROUP. זה יותר קל לראות ברמת SQL ולא בתוך מחולל הדו"חות.

    לגבי דו"חות טבלאיים – מוטב ליצור דו"ח רגיל קודם כדי לוודא שהכל תקין ורק אז להפוך לטבלאי.

    NoamN
    משתתף
    none
    היה רצוי לשלוח כל שאלה בנפרד.

    לגבי השאלה הראשונה – למיטב ידיעתי, אי אפשר. תפקוד הפלוס/מינוס פונקציה של הדפדפן, לא של הדו"ח.

    שאלה 2: לא. דו"ח רגיל מוגבל ל"טבלה" אחת. נדרש ליצור "מסמך HTML" (כמו הדפסת הזמנת לקוח) כדי לכלול כמה "טבלאות" בדו"ח אחד.

    שאלה 3: אם הבנתי את השאלה נכון, אתה צריך להגדיר חישוב קבוצתי B לשדה שמכיל את המונה. כמו כן שדות טכנאי וראש צוות תגדיר חישוב קבוצתי R.

מוצגות 15 תגובות – 46 עד 60 (מתוך 442 סה״כ)