› פורומים › אפיון ופיתוח פריוריטי › הפעלת ממשק בפיתוח פרטי מפרוצדורה חדשה
- This topic has 10 תגובות, 3 משתתפים, and was last updated לפני 5 שנים, 4 חודשים by אופיר.
- Post
-
- יולי 16, 2019 בשעה 7:01 pm
שלום,אני מעוניין להריץ ממשק שפיתחנו למסך מוצרים דרך פרוצדורה פשוטה שאני רוצה לבנות, זאת כדי להנות מהתחשבות המערכת בחוקים עסקיים שקיימים לאותו המסך בטעינה. אנחנו מעוניינים שלא יוכלו להיטען שורות שלא עומדות בחוקים העסקיים של המסך.
אני רוצה שהפרוצדורה תבקש כקלט את קובץ הטקסט שאנחנו מעוניינים לטעון ושבהרצת הפרוצדורה, הטעינה תבוצע בהתחשבות בחוקים עסקיים.
זה הסינטקס שבנינו שלצערנו לא עובד:
השאילתא רצה דרך SQLI
הוספנו פרמטר FIL עם טיפוס CHAR
<colgroup><col style="width: 48pt;" width="64" /> </colgroup>
EXECUTE INTERFACE 'OFIR_UpdateSpec', 'msgfile', '-L', :FIL, '-enforcebpm','-t', '-W','-v'; תודה רבה מראש!
- Replies
-
- יולי 17, 2019 בשעה 8:33 am
האם חסר פסיק אחרי FIL? יכול להיות בעיה עם ההצגה באתר, אך נראה שלדגל v יש מקף גם לפניו (נכון) ואחריו (לא נכון). לעומת זאת, אין מקף לפני enforcebpmבמקום 'msgfile', תרשום SQL.TMPFILE
יש לי ספק אם כל הדגלים באמת נדרשים.
- יולי 17, 2019 בשעה 7:15 pm
תודה רבה עם המענה נועם,סידרתי את הסינטקס לפי ההוראות שנתת לי (היו בעיות בהעתקה של הסינטקס, בורובו הוא היה נכון)
זה הסינטקס הסופי כרגע:
<p dir="ltr">EXECUTE INTERFACE 'OFIR_UpdateSpec', 'SQL.TMPFILE', '-L',:FIL,'enforcebpm','-t', '-W','-v';</p>
בהרצת הפרוצדורה אני כרגע מכניס את נתיב הקובץ שאני רוצה לטעון (TXT) ובכל זאת הממשק לא מגיב לאחר ההרצה (לע מעדכן את הפריט שניסיתי לעדכן בממשק וגם לא קיבלתי הודעת שגיאה.</p>
הממשק עובד אם מרציצים אותו דרך התוכנית "הרצת ממשק"אשמח לעזרה, המון תודה!
- יולי 17, 2019 בשעה 8:19 pm
תוסיף פקודה אחרי ה-EXECUTE כדי לקבל הודעות שגיאה.SELECT MESSAGE INTO :PAR1 FROM ERRMSGS
WHERE USER = SQL.USER AND TYPE = 'i';
WRNMSG 99 WHERE :RETVAL > 0
;
זה אמור לתת לך מושג מה נכשל
- יולי 17, 2019 בשעה 8:24 pm
תודדה נועם, הוספתי את הפקודה הזו וקיבלתי את ההודעהNo WRNMSG 99 (Entity number 42852)
אחרי ההרצה
- יולי 17, 2019 בשעה 8:38 pm
הנחתי לך להוסיף הודעה 99, שמציג את ערכו של PAR1, דהיינו <P1>.
<p dir="ltr">בשיטה הזו תקבל רק שגיאה אחת. דרך אחרת לקבל את כל השגיאות -</p>
<p dir="ltr">GOTO 1 WHERE NOT EXISTS (SELECT 1 FROM ERRMSGS</p>
<p dir="ltr">WHERE USER = SQL.USER AND TYPE = 'i');</p>
<p dir="ltr">EXECUTE WINACTIV 'R', 'INTERFACEERR';</p>
<p dir="ltr">LABEL 1;</p>
הקטע הזה מחליף את מה שכתבתי קודם.- יולי 17, 2019 בשעה 8:50 pm
תודה נועם,עדכנתי את הפקודה לזו:
EXECUTE INTERFACE 'OFIR_UpdateSpec', 'SQL.TMPFILE', '-L',:FIL,
'enforcebpm','-t', '-W','-v';
GOTO 1 WHERE NOT EXISTS (SELECT 1 FROM ERRMSGS
WHERE USER = SQL.USER AND TYPE = 'i');
EXECUTE WINACTIV 'R', 'INTERFACEERR';
LABEL 1;
עדיין בהרצה אין שגיאה, המסך מסיים את ההרצה אך אין שום הודעה.
- יולי 18, 2019 בשעה 1:46 pm
לא צריך להיות גרשים מסביב ל-SQL.TMPFILEאני חושב שזו לא הבעיה אבל כדאי לתקן בכל מקרה. מה קורה אם אתה מסיר את כל הדגלים אחרי FIL: ?
- יולי 24, 2019 בשעה 10:20 am
תודה על המענה נועם,לא כל כך עזר הבעיה נשארה אותו הדבר.
אנסה לקרוא ולעבור בדקדוק על ה-SDK ואעדכן בתוצאות 🙂
תודה על העזרה!
- יולי 24, 2019 בשעה 1:57 pm
L- מציין "קובץ" לינקאם אתה מעביר שם קובץ טקסט נראה לי שיש להשתמש ב f-
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
- יש להתחבר למערכת על מנת להגיב.