› פורומים › אפיון ופיתוח פריוריטי › טריגר שמפעיל פרוצדורות
- This topic has 22 תגובות, 3 משתתפים, and was last updated לפני 7 שנים, 8 חודשים by
oron.
- Post
-
- אוגוסט 1, 2017 בשעה 7:41 pm
אני ממש לא מבין בתוכנה אז אם אפשר לקבל הסבר פשוט על איך מבצעים כזה דבר:
יש לי טבלה שקוראים לה:EINVOICESאני מכניס נתונים לטבלה הזאת באמצעות REST API
עכשיו אני רוצה לעשות שאם ה-שדה שקוראים לו STATDES – סטאטוס
הוא עם ערך לדוגמא A
יופעלו שתי פרוצדורות
הפרצדורות נמצאות באותו מסך אם זה עוזר.תודה מראש!
- Replies
-
- אוגוסט 1, 2017 בשעה 10:53 pm
מה שהציעו לי בית התוכנה בעבר זה לשים הפעלה POST-UPDATE במסך של החשבונית שתריץ סגירה לאחר שאתה עושה פעולה מסוימת במסך.
מציע שתנסה את זה.
אפשר לעשות את זה ממש לא קשור לשום דבר אחר אם תוסיף שדה מיועד (לא צריך לעדכן טבלה בכלל) וה-POST-UPDATE שלך יבדוק אם יש בו ערך לאחר העדכון ויריץ את הפרוצדורה.ב-SDK יש הסבר איך לעשות את זה אבל אני חושב שתמצא דיונים והסברים לגבי זה כאן בפורום אם תחפש WINACTIV -P
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 1, 2017 בשעה 11:46 pm
איך עושים את מה שאמרת ב-post-update?
הייתי שמח להבין מה זה אומר אבל אין לי שום מושג ב-priority…- אוגוסט 2, 2017 בשעה 1:14 pm
אם ממש אין לך מושג כלל הייתי אומר שעדיף להעביר את המשימה למי שיש לו מושג
אם אתה נורא רוצה ללמוד את זה אז זה יקח לדעתי כמה שלבים של הלוך ושוב כאן. אנחנו לא יודעים עדיין כמה צריכים להסביר לך.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 2, 2017 בשעה 1:42 pm
תראה, אין לי בעיה לשלם למישהו שיעשה לי את הטריגר הזה, זה כולה משהו מאוד פשוט לפי מה שהבנתי זה רק להוסיף טריגר לעמודה אחת בטבלה ושתפעיל 2 פרוצדורות קיימות על הרשומה…אני גם מוכן ללמוד את זה, לא מאמין שזאת תורה מסיני…
- אוגוסט 2, 2017 בשעה 3:32 pm
זה להוסיף טריגר לעדכון רשומה במסך ולפני זה את העמודה אליה הטריגר יגיב (אם בוחרים ליעד עמודה, שאני ממליץ)ורנחנו לא יודעים כמה אתה מכיר את המחוללים כדי לכוון אותך בלי להשקיע זמן על הסברים שאתה לא צריך ואולי גם אחר כך לדבג מרוחק בעיות אם זה לא ילך חלק.
אז נתחיל מזה:
אתה יודע איך להוסיף עמודה מוסתרת למסך?
(ואז עוד שאלה – האם ניתן לעדכן עמודה נסתרת דרל ממשק REST?)[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 2, 2017 בשעה 3:49 pm
הוספתי עמודה עכשיו שקוראים לה REPO_TOCLOSE
זה שדה boolean.
מה שאני רואה זה שהוא נוסף לטופס תחת misc אבל הוא לא מופיע לי ב-rest אולי אני צריך סמן משהו בשביל שהוא יופיע שם?- אוגוסט 2, 2017 בשעה 9:05 pm
לא מכיר את ממשקי ה-REST
אתה צריך לאתחל את הממשק לכל מסך בנפרד? או אוטומטית אפשר להפעיל ממשק REST עבור כל מסך?
אולי אתה צריך לרענן משהו.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 2, 2017 בשעה 9:06 pm
העמודה שלך מבוססת עמודת טבלה או סתם עמודה ללא ביטוי כלל?
(לא רואה סיבה לערב טבלה)[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 2, 2017 בשעה 9:12 pm
yitzchok כתב:לא מכיר את ממשקי ה-REST
אתה צריך לאתחל את הממשק לכל מסך בנפרד? או אוטומטית אפשר להפעיל ממשק REST עבור כל מסך?
אולי אתה צריך לרענן משהו.לכל מסך שרוצים לתת לו גישה דרך API צריך לאשר (V) במסך הבא:
מנהל המערכת > תחזוקת מערכת > התקנת רשיונות > מסכים עבור רשיון מוגבל/API
האישור ברמת מסך ולא עמודה.כנ"ל גם לגבי פרוצדורות – בנתיב הבא:
מנהל המערכת > תחזוקת מערכת > התקנת רשיונות > הפעלות עבור רשיון מוגבל- אוגוסט 3, 2017 בשעה 10:16 am
אין לי מושג אלה יעזרו אבל הייתי חושב שאם עמודה חסרה שווה לנסות:
1. להוריד ולהחזיר את הדגל
2. להפעיל מחדש את ה-service שמאפשר את ה-API[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 3, 2017 בשעה 10:20 am
יכול להיות שגם במקרה הזה שווה לנסות להגדיר מיון על העמודה (אחרי כל מיון קיים) אם היא מוסתרת, אבל אני פחות משוכנע שזה רלוונטי[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 3, 2017 בשעה 1:57 pm
טוב מסתבר, שצריך לעשות restart לכל השרת iis בשביל שהעמודה תופיע ב-API,
עכשיו מה עושים? איך יוצרים את הטריגר לפרוצדורות על השדה עם ערך מסוים סומן?תודה מראש על העזרה אנשים יקרים!
- אוגוסט 3, 2017 בשעה 3:05 pm
לקחתי את הקוד שלי שעובד ועשיתי שינויים קלים להורוד דברים שמיוחדים לנו. צריך להיות בסדר אבל זה נמסר ללא אחריות.
הבדיקה הבאה מניחה כפי שכתבתי שהעמודה שלך לא קשורה לעמודה בטבלה ולכן תמיד מתחילה ריקה ולא מקבלת ערך אלא אם כן אתה שם לאחר שהמסך "נפתח" ועודכן ע"י הממשק שלך.
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 ;
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוגוסט 3, 2017 בשעה 4:27 pm
אגב למסך שאני עובד עליו קרואים 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 ;
עכשיו זה הצליח ליצר את המסך מחדש, אבל אני לא רואה שום הבדל כרגע, זה נראה לי לא עושה כלום… כי ברגע שסימנתי זה היה אמור לסגור את הההזמנה… אבל כרגע אני לא רואה שהתבצע שום דבר, יש דרך לדעת אם זה בכלל הגיע לתחילת השאילתה?שוב תודה רבה מראש!
- יש להתחבר למערכת על מנת להגיב.