› פורומים › אפיון ופיתוח פריוריטי › טריגר לשינוי סטטוס
- This topic has 11 תגובות, משתתף 1, and was last updated לפני 9 שנים, 7 חודשים by
sayo.
- Post
-
- ינואר 27, 2016 בשעה 3:33 pm
היי, הכנסתי טריגר PRE-UPDATE (עם קידומת) למסך INVOICES:UPDATE IVSTATS SET STATDES = 'בבדיקה'
WHERE :$.TOTPRICE > 10000.0
AND :$.DEBIT = 'C'
AND TYPE = 2
AND :$.FINAL <> 'Y'
AND :$.STORNOFLAG <> 'Y';המטרה היא שהסטטוס ישתנה כשיש זיכוי מעל 10000 ש"ח.
אין שגיאות אבל גם לא עובד…אודה לעזרה!!
מוצגות 11 תגובות – 1 עד 11 (מתוך 11 סה״כ)
- Replies
-
- ינואר 27, 2016 בשעה 3:53 pm
- ינואר 27, 2016 בשעה 4:36 pm
הצלחתי:SELECT :$.IV INTO :IV FROM INVOICES
WHERE TOTPRICE > 10000.0
AND DEBIT = 'C'
AND TYPE = 'C'
AND FINAL 'Y'
AND STORNOFLAG 'Y';
UPDATE INVOICESA SET IVSTAT = 4 WHERE IV = :IV;- ינואר 28, 2016 בשעה 3:06 pm
אני רוצה להוסיף לקוד שזה יעבוד גם על חשבוניות חיוב במינוס, אז שיניתי את הקוד ועובד לי רק על חשבוניות זיכוי, מישהו יודע למה?!:SELECT :$.IV INTO :IV FROM INVOICES
WHERE ((QPRICE 10000.0 AND DEBIT = 'C'))
AND TYPE = 'C'
AND FINAL 'Y'
AND STORNOFLAG 'Y';
UPDATE INVOICESA SET IVSTAT = 4 WHERE IV = :IV;- ינואר 28, 2016 בשעה 9:33 pm
תורידי את ההתיחסות ל-DEBIT, ותשווה את הערך האבסולוטי של QPRICE
אגב, הביטוי "SELECT :$.IV INTO :IV FROM INVOICES" נראה לי מוזר. כל השדות נמצאים במסך לכן לא צריך לגעת בכלל בטבלת החשבוניות. יכול להיות שצריך לכתוב משהו כזה:
GOTO 1 WHERE ABSR (:$.QPRICE) > 10000
OR :$.FINAL = 'Y'
OR :$.STORNOFLAG = 'Y';
UPDATE INVOICESA
SET IVSTAT = 4
WHERE IV = :$.IV;
LABEL 1;
אם הבנתי אותך נכון, את רוצה לעדכן את הסטטוס אם הסכום פחות מ-10000 (פלוס/מינוס), לא סופי ולא סטורנו.
אין סיבה לבדוק את סוג החשבונית אם הקוד מתבצע במסך CINVOICES כי בכל מקרה החשבונית חייבת להיות מסוג C.
יתכן שטעיתי לגבי התחביר של ABSR- ינואר 31, 2016 בשעה 1:33 pm
אני רוצה שההפעלה תעבוד כאשר יש זיכוי מעל 10000 (DEBIT=C) או כשיש חיוב במינוס קטן ממינוס 10000 (DEBIT=D) אם אני שמה ABSR אז זה יעבוד גם בחיוב רגיל ולא רק איפה שיש חיוב במינוס…- ינואר 31, 2016 בשעה 2:39 pm
תנסי את זה:
GOTO 1 WHERE :$.FINAL = 'Y' OR :$.STORNOFLAG = 'Y';
GOTO 1 WHERE :$.DEBIT = 'C' AND :$.QPRICE -10000;
UPDATE INVOICESA
SET IVSTAT = 4
WHERE IV = :$.IV;
LABEL 1;
כאשר את כותבת ש"זה לא עובד בכלל", מה לא עובד? תכניסי הודעה בשורה לפני UPDATE ואז יהיה ניתן לראות אם הבעיה בתנאים או בעדכון.
- ינואר 31, 2016 בשעה 7:57 pm
מה לא עובד? תכניסי לטריגר הודעות דיבוג כדי שתוכלי לראות איפה הבעיה.
למשל: לפני המשפט הראשון, תציגי את ערכו של FINAL ושל STORNOFLAG. אחר כך תציגי את ערכו של DEBIT ואת QPRICE
אם כל התנאים הללו נכונים, אז יש בעיה עם העדכון. האם את גם מעדכנת את ערכו של משתנה במסך :$.IVSTAT, כך תראי את השינוי מיד? יכול להיות שההפעלה אכן עובדת אך אינך רואה כי את לא מעדכנת את המסך.
תבדקי שהעדכון באמת מתבצע (תשלפי את השורה מ-INVOICESA באמצעות WINDBI).אנחנו יכולים לעזור לך אך רק את יודעת מה באמת קורה, ואת צריכה לבדוק את הדברים בשטח.
מוצגות 11 תגובות – 1 עד 11 (מתוך 11 סה״כ)
- יש להתחבר למערכת על מנת להגיב.