טריגר שמפעיל פרוצדורות

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

  • Post
    oron
    משתתף
    אני ממש לא מבין בתוכנה אז אם אפשר לקבל הסבר פשוט על איך מבצעים כזה דבר:
    יש לי טבלה שקוראים לה:

    EINVOICES

    אני מכניס נתונים לטבלה הזאת באמצעות REST API
    עכשיו אני רוצה לעשות שאם ה-שדה שקוראים לו STATDES – סטאטוס
    הוא עם ערך לדוגמא A
    יופעלו שתי פרוצדורות
    הפרצדורות נמצאות באותו מסך אם זה עוזר.

    תודה מראש!

מוצגות 15 תגובות – 1 עד 15 (מתוך 22 סה״כ)
  • Replies
    yitzchok
    משתתף
    IL
    מה שהציעו לי בית התוכנה בעבר זה לשים הפעלה POST-UPDATE במסך של החשבונית שתריץ סגירה לאחר שאתה עושה פעולה מסוימת במסך.
    מציע שתנסה את זה.
    אפשר לעשות את זה ממש לא קשור לשום דבר אחר אם תוסיף שדה מיועד (לא צריך לעדכן טבלה בכלל) וה-POST-UPDATE שלך יבדוק אם יש בו ערך לאחר העדכון ויריץ את הפרוצדורה.

    ב-SDK יש הסבר איך לעשות את זה אבל אני חושב שתמצא דיונים והסברים לגבי זה כאן בפורום אם תחפש WINACTIV -P

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    oron
    משתתף
    איך עושים את מה שאמרת ב-post-update?
    הייתי שמח להבין מה זה אומר אבל אין לי שום מושג ב-priority…
    yitzchok
    משתתף
    IL
    אם ממש אין לך מושג כלל הייתי אומר שעדיף להעביר את המשימה למי שיש לו מושג
    אם אתה נורא רוצה ללמוד את זה אז זה יקח לדעתי כמה שלבים של הלוך ושוב כאן. אנחנו לא יודעים עדיין כמה צריכים להסביר לך.
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    oron
    משתתף
    תראה, אין לי בעיה לשלם למישהו שיעשה לי את הטריגר הזה, זה כולה משהו מאוד פשוט לפי מה שהבנתי זה רק להוסיף טריגר לעמודה אחת בטבלה ושתפעיל 2 פרוצדורות קיימות על הרשומה…

    אני גם מוכן ללמוד את זה, לא מאמין שזאת תורה מסיני…

    yitzchok
    משתתף
    IL
    זה להוסיף טריגר לעדכון רשומה במסך ולפני זה את העמודה אליה הטריגר יגיב (אם בוחרים ליעד עמודה, שאני ממליץ)

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

    אז נתחיל מזה:
    אתה יודע איך להוסיף עמודה מוסתרת למסך?
    (ואז עוד שאלה – האם ניתן לעדכן עמודה נסתרת דרל ממשק REST?)

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    oron
    משתתף
    הוספתי עמודה עכשיו שקוראים לה REPO_TOCLOSE
    זה שדה boolean.
    מה שאני רואה זה שהוא נוסף לטופס תחת misc אבל הוא לא מופיע לי ב-rest אולי אני צריך סמן משהו בשביל שהוא יופיע שם?
    yitzchok
    משתתף
    IL
    לא מכיר את ממשקי ה-REST
    אתה צריך לאתחל את הממשק לכל מסך בנפרד? או אוטומטית אפשר להפעיל ממשק REST עבור כל מסך?
    אולי אתה צריך לרענן משהו.
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    העמודה שלך מבוססת עמודת טבלה או סתם עמודה ללא ביטוי כלל?
    (לא רואה סיבה לערב טבלה)
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    Interlligent
    משתתף
    yitzchok כתב:

    לא מכיר את ממשקי ה-REST
    אתה צריך לאתחל את הממשק לכל מסך בנפרד? או אוטומטית אפשר להפעיל ממשק REST עבור כל מסך?
    אולי אתה צריך לרענן משהו.

    לכל מסך שרוצים לתת לו גישה דרך API צריך לאשר (V) במסך הבא:
    מנהל המערכת > תחזוקת מערכת > התקנת רשיונות > מסכים עבור רשיון מוגבל/API
    האישור ברמת מסך ולא עמודה.

    כנ"ל גם לגבי פרוצדורות – בנתיב הבא:
    מנהל המערכת > תחזוקת מערכת > התקנת רשיונות > הפעלות עבור רשיון מוגבל

    yitzchok
    משתתף
    IL
    אין לי מושג אלה יעזרו אבל הייתי חושב שאם עמודה חסרה שווה לנסות:
    1. להוריד ולהחזיר את הדגל
    2. להפעיל מחדש את ה-service שמאפשר את ה-API
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    יכול להיות שגם במקרה הזה שווה לנסות להגדיר מיון על העמודה (אחרי כל מיון קיים) אם היא מוסתרת, אבל אני פחות משוכנע שזה רלוונטי
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    oron
    משתתף
    טוב מסתבר, שצריך לעשות restart לכל השרת iis בשביל שהעמודה תופיע ב-API,
    עכשיו מה עושים? איך יוצרים את הטריגר לפרוצדורות על השדה עם ערך מסוים סומן?

    תודה מראש על העזרה אנשים יקרים!

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


    GOTO 888 WHERE :$.REPO_TOCLOSE 'Y' ;
    /* prepare procedure input and run procedure */
    SELECT SQL.TMPFILE INTO :REPO_TEMPFILE FROM DUMMY ;
    LINK INVOICES I TO :REPO_TEMPFILE ;
    GOTO 888 WHERE :RETVAL <= 0 ; /* if link fails just skip this process */
    DELETE FROM INVOICES I ; /* just in case */
    INSERT INTO INVOICES I
    SELECT * FROM INVOICES WHERE IV = :$.IV ;
    UNLINK INVOICES I ;
    EXECUTE ACTIVATE '-P', 'CLOSEANINVOICE', 'INVOICES', :REPO_TEMPFILE ;
    LABEL 888 ;

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    oron
    משתתף
    בטוח שונה מ-Y?
    כי אני רוצה דווקא את אלה שיש להם Y
    oron
    משתתף
    אגב למסך שאני עובד עליו קרואים EINVOICES
    והוספתי את העמודה גם לטבלה INVOICES וקישרתי אותה ל-מסך ושמתי שם שהערך שלה הוא boolean.
    השאלה שאני שואל בטח טפשית, אבל זה לא עובד לי כרגע… (הטרגיר החדש)
    טוב אז ניסיתי לעשות ככה:
    ניסיתי להוסיף לעמוד שקוראים לה NETN_TOCLOSE
    הפעלה של POST-UPDATE אבל זה לא נתן לי, כי הוא מבקש רק הפעלות פרטיות.
    אז הוספתי הפעלה שקוראים לה NETN_POST-UPDATE
    ושמתי בפנים את הקוד הזה:
    GOTO 888 WHERE :$.NETN_TOCLOSE 'Y' ;
    SELECT SQL.TMPFILE INTO :REPO_TEMP FROM DUMMY ;
    LINK INVOICES I TO :REPO_TEMP;
    GOTO 888 WHERE :RETVAL <= 0 ;
    DELETE FROM INVOICES I ;
    INSERT INTO INVOICES I
    SELECT * FROM INVOICES WHERE IV = :$.IV ;
    UNLINK INVOICES I ;
    EXECUTE ACTIVATE '-P', 'CLOSEANINVOICE', 'INVOICES', :REPO_TEMP ;
    LABEL 888 ;

    עכשיו זה הצליח ליצר את המסך מחדש, אבל אני לא רואה שום הבדל כרגע, זה נראה לי לא עושה כלום… כי ברגע שסימנתי זה היה אמור לסגור את הההזמנה… אבל כרגע אני לא רואה שהתבצע שום דבר, יש דרך לדעת אם זה בכלל הגיע לתחילת השאילתה?

    שוב תודה רבה מראש!

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