לקורס תכנות בפריוריטי
הקורס שלפניכם הינו הקורס הוירטואלי הראשון מסוגו להכשרת מתכנתי פריוריטי.
הקורס כולל הסברים, דוגמאות ותרגילים, לכל כליי הפיתוח העיקריים בפריוריטי.
הקורס עובד בצמוד ל SDK צעד אחרי צעד.
הקורס מתאים לבעלי רקע יישומי בפריוריטי אשר רכשו רקע בסיסי בבסיסיי נתונים ו SQL.
פרק 1 – סרטון 1 – הקדמה, טבלאות ועמודות, מפתחות וחוקים של מפתחות
ברוכים הבאים לקורס תכנות בפריוריטי.
הקורס נבנה ומועבר על ידי רועי בן מנחם ,מומחה בפיתוח ויישום פריוריטי, בעל תעודות הסמכה מבית התוכנה Priority Software.
בעזרת הסרטונים תלמדו צעד אחרי צעד את כל מה שצריך כדי להפוך למתכנתי פריוירטי, ותוכלו להתמודד על כל תפקיד רלוונטי בתעשייה.
המפתח להצלחה הוא לצפות בכל סרטון ולנסות בעצמכם את הדוגמאות המוצגות בו, לאחר מכן, לנסות לפתור את שיעורי הבית…מבלי להציץ בתשובות…
לאחר מכן להשוות את הפתרון שלכם לתשובות.
תמיד טוב לבדוק בתגובות אם יש הערות חשובות שתלמידים אחרים רשמו, וכמובן לרשום תגובות ותובנות שלכם.
כדי להנות מכל התכנים של הקורס וגם לקבל ליווי צמוד והדרכה ממתכנת מומחה יש להירשם בקישור.
https://simplyct.co.il/shop-course
בהצלחה!!!
סרטון 2 – בניית טבלאות, שינוי והוספת עמודות, שינוי והוספת מפתחות' צפיה בטבלאות במערכת ושימוש ב WINDBI
צרו טבלאות למכוניות ונהגים, כך שכל נהג יכול לנהוג בכמה מכוניות, הוסיפו אפיונים למכונית ולנהגים כיד הדמיון על ידי הוספת עמודות.
הוסיפו לטבלת מוצרים שדה בשם תאור2 ,שדה בשם תאור לועזי 2 , מחיר נוסף ומשקל לפריט
בניית טבלאות, שינוי והוספת עמודות, שינוי והוספת מפתחות' צפיה בטבלאות במערכת ושימוש ב WINDBI
Constructing and Modifying Database Tables
פרק 2 – סרטון 1 – שימוש מתקדם ב WINDBI , סינטקס, פונקציות שמורות, קבועים ומשתנים
SQL Syntax
שימוש מתקדם ב WINDBI , סינטקס, פונקציות שמורות, קבועים ומשתנים
סרטון 2 – בקרת זרימה של קוד
צרו קוד אשר בקבל מספר שלם כלשהו, ומחשב את סכום כל המספרים מאפס עד המספר שנבחר. לדוגמא אם נבחר 7, התשובה תהייה 1+2+3+4+5+6+7 .
רמז, הגדירו MYNUMBER = 7: והשתמשו ב LOOP WHERE כדי ליצור לולאה שתיפסק בהגעה לערך הנדרש. בתוך הלולאה חשבו את SUM: ובסוף הציגו אותו על המסך.
רמז, הגדירו MYNUMBER = 7: והשתמשו ב LOOP WHERE כדי ליצור לולאה שתיפסק בהגעה לערך הנדרש. בתוך הלולאה חשבו את SUM: ובסוף הציגו אותו על המסך.
בקרת זרימה של קוד
סרטון 3 – לולאות קורסור CURSOR והפניות ל SUB ROUTINGS
כיתבו קורסור שעובר על כל הלקוחות במערכת, ומעדכן לכל לקוח שמכיל את האות 'א' ערך 'א' בפרמטר 1
לולאות קורסור CURSOR והפניות ל SUB ROUTINGS
תודה רבה על סרטון מעולה!!!!
סרטון 4 – שיטות פלט, שימוש ב LIKE, Outer Join, והפקודה LINK
הפיקו שאילתות לקובץ, כיתבו שאילתות תוך שימוש במספר פקודות LIKE, בצעו פקודות LINK ובדקו את הערכים המוחזרים לאחר LINK ולאחר UNLINK
שיטות פלט, שימוש ב LIKE, Outer Join, והפקודה LINK
סרטון 5 – תנאי IF ELSE , פונקציות על מספרים, מחרוזות ותאריכים
תנאי IF ELSE , פונקציות על מספרים, מחרוזות ותאריכים
סרטון 6 – המשך העמקה בפונקציות של פריוריטי והבנת סוגי המשתנים
המשך העמקה בפונקציות של פריוריטי והבנת סוגי המשתנים
פרק 3 מחולל מסכים – סרטון 7 – מחולל מסכים, חלק 1
סרטון 8 – מחולל מסכים, חלק 2
תרגיל א: בנו מסך בשם מכוניות, לכל מכונית הקצו שם, שנת מודל ומספר לוחית זיהוי. הוסיפו למסך המכוניות מסך בן בשם 'טיפולים למכונית' שיאפשר לתעד תאריכי טיפול ותאור הטיפול.
תרגיל ב: הוסיפו למסך לקוחות מסך בן המציג את בני המשפחה של הלקוח. לקוח בן משפחה, יש לתעד שם, מין, ותאריך לידה.
סרטון 9 – טריגרים של מסכים
סרטון 10 – טריגרים, המשך
הגדירו לכל פריט במערכת, שלאחר הקלדת פרמטר 2, לפני היציאה משדה פרמטר 2, המערכת תחפש האם יש מקט שלו פרמטר 1 + פרמטר 2 זהים, במידה וכן, תוצג הודעת אזהרה.
סרטון המשך בנושא טריגרים של רשימות בחירה , Choose & Search
תרגיל עבור סרטון זה: הוסיפו לכרטיס פריט שדה טקסט,
והוסיפו לשדה רשימות בחירה מכל הסוגים ,
רשימה קצרה משאילתה,
רשימה קצרה מהודעות מסך,
רשימה עם חיפוש על פי מספר תאור ותאור לועזי
פרק 5 פרוצדורות – סרטון 11 – פרוצדורות
(דילוג על פרק 4 מומלץ להכיר את נושא הדוחות ונושא מחולל ממשקים למסכים כהקדמה לנושא זה)
סרטון 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
תרגול – נסו להתחבר לסרוויס שמוצג בסרטון, והוסיפו יכולת של לשיחת POST לסרוויס, וגם משיכת נתונים לפי פילטור.
לאחר מכן, נסו להשתמש בחיבור לסרוויס של פריוריטי המוצג בסרטון, ונסו להכניס לקוח, מוצר והזמנת לקוח!
מצורף כאן הלינק לאתר שמוצג בסרטון
https://jsonplaceholder.typicode.com
דוגמא למשיכת נתונים בפורמט 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
קוד המקור שמוצג בסרטון:
:URL = STRCAT(
'https://prioritydev.simplyct.co.il/',
'/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;
פרק 9 – טעינת קובץ על ידי ממשקים לטבלאות DBLOAD
מצורף קישור לדוקומנטציה המלאה
https://prioritysoftware.github.io/sdk/Table-Loads.html#converting-an-excel-file-to-a-tab-delimited-text-file-for-dbload
מצורף קוד עקרוני לעבודה על פי הסרטון
:F = '..\..\system\load\demo1.xlsx';
:T = 'c:\tmp\fromexcel1.txt';
EXECUTE EXL2TXT :F, :T;
SELECT SQL.TMPFILE INTO :_GL FROM DUMMY;
LINK GENERALLOAD2 TO :_GL;
ERRMSG 999 WHERE :RETVAL <=0;
EXECUTE DBLOAD '-L','ROYY_TEST2','-i','c:\tmp\example1.txt','-T','GENERALLOAD2',:_GL;
/* interface */
SELECT TEXT1,REAL1 FROM GENERALLOAD2 FORMAT;
UNLINK GENERALLOAD2;
סרטון בונוס – איך למחוק שורות בפריוריטי בצורה תכנותית?
מעוניין בגישה לשיעורים נוספים? הרשם לאחד מהמסלולים שלנו וקבל גישה לקורס המלא!
מסלולים להרשמה