› פורומים › אפיון ופיתוח פריוריטי › פקודת UPDATE לטבלת יסוד USERSB
- This topic has 4 תגובות, 2 משתתפים, and was last updated לפני 10 חודשים, שבוע 1 by yitzchok.
- Post
-
- ינואר 9, 2024 בשעה 10:27 am
שלום,פיתחתי מסך בן חדש "מועמדים X" למסך סטנדרטי משרות . מטרת הפיתוח לנהל את כל הנושא של מועמדים באמצעות המסך בן הפרטי, תוך כדי סנכרון הנתונים מול המסך הסטנדרטי של המערכת "מועמדים לעבודה".
שלבי תהליך העבודה:
- במסך בן פיתוח פרטי המשתמש יקליד את המועמד החדש.
- הפעלת הממשק לצורך סנכרון נתונים למסך "מועמדים לעבודה".
- במסך בן פיתוח פרטי ,עדכון סטטוס של מועמד מ"מועמד" לסטטוס "עובד".
- הפעלת ממשק לעדכון סטטוס במסך סטנדרטי "מועמדים לעבודה".
- הפעלת פרוצדורה פרטית "הפיכת מועמד לעובד" (העתקה מפרוצדורה סטנדרטית הקיימת בהפעלות ישירות במסך "מועמדים לעבודה").מיקום הפרוצדורה בהפעלות ישירות של המסך משרות.
- השלבים 1-4 עובדים בצורה תקינה .
- בשלב 5 קיימת בעיה שנדרש להשתמש בפקודת UPDATE לטבלה הסטנדרטית USERSB לצורך עדכון דגל של סטטוס מועמד ו-USERID (אני יודעת שזה לא מומלץ ). עשיתי בדיקה של כל השלבים בפרוצדורה ע"י פקודת TABS,השלב של עדכון USERID לא עובד בכלל גם ב WINDBI רואים שהמס' של USERID נשאר ללא שינוי.
שאלות:
- הייתי מעדיפה להפעיל את הפרוצדורה הסטנדרטית של המערכת " הפיכת מועמד לעובד" ,בממשק כדי לא לשבור את התהליך הסטנדרטי של הקמת עובד. האם יש אפשרות כזאת?
- האם יש דרכים נוספות לבצע את השלב 5 , הפיכת מועמד לעובד ?
מוצגות 4 תגובות – 1 עד 4 (מתוך 4 סה״כ)
- Replies
-
- ינואר 9, 2024 בשעה 10:40 am
הקוד של הפרוצדורה שבניתי:
<p dir="ltr" style="text-align: left;">LINK VIKA_JOBCANDIDATES TO :$.PAR;
ERRMSG 10 WHERE :RETVAL <= 0;
/************************* INPUT *********************************/
SELECT VIKA_JOB,VIKA_IDNUMBER
FROM VIKA_JOBCANDIDATES
WHERE VIKA_JOB <> 0
TABS ADDTO 'C:\TMP\NASTIA.TXT';
/*****************************************************************/
:VIKUSERB = ";
:USERID = 0;
:EMPLOYEEFLAG = '\0';
SELECT VIKA_JOBCANDIDATES.VIKA_IDNUMBER,USERSB.USERID,
USERSTATUSES.EMPLOYEEFLAG
INTO :VIKUSERB, :USERID,:EMPLOYEEFLAG
FROM VIKA_JOBCANDIDATES, USERSB,USERSTATUSES
WHERE USERSB.USERB <> 0
AND USERSB.USERSTATUS = USERSTATUSES.USERSTATUS
AND VIKA_JOBCANDIDATES.VIKA_IDNUMBER = USERSB.IDNUMBER
AND VIKA_JOBCANDIDATES.VIKA_USERSTATUS=USERSTATUSES.USERSTATUS;
UNLINK VIKA_JOBCANDIDATES;
SELECT :VIKUSERB, :USERID,:EMPLOYEEFLAG
FROM DUMMY
TABS ADDTO 'C:\TMP\TANIA.TXT';
ERRMSG 1 WHERE :USERID > 0 ;
ERRMSG 4 WHERE :EMPLOYEEFLAG <> 'Y';
ERRMSG 3 WHERE :INACTIVE = 'Y' ;
/**************UPD STATUS AND USERID********************/
:USERSTATUS = 0 ;
SELECT USERSBSTAT INTO :USERSBSTAT
FROM USERSBSTATS WHERE INITSTATFLAG = 'Y' ;
UPDATE USERSB SET USERID = :USERID, – השלב שלא עובד
USERSBSTAT = (:USERSBSTAT <> 0 ? :USERSBSTAT : USERSBSTAT)
WHERE USERID = :USERID;
WRNMSG 2 WHERE EXISTS ( SELECT 'X' FROM USERSB
WHERE USERB = :USERB AND USERID > 0);</p>
- ינואר 9, 2024 בשעה 10:23 pm
שתהיה פרוצדורה משלך אבל לא לבצע עדכונים – קראו לפרוצדורה ההיאבשלב SQLI להכין טבלת לינק של USERSB עם הרשומה הרלוונטית
ואז להפעיל כך
EXECUTE ACTIVATF '-P', 'USERSCTOB', 'USERSB', :filename
;
אפשר לראות במסמך ה-SDK בחלק של "Running a Procedure/Report from an SQLI Step or Form Trigger"
אני חושב שיש גם אפשרות לשים את הפרוצדורה בשלב נוסף כאשר filename בפרמטר של הפרוצדורה ולרשום USERSB בעמודת "ערך" אבל אני לא לגמרי בטוח בפרטים האלה.
בהצלחה
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- ינואר 11, 2024 בשעה 2:47 pm
היי, תודה על התגובה. הבעיה היא שבפרוצדורה USERSCTOB קיים קלט ואז המשתמש נאלץ להקליד את תעודת הזהות של המועד . איך ניתן להימנע מכך?
מוצגות 4 תגובות – 1 עד 4 (מתוך 4 סה״כ)
- יש להתחבר למערכת על מנת להגיב.