היי חברים, יש לי שאלה קטנה.
אני רוצה להגביל הזמנה של מקט"ים מסויימים אשר אני מנהלת במערכת.
המק"טים שאני רוצה להגביל מזוהים בסטטוס חדש שפתחתי להם.
בסטטוסים לכרטיס פריט אנחנו לא משתמשים בעמודה של ה-אתר? , לכן לקחתי את העמודה הזו וסימנתי לה וי על הסטטוס.
רשמתי את השאילתה הבאה ומשום מה זה לא עובד לי, לא מציג לי הודעת שגיאה כאשר אני מזינה מק"ט זה במסך הזמנת רכש.
:QUANT = :$.TQUANT;
:PAR2 = '';
SELECT 'X' INTO :PAR2 FROM DUMMY
WHERE :QUANT > 50 ;
GOTO 7779 WHERE :PAR2 <> '' ;
:PAR1 = :$.PARTNAME;
SELECT 'Y' INTO :PAR2
FROM PART, PARTSTATS
WHERE PART.PARTNAME = :PAR1
AND PART.PARTSTAT = PARTSTATS.PARTSTAT
AND PARTSTATS.ECFLAG = 'Y';
ERRMSG 591 WHERE :RETVAL > 0 AND :PAR2 = 'Y';
LABEL 7779;
1. יכולת לרשום את כל השורות הראשונות במשפט
GOTO 7779 WHERE :$.TQUANT <= 50
גם זה לא נכון – צריך להשתמש ב-REALQUANT מפני שכמות 50 שמורה כ-50,000. אני מניח שזו הכוונה. האם מותר להזמין עד 50 יחידות?
2. אני מניח שאת רוצה להציג הודעת שגיאה 591 כאשר לסטטוס הפריט יש הדגל ECFLAG
ERRMSG 591 FROM PART, PARTSTATS
WHERE PART.PART = PARTSTATS.PART
AND PART.PARTNAME = :$.PARTNAME
AND PARTSTATS.ECFLAG = 'Y'
אם את רוצה למנוע הזמנות עבור פריטים מסוימים, תני להם סטטוס "אסור לרכש" או "אסור למכירה" ותקבלי חסימה אוטומטית.
אכן הכוונה שלי שאי אפשר להזמין יותר מ50 יחידות, אני יודעת שהקוד שרשמתי מסורבל וארוך , הסיבה לכך שניסיתי בהמון וריאציות ולא נתן לי מענה בשום אחד מהמקרים,
לגבי רישום בטריגר,
אני רושמת את זה בCHECK-FIELD , אני לא צריכה לבדוק אם המקט אסור למכירה, אלא רק אם הכמות גדולה מהכמות שציינתי .