שיעור מוסבר מעולה תודה!!
לקורס תכנות בפריוריטי
הקורס שלפניכם הינו הקורס הוירטואלי הראשון מסוגו להכשרת מתכנתי פריוריטי.
הקורס כולל הסברים, דוגמאות ותרגילים, לכל כליי הפיתוח העיקריים בפריוריטי.
הקורס עובד בצמוד ל SDK צעד אחרי צעד.
הקורס מתאים לבעלי רקע יישומי בפריוריטי אשר רכשו רקע בסיסי בבסיסיי נתונים ו SQL.
הקדמה | ברוכים הבאים ומה מצפה לנו בקורס?
כאן יהיה מוצג תרגיל שיעורי הבית שלכם…
כאן יוצג הפתרון שלי לתרגיל.
בחלק מהשיעורים יהיה גם סרטון הסבר.
ברוכים הבאים לקורס תכנות בפריוריטי.
הקורס נבנה ומועבר על ידי רועי בן מנחם – מומחה בפיתוח ויישום פריוריטי, בעל תעודות הסמכה מבית התוכנה Priority Software.
בעזרת הסרטונים תלמדו צעד אחרי צעד את כל מה שצריך כדי להפוך למתכנתיי פריוריטי, ותוכלו להתמודד על כל תפקיד רלוונטי בתעשייה.
המפתח להצלחה הוא לצפות בכל סרטון ולנסות בעצמכם את הדוגמאות המוצגות בו, לאחר מכן, לנסות לפתור את שיעורי הבית…מבלי להציץ בתשובות…
לאחר מכן להשוות את הפתרון שלכם לתשובות.
תמיד טוב לבדוק בתגובות אם יש הערות חשובות שתלמידים אחרים רשמו, וכמובן לרשום תגובות ותובנות שלכם.
כדי להנות מכל התכנים של הקורס וגם לקבל ליווי צמוד והדרכה ממתכנת מומחה, יש להירשם בקישור.
https://simplyct.co.il/shop-course
בהצלחה!
מבוא | קישור להורדת התוכנה ולמדריך הרשמי SDK של חברת פריוריטי
שיעורי הבית בשיעור הזה, היא להוריד את התוכנה בהצלחה, ולפתוח אותה במחשב המקומי.
טיפ חשוב!!! לפני הרצת קובץ ההתקנה, כבו את תוכנת האנטי וירוס אם יש לכם כזו!
לעיתים ההתקנה נכשלת בעקבות חסימות של תוכנת אנטי וירוס.
בשיעור זה נלמד איך להוריד את התוכנה מהלינק.
הורדת התוכנה והתקנתה על המחשב המקומי אינה מסובכת, אך מצריכה ידע בסיס במחשבים.
תלמידים שנרשמו לאחד המסלולים בתשלום, יכולים לקבל עזרה לגבי ההתקנה בדרכי ההתקשרות המוצעות במסלולים אלה.
חברת פריוריטי מציעה באתר החברה, מסמך מפורט מאוד, באנגלית, המתאר את כל יכולות התכנות במערכת הפריוריטי.
מסמך זה נקרא באנגלית SDK, ניתן לצפות בו בלינק.
המסמך מאוד טכני ומטרתו אינה ללמד איך לתכנת, אלא לתת מידע למי שכבר יודע לתכנת בפריוריטי.
אנחנו בקורס, נעבור באופן מסודר על פרקי ה SDK ונסביר את עקרונות התכנות של כל פרק, כך שבהמשך תוכלו להתעמק יותר בכל פרק בעצמכם.
פרק 1 | סרטון 1 | הקדמה, טבלאות ועמודות, מפתחות וחוקים של מפתחות
הקדמה, טבלאות ועמודות,מפתחות וחוקים של מפתחות
Constructing and Modifying Database Tables
פרק 1 | סרטון 2 | בניית טבלאות, שינוי והוספת עמודות, שינוי והוספת מפתחות' צפיה בטבלאות במערכת ושימוש ב WINDBI
צרו טבלאות למכוניות ונהגים, כך שכל נהג יכול לנהוג בכמה מכוניות, הוסיפו אפיונים למכונית ולנהגים כיד הדמיון על ידי הוספת עמודות.
הוסיפו לטבלת מוצרים שדה בשם תאור2 ,שדה בשם תאור לועזי 2 , מחיר נוסף ומשקל לפריט
Constructing and Modifying Database Tables
פרק 2 | סרטון 1 | שימוש מתקדם ב WINDBI , סינטקס, פונקציות שמורות, קבועים ומשתנים
SQL Syntax
שימוש מתקדם ב WINDBI , סינטקס, פונקציות שמורות, קבועים ומשתנים
פרק 2 | סרטון 2 | בקרת זרימה של קוד
צרו קוד אשר בקבל מספר שלם כלשהו, ומחשב את סכום כל המספרים מאפס עד המספר שנבחר. לדוגמא אם נבחר 7, התשובה תהייה 1+2+3+4+5+6+7 .
רמז, הגדירו MYNUMBER = 7: והשתמשו ב LOOP WHERE כדי ליצור לולאה שתיפסק בהגעה לערך הנדרש. בתוך הלולאה חשבו את SUM: ובסוף הציגו אותו על המסך.
רמז, הגדירו MYNUMBER = 7: והשתמשו ב LOOP WHERE כדי ליצור לולאה שתיפסק בהגעה לערך הנדרש. בתוך הלולאה חשבו את SUM: ובסוף הציגו אותו על המסך.
נושא השיעור: בקרת זרימה של קוד
פרק 2 | סרטון 3 | לולאות קורסור CURSOR והפניות ל SUB ROUTINGS
כיתבו קורסור שעובר על כל הלקוחות במערכת, ומעדכן לכל לקוח שמכיל את האות 'א' ערך 'א' בפרמטר 1
לולאות קורסור CURSOR והפניות ל SUB ROUTINGS
סרטון אש!!
פרק 2 | סרטון 4 | שיטות פלט, שימוש ב LIKE, Outer Join, והפקודה LINK
הפיקו שאילתות לקובץ, כיתבו שאילתות תוך שימוש במספר פקודות LIKE, בצעו פקודות LINK ובדקו את הערכים המוחזרים לאחר LINK ולאחר UNLINK
שיטות פלט, שימוש ב LIKE, Outer Join, והפקודה LINK
פרק 2 | סרטון 5 | תנאי IF ELSE , פונקציות על מספרים, מחרוזות ותאריכים
תנאי IF ELSE , פונקציות על מספרים, מחרוזות ותאריכים
פרק 2 | סרטון 6 | המשך העמקה בפונקציות של פריוריטי והבנת סוגי המשתנים
המשך העמקה בפונקציות של פריוריטי והבנת סוגי המשתנים
פרק 3 | סרטון 1 | מחולל מסכים, חלק 1
פרק 3 | סרטון 2 | מחולל מסכים, חלק 2
בנו טבלה פרטית עם מנהלי עבודה, קשרו לכל מנהל עבודה לקוח, הוסיפו תנאים ועיצוב לפי הסרטון.
בנו טבלה פרטית נוספת, לדוגמא טבלת מכונות, וחברו אותה לטבלה קיימת, לדוגמא מוצרים.
בסרטון זה נלמד לבנות מסך על בסיס טבלה פרטית.
פרק 3 | סרטון 3 | מסכי בן
תרגיל א: בנו מסך בשם מכוניות, לכל מכונית הקצו שם, שנת מודל ומספר לוחית זיהוי. הוסיפו למסך המכוניות מסך בן בשם 'טיפולים למכונית' שיאפשר לתעד תאריכי טיפול ותאור הטיפול.
תרגיל ב: הוסיפו למסך לקוחות מסך בן המציג את בני המשפחה של הלקוח. לקוח בן משפחה, יש לתעד שם, מין, ותאריך לידה.
בשיעור זה נלמד עוד על מחולל המסכים
פרק 3 | סרטון 3 | טריגרים של מסכים
פרק 3 | סרטון 4 | טריגרים, המשך
הגדירו לכל פריט במערכת, שלאחר הקלדת פרמטר 2, לפני היציאה משדה פרמטר 2, המערכת תחפש האם יש מקט שלו פרמטר 1 + פרמטר 2 זהים, במידה וכן, תוצג הודעת אזהרה.
פרק 3 | סרטון 4 | המשך בנושא טריגרים של רשימות בחירה , Choose & Search
תרגיל עבור סרטון זה: הוסיפו לכרטיס פריט שדה טקסט,
והוסיפו לשדה רשימות בחירה מכל הסוגים ,
רשימה קצרה משאילתה,
רשימה קצרה מהודעות מסך,
רשימה עם חיפוש על פי מספר תאור ותאור לועזי
פרק 4 | סרטון 1 | מחולל דוחות
תרגיל א – הוסיפו לדוח מוצג בסרטון את פירוט ההזמנה, מקט, כמותף מחיר
תרגיל ב – בנו דוח המציג את המלאי הנוכחי, שדות מחסן, מקט, כמות
מחולל דוחות הינו כלי מרכזי בתכנות פריוריטי, המאפשר בניית דוחות פשוטים.
המחולל מאפשר להציג טבלאות כדוחות, לבצע חיתוכים בין טבלאות כדי להציג מבני נתונים מורכבים.
פרק 4 | סרטון 2 | בניית ממשקים למסכים
צרו קובץ אקסל עם רשימת מוצרים, לכל מוצר רישמו מקט, תאור, מחיר בסיס
שימרו את הקובץ לפי ההסברים בסרטון
צרו ממשק למסך שטוען את הקובץ
בשיעור זה נלמד איך לבנות ממשק למסך מקובץ.
מדובר באחד הכלים הכי שימושיים במערכת הפריוריטי.
הכלי הזה נחשב כלי יישומי ולא תכנותי, ואולי אם כבר מכירים אותו, אבל חובה להכיר אותו לעומק כדי להתקדם לתכנות של פרוצדורות שמפעילות ממשקים שילמדו בפרקים הבאים.
פרק 4 | סרטון 3 | מחולל ממשקים למסכים בשתי רמות
סרטון זה הינו המשך העמקה בנושא מחולל ממשקים למסכים
פרק 4 | סרטון 4 | טעינת קבצי XML בעזרת מחולל ממשקים למסכים
טעינת קבצים במבנה XML הינה טכניקה שעדיין נפוצה, אך מורכבת
לכן מוקדש לה סרטון מלא
פרק 5 | סרטון 1 | פרוצדורות
פרוצדורות הינן חלק מהלב הפועם של מערכת הפריוריטי.
בשיעור זה נלמד מהי פרוצדורה ואיך משתמשים בה.
פרק 5 | סרטון 2 | פרוצדורות, המשך
תרגיל א: כיתבו פרוצדורה, שמעדכנת לקבוצת פריטים שתיבחר, את מחיר הבסיס, לפי מחיר שיקבע בקלט, באם המחיר שנקבע, גבוה מהמחיר הנוכחי לאותו פריט.
תרגיל ב: בנו דוח/פרוצדורה, המציג את כל הלקוחות שיש להם סה"כ הזמנות פתוחות גדול מהסכום שבקלט. השתמשו בטבלה זמנית של טבלת לקוחות כדי לעבד את הנתונים ולהציגם. רמז: יש לחשב מיהם הלקוחות העומדים בתנאי של סכום הזמנות פתוחות, ואותם להכניס לטבלה זמנית של לקוחות, ואת הטבלה הזמנית של לקוחות להציג בדוח.
סרטון המשך בנושא פרוצדורות
הפתרון שלי לתרגיל ב:
SELECT SQL.TMPFILE INTO :$.SK4 FROM DUMMY;
LINK STACK4 TO :$.SK4;
ERRMSG 999 WHERE :RETVAL <= 0;
INSERT INTO STACK4(KEY,REALDATA)
SELECT ORDERS.CUST,SUM(QPRICE)
FROM ORDERS
WHERE CLOSED 'C'
GROUP BY 1
HAVING SUM(QPRICE) > :$.TOT;
UNLINK STACK4;
פתרון לתרגיל ב-
LINK STACK4 TO :$.SK4;
ERRMSG 999 WHERE :RETVAL <=0;
INSERT INTO STACK4 (KEY,REALDATA)
SELECT ORDERS.CUST,SUM(ORDERITEMS.QPRICE)
FROM ORDERS,ORDERITEMS
WHERE ORDERS.ORD = ORDERITEMS.ORD
AND ORDERITEMS.CLOSED 'C'
GROUP BY 1
HAVING SUM(ORDERITEMS.QPRICE) > :$.NUM;
UNLINK STACK4;
פרק 5 | סרטון 3 | שימוש בטבלאות זמניות STACK בתוך פרוצדורה ודוח
תרגיל א – הוסיפו לדוח בעמודה TEXTDATA ערך טקסטואלי קבוע כפי שהוצג בסוף הסרטון.
תרגיל ב – הוסיפו לדוח בעמודה TEXTDATA ערך טקסטואלי שתלוי בסכום שחושב, לדוגמא לכל סכום גדול מ 1000 יהיה מוצג 'גדול' ולכל סכום קטן מ 1000 יהיה מוצג 'קטן', רמז, יש להריץ קורסור על הטבלה הזמנית ואז לעשות לה עדכון בעזרת UPDATE .
מצורף הקוד שמוצג בשיעור לשימושכם/ן
SELECT ORDERS.CUST,SUM(ORDERITEMS.ABALANCE)
FROM ORDERS,ORDERITEMS
WHERE ORDERS.ORD = ORDERITEMS.ORD
AND ORDERITEMS.CLOSED <> 'C'
GROUP BY 1
FORMAT;
/****************/
SELECT SQL.TMPFILE INTO :SK4 FROM DUMMY;
LINK STACK4 TO :SK4;
ERRMSG 999 WHERE :RETVAL <=0;
INSERT INTO STACK4(KEY,INTDATA,TEXTDATA)
SELECT ORDERS.CUST,SUM(ORDERITEMS.ABALANCE) ,'sdfdfdf'
FROM ORDERS,ORDERITEMS
WHERE ORDERS.ORD = ORDERITEMS.ORD
AND ORDERITEMS.CLOSED <> 'C'
GROUP BY 1
;
SELECT KEY,INTDATA,TEXTDATA FROM STACK4 FORMAT;
UNLINK STACK4;
בשיעור זה ניקח את נושא הטבלאות הזמניות צעד אחד קדימה ונלמד להשתמש בטבלאות ייעודיות לסיכום נתונים וביצוע מניפולציה על נתונים, תוך שמירתם באופן זמני והצגתם בדוח.
הפתרון שלי להוספת טקסט לדו"ח בעמודה TEXTDATA
SELECT SQL.TMPFILE INTO :$.SK4 FROM DUMMY;
LINK STACK4 TO :$.SK4;
ERRMSG 999 WHERE :RETVAL :$.TOT;
UNLINK STACK4;
פתרון לתרגיל א
LINK STACK4 TO :$.SK4;
ERRMSG 999 WHERE :RETVAL <=0;
INSERT INTO STACK4 (KEY,REALDATA,TEXTDATA)
SELECT ORDERS.CUST,SUM(ORDERITEMS.QPRICE),'ספירררררררררר'
FROM ORDERS,ORDERITEMS,DUMMY
WHERE ORDERS.ORD = ORDERITEMS.ORD
AND ORDERITEMS.CLOSED 'C'
GROUP BY 1
HAVING SUM(ORDERITEMS.QPRICE) > :$.NUM;
UNLINK STACK4;
הצלחתי את תרגיל ב' בלי שימוש בקורסור
LINK STACK4 TO :$.ST4;
ERRMSG 999 WHERE :RETVAL <= 0;
LINK ORDERS TO :$.ORR;
ERRMSG 999 WHERE :RETVAL <= 0;
INSERT INTO STACK4 (KEY, REALDATA, TEXTDATA)
SELECT CUST, SUM(QPRICE), ''
FROM ORDERS
WHERE CUST 0
GROUP BY 1;
UPDATE STACK4 SET TEXTDATA = 'BIG' WHERE REALDATA > 1000;
UPDATE STACK4 SET TEXTDATA = 'SMALL' WHERE REALDATA < 1000;
UNLINK STACK4;
UNLINK ORDERS;
פרק 6 | סרטון 1 | מחולל מסמכים
בהתאם למוסבר בסרטון, העתיקו את המסמך 'הדפסת הזמנה' , העתיקו מספר דוחות בתוך הפרוצדורה.
נסו לשנות את המיקומים של הדוחות בתוך הפרוצדורה על ידי שינוי המספר שכתוב לפרמטר בשלב 500 ו/או על ידי שינוי ההגדרות במסך הנכד של הפרמטר.
בצעו שינויים בדוחות שהעתקתם וצפו בהשפעה של השינויים על הדוח.
אתגר למתקדמים:
מנהל המכירות של החברה רוצה שבכל הזמנה שמופקת ללקוח יוצגו כל ההזמנות הפתוחות של הלקוח.
הוסיפו דוח שמציג את כל ההזמנות הפתוחות של אותו לקוח. שימו לב לא להציג את ההזמנה הנוכחית.
רמז: יש ליצור דוח הזמנות פתוחות ולהגדיר את מפתח ההזמנה שונה מההזמנה הנוכחית.
בשיעור זה נלמד לבנות מסמך שאפשר להדפיס ללקוח.
מסמך הוא פרוצדורה שמשלבת מספר דוחות, זו הסיבה ששיעור זה מגיע אחרי לימוד מחולל דוחות ומחולל פרוצדורות, כי הוא משלב ביניהם.
פרק 7 | סרטון 1 | שימוש בממשקים 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;
פרק זה מלמד על אחד מהכלים החזקים ביותר במערכת הפריוריטי, הממשק למסך. כאן תלמדו איך להפעיל ממשק למסך מקובץ ומטבלה, מתוך קוד בצורה דינאמית, כולל ניפוי שגיאות וטיפול בתוצרי הממשק.
פרק 7 | סרטון 2 | מיפוי קבצים בתקיה וטעינת קבצים מתקיה לממשק למסך
נסו ליצור את התהליך המתואר בסרטון עבור ממשק למסך אחר, חוללו שגיאות כדי לראות את התוצאה.
נסו ליצור פרוצדורה שעושה את אותו תהליך שהוצג בסרטון
הוסיפו קוד שמעביר את הקובץ בשמו המקורי לתת תקיה בשם loaded אם הטעינה הצליחה, ולתת תקיה בשם error אם התקבלו שגיאות בממשק.
מצורף הקוד של הסרטון לשימושכם.
:DIR = '../../system/load/demo';
SELECT SQL.TMPFILE INTO :ST6 FROM DUMMY;
SELECT SQL.TMPFILE INTO :MSG FROM DUMMY;
EXECUTE FILELIST :DIR,:ST6,:MSG;
/* In the linked file of the STACK6 table, you will find all
files and folders under the input directory :DIR. */
LINK STACK6 TO :ST6;
GOTO 99 WHERE :RETVAL <= 0;
DECLARE NEWFILES CURSOR FOR
SELECT TOLOWER(NAME)
FROM STACK6 WHERE NAME <> ";
OPEN NEWFILES;
GOTO 90 WHERE :RETVAL <= 0;
:FILENAME = ";
:TOFILENAME = '../../system/load/parts.txt';
LABEL 10;
FETCH NEWFILES INTO :FILENAME;
GOTO 85 WHERE :RETVAL <= 0;
:PATH = STRCAT(:DIR,'/',:FILENAME);
/* now the variable :path holds the filename */
SELECT :PATH FROM DUMMY FORMAT;
EXECUTE COPYFILE :PATH, :TOFILENAME;
EXECUTE INTERFACE 'ROYY_TEST';
SELECT * FROM ERRMSGS WHERE USER = SQL.USER FORMAT;
LOOP 10;
LABEL 85;
CLOSE NEWFILES;
LABEL 90;
UNLINK STACK6;
LABEL 99;
על מנת להעביר את הקובץ לתקיית error אפשר לבדוק האם RETVAL של טבלת השגיאות מחזיר ערך ואם לא לעשות מיד את ה LOOP 10
כלומר צריך להוסיף אחרי השורה
SELECT * FROM ERRMSGS WHERE USER = SQL.USER FORMAT;
את הקוד הבא:
LOOP 10 WHERE :RETVAL <= 0;
EXECUTE COPYFILE :PATH, :ERRPATH;
בשיעור זה נלמד איך לטעון קבצים מתוך תיקיה, אחד אחרי השני באופן רציף, תוך שימוש בממשק למסך.
פרק 8 | סרטון 1 | שימוש ברכיב 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;
פרק בונוס | סרטון 1 | איך למחוק שורות בפריוריטי בצורה תכנותית?
מעוניין בגישה לשיעורים נוספים? הרשם לאחד מהמסלולים שלנו וקבל גישה לקורס המלא!
מסלולים להרשמה