הקורס שלפניכם הינו הקורס הוירטואלי הראשון מסוגו להכשרת מתכנתי פריוריטי.
הקורס כולל הסברים דוגמאות ותרגילים, לכל כלי הפיתוח העיקריים בפריוריטי.
הקורס עובד צמוד ל SDK צעד אחרי צעד.
הקורס מתאים לבעלי רקע יישומי בפריוריטי אשר רכשו רקע בסיסי בבסיסי נתונים ו SQL
לשאלות והערות אנא צור קשר
פרק 1 Constructing and Modifying Database Tables
סרטון 1 – הקדמה, טבלאות ועמודות,מפתחות וחוקים של מפתחות
סרטון 2 – בניית טבלאות, שינוי והוספת עמודות, שינוי והוספת מפתחות' צפיה בטבלאות במערכת ושימוש ב WINDBI
תרגילים:
צרו טבלאות למכוניות ונהגים, כך שכל נהג יכול לנהוג בכמה מכוניות, הוסיפו אפיונים למכונית ולנהגים כיד הדמיון על ידי הוספת עמודות.
הוסיפו לטבלת מוצרים שדה בשם תאור2 ,שדה בשם תאור לועזי 2 , מחיר נוסף ומשקל לפריט
פרק 2 SQL Syntax
סרטון 1 – שימוש מתקדם ב WINDBI , סינטקס, פונקציות שמורות, קבועים ומשתנים
סרטון 2 – בקרת זרימה של קוד
תרגיל: צרו קוד אשר בקבל מספר שלם כלשהו, ומחשב את סכום כל המספרים מאפס עד המספר שנבחר. לדוגמא אם נבחר 7, התשובה תהייה 1+2+3+4+5+6+7 .
רמז, הגדירו MYNUMBER = 7: והשתמשו ב LOOP WHERE כדי ליצור לולאה שתיפסק בהגעה לערך הנדרש. בתוך הלולאה חשבו את SUM: ובסוף הציגו אותו על המסך.
[insert_php]
if(is_user_logged_in()){
echo (");
}else
{
echo ('אינך מחובר, על מנת לצפות בהמשך המדריך עליך להתחבר');
}
[/insert_php]
3 – לולאות קורסור CURSOR והפניות ל SUB ROUTINGS
}
תרגיל: כיתבו קורסור שעובר על כל הלקוחות במערכת, ומעדכן לכל לקוח שמכיל את האות 'א' ערך 'א' בפרמטר 1
סרטון 4 – שיטות פלט, שימוש ב LIKE, Outer Join, והפקודה LINK
תרגיל: הפיקו שאילתות לקובץ, כיתבו שאילתות תוך שימוש במספר פקודות LIKE, בצעו פקודות LINK ובדקו את הערכים המוחזרים לאחר LINK ולאחר UNLINK
סרטון 5 – תנאי IF ELSE , פונקציות על מספרים, מחרוזות ותאריכים
סרטון 6 – המשך העמקה בפונקציות של פריוריטי והבנת סוגי המשתנים
פרק 3 מחולל מסכים
סרטון 7 – מחולל מסכים, חלק 1
סרטון 8 – מחולל מסכים, חלק 2
תרגיל א: בנו מסך בשם מכוניות, לכל מכונית הקצו שם, שנת מודל ומספר לוחית זיהוי. הוסיפו למסך המכוניות מסך בן בשם 'טיפולים למכונית' שיאפשר לתעד תאריכי טיפול ותאור הטיפול.
תרגיל ב: הוסיפו למסך לקוחות מסך בן המציג את בני המשפחה של הלקוח. לקוח בן משפחה, יש לתעד שם, מין, ותאריך לידה.
סרטון 9 – טריגרים של מסכים
סרטון 10 – סריגרים, המשך
תרגיל א: הגדירו לכל פריט במערכת, שלאחר הקלדת פרמטר 2, לפני היציאה משדה פרמטר 2, המערכת תחפש האם יש מקט שלו פרמטר 1 + פרמטר 2 זהים, במידה וכן, תוצג הודעת אזהרה.
סרטון המשך בנושא טריגרים של רשימות בחירה , Choose & Search
פרק 5 פרוצדורות ( דילוג על פרק 4 מומלץ להכיר את נושא הדוחות ונושא מחולל ממשקים למסכים כהקדמה לנושא זה)
סרטון 11 – פרוצדורות
סרטון 12 – פרוצדורות, המשך
תרגיל א: כיתבו פרוצדורה, שמעדכנת לקבוצת פריטים שתיבחר, את מחיר הבסיס, לפי מחיר שיקבע בקלט, באם המחיר שנקבע, גבוה מהמחיר הנוכחי לאותו פריט.
תרגיל ב: בנו דוח/פרוצדורה, המציג לכל לקוח, את סכום ההזמנות הפתוחות, סכום ההזמנות הסגורות, וסכום ההזמנות בטיוטה. השתמשו בטבלה זמנית כדי לעבד את הנתונים ולהציגם.
סרטונים נוספים יועלו בהמשך.
פרק 7 שימוש בממשקים FORM INTERFACE
פרק זה מלמד על אחד מהכלים החזקים ביותר במערכת הפריוריטי, הממשק לסמך. כאן תלמדו איך להפעיל ממשק למסך מקובץ ומטבלה, מתוך קוד בצורה דינאמית, כולל ניפוי שגיאות וטיפול בתוצרי הממשק.
קוד לדוגמא מהסרטון:
SELECT SQL.TMPFILE INTO :_GL2 FROM DUMMY;
LINK GENERALLOAD2 TO :_GL2;
ERRMSG 999 WHERE :RETVAL <=0;
DELETE FROM GENERALLOAD2;
LINK STACK_ERR TO :_ERR;
ERRMSG 999 WHERE :RETVAL <=0;
INSERT INTO GENERALLOAD2(LINE, RECORDTYPE, TEXT,TEXT1)
SELECT 1,'1', 'new customer from table interface 2222','זמני'
FROM DUMMY;
DELETE FROM STACK_ERR;
EXECUTE INTERFACE 'ROYY_OPENCUSTOMER2', SQL.TMPFILE, '-L', :_GL2,'-stackerr',:_ERR;
SELECT MESSAGE INTO :PAR1 FROM STACK_ERR WHERE LINE > 0;
SELECT * FROM STACK_ERR FORMAT; /*WRNMSG 998 WHERE :RETVAL > 0;*/
SELECT CUSTDES FROM CUSTOMERS,GENERALLOAD2 WHERE CUSTOMERS.CUST = ATOI(GENERALLOAD2.KEY1) AND GENERALLOAD2.LINE = 1 FORMAT;
UNLINK GENERALLOAD2;
UNLINK STACK_ERR;
פרק 8, שימוש ברכיב WSCLIENT לשדר ולמשוך נתונים ממערכות חצוניות בעזרת REST API
קוד המקור שמוצג בסרטון:
:URL = STRCAT(
'http://prioritydev.simplyct-co-il-ester.s732.upress.link/',
'/odata/priority/tabula.ini,2/demo/',
'LOGPART');
:INPUT = '….input.txt';
:OUTPUT = '….output.txt';
:wsUser = 'API';
:wsUserPwd = '1234567';
EXECUTE WSCLIENT :URL,:INPUT,:OUTPUT,
'-usr', :wsUser , '-pwd', :wsUserPwd,
'-content',
'application/json',
'-method','GET';
SELECT MESSAGE INTO :PAR1 FROM ERRMSGS
WHERE TYPE = 'w'
FORMAT;
ERRMSG 998 WHERE :RETVAL > 0;
WRNMSG 997;
תרגול – נסו להתחבר לסרוויס שמוצג בסרטון, והוסיפו יכולת של לשיחת POST לסרוויס, וגם משיכת נתונים לפי פילטור.
לאחר מכן, נסו להשתמש בחיבור לסרוויס של פריוריטי המוצג בסרטון, ונסו להכניס לקוח, מוצר והזמנת לקוח!
מצורף כאן הלינק לאתר שמוצג בסרטון
דוגמא למשיכת נתונים בפורמט JSON על ידי WSCLIENT והצגתם כטבלה על המסך בעזרת פקודת XMLPARSE
:endpoint_file = STRCAT(SYSPATH('TMP',1),'url.txt');
:inFile = STRCAT(SYSPATH('TMP',1),'input.txt');
:outFile = STRCAT(SYSPATH('TMP',1),'output.txt');
:msgFile = STRCAT(SYSPATH('TMP',1),'message.txt');
:headerFile = STRCAT(SYSPATH('TMP',1),'headfile.txt');
:method = 'GET';
:contentType = 'application/json';
:wsUser = ''; :wsUserPwd = '';
EXECUTE WSCLIENT
",
:inFile,
:outFile,
'-msg', :msgFile,
'-head', :headerFile,
'-usr', :wsUser,
'-pwd', :wsUserPwd,
'-content', :contentType,
'-method',:method,
'-urlfile',:endpoint_file
;
SELECT SQL.TMPFILE INTO :OUTJSONTAB1 FROM DUMMY;
SELECT SQL.TMPFILE INTO :OUTJSONTAB2 FROM DUMMY;
SELECT SQL.TMPFILE INTO :MSG FROM DUMMY;
LINK INTERFXMLTAGS I1 TO :OUTJSONTAB1;
GOTO 500 WHERE :RETVAL <= 0;
LINK INTERFXMLTAGS I2 TO :OUTJSONTAB2;
GOTO 500 WHERE :RETVAL <= 0;
:FILE = :outFile;
EXECUTE XMLPARSE :FILE, :OUTJSONTAB1, 0, :MSG, ", 'Y'; /*Note the extra 'Y'*/
/*EXECUTE XMLPARSE :FILE, :OUTJSONTAB2, 0, :MSG, '-all', 'Y';*/
SELECT LINE, TAG, VALUE, ATTR FROM INTERFXMLTAGS I1 WHERE LINE > 0 FORMAT;
SELECT LINE, TAG, VALUE, ATTR FROM INTERFXMLTAGS I2 WHERE LINE > 0 FORMAT;
LABEL 500;
UNLINK INTERFXMLTAGS I1;
UNLINK INTERFXMLTAGS I2;
דוגמא לשידור POST
:inFile = STRCAT(SYSPATH('MAIL',1),'inFile.txt');
:outFile = STRCAT(SYSPATH('MAIL',1),'outFile.txt');
:msgFile = STRCAT(SYSPATH('MAIL',1),'msgFile.txt');
:urlfile = STRCAT(SYSPATH('MAIL',1),'urlfile.txt');
:wsUser = 'API';
:wsUserPwd = '1234567';
:method = 'POST';
:contentType = 'application/json';
EXECUTE WSCLIENT ",:inFile, :outFile , '-msg',
:msgFile, '-usr',
:wsUser , '-pwd', :wsUserPwd , '-content',
:contentType , '-method', :method,
'-urlfile', :urlfile
;
סרטון בונוס