קורס תכנות בפריוריטי

ב ר ו כ י ם ה ב א י ם

לקורס תכנות בפריוריטי

הקורס שלפניכם הינו הקורס הוירטואלי הראשון מסוגו להכשרת מתכנתי פריוריטי.
הקורס כולל הסברים, דוגמאות ותרגילים, לכל כליי הפיתוח העיקריים בפריוריטי.
הקורס עובד בצמוד ל 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;


    לתגובות ושאלות על השיעור
    חזרה לשיעור

    סרטון בונוס – איך למחוק שורות בפריוריטי בצורה תכנותית?

    לתגובות ושאלות על השיעור
    חזרה לשיעור
    X

    מעוניין בגישה לשיעורים נוספים?
    הרשם לאחד מהמסלולים שלנו
    וקבל גישה לקורס המלא!

    מסלולים להרשמה
    דילוג לתוכן