מבט כולל על Microsoft Power Fx

Power Fx היא שפת הקוד הנמוך שבה Microsoft Power Platform משתמשת. זו שפת תיכנות כללית, מוקלדה מאוד, הצהרתית ופונקציונלית.

Power Fx מתבטאת בטקסט ידידותי לבני אדם. זו שפה עם קוד נמוך, שיוצרים יכולים לעבוד איתה ישירות בשורת נוסחאות דמויית Excel או בחלון טקסט של Visual Studio Code. ה"נמוך" בקוד הנמוך מגיע מהטבע התמציתי והפשוט של השפה, מה שמקלות על משימות תיכנות נפוצות עבור יצרנים ומפתחים. היא מאפשרת לספקטרום המלא של פיתוח ללא קוד עבור אלה שמעולם לא תכנתו קודם לכן כדי "pro-code" עבור מקצוען העונה, ללא למידה או שכתוב צוקים באמצע. צוותים מגוונים יכולים לשתף פעולה ולחסוך זמן והוצאות.

הערה

  • Microsoft Power Fx הוא השם החדש לשפת הנוסחאות עבור יישומי בד ציור ב- Power Apps. מבט כולל זה ומאמרים משויכים הם עבודה המתבצעת כעת מכיוון ש- Microsoft מחלץ את השפה מאפליקציות בד ציור, משלב אותה עם מוצרי Microsoft Power Platform אחרים והופכת אותה לזמינה קוד פתוח. כדי לקבל מידע נוסף על השפה ולהתנסות בה היום, ראה תחילת העבודה עם נוסחאות ביישומי בד ציור בתיעוד של Power Apps והירשם לגירסת ניסיון של Power Apps בחינם.
  • במאמר זה, היוצרים מתייחסים למשתמשים העשויים להשתמש בתכונה בכל קצה של ספקטרום מיומנויות התיכנות. מפתחים מתייחסים למשתמשים כאשר התכונה מתקדמת יותר ו להניח מעבר להיקף של משתמש Excel טיפוסי.

Power Fx מאגד אובייקטים יחד באמצעות נוסחאות הצהרתיות דמויות גיליון אלקטרוני. לדוגמה, חשוב על מאפיין גלוי של פקד ממשק משתמש כתא בגליון עבודה של Excel, עם נוסחה משויכת המחשבת את ערכו על סמך המאפיינים של פקדים אחרים. לוגיקת הנוסחה מחשבת מחדש את הערך באופן אוטומטי, בדומה לאופן בו גיליון אלקטרוני משפיע על נראות הפקד.

בנוסף, Power Fx מציע לוגיקה הכרחית בעת הצורך. בגליונות עבודה בדרך כלל אין לחצנים שיכולים להגיש שינויים למסד נתונים, אבל ביישום לעתים קרובות כן. אותה שפת ביטויים משמשת הן הלוגיקה הצהרתית והן ללוגיקה חיונית.

Microsoft ש- Power Fx יהיה זמין בתור תוכנת קוד פתוח. הוא משולב כעת באפליקציות בד ציור, Microsoft הוא בתהליך של חילוץ שלו מ- Power Apps לשימוש במוצרי Microsoft Power Platform אחרים ובשימוש קוד פתוח. עוד מידע: Microsoft Power Fx ב-GitHub

מאמר זה כולל סקירה כללית של השפה ועקרונות העיצוב שלה. לקבלת מידע נוסף על Power Fx, עיין במאמרים הבאים:

גיליון אלקטרוני של Think

מה אם היית יכול לבנות יישום באותה קלות כמו שאתה בונה גליון עבודה ב-Excel?

מה אם אתה יכול לנצל את הידע הקיים בגיליון האלקטרוני שלך?

שאלות אלה עוררו השראה ליצירת Power Apps ו- Power Fx. מאות מיליוני אנשים יוצרים גליונות עבודה עם Excel מדי יום. בוא מביאים להם יצירת אפליקציות קלה ומשתמשת Excel שהם כבר מכירים. על-ידי חילוץ Power Fx מתוך Power Apps, אנו עומדים לענות על שאלות אלו לאוטומציה של בנייה, או לסוכן וירטואלי, או לתחומים אחרים.

בכל שפות התיכנות, כולל Power Fx, יש ביטויים: דרך לייצג חישוב על פני מספרים, מחרוזות או סוגי נתונים אחרים. לדוגמה, mass * acceleration מייצג ברוב השפות מכפלה של mass ו- acceleration. באפשרותך למקם את התוצאה של ביטוי במשתנה, להשתמש בו כארגומנט לפרוצדורה או לקנן אותו בביטוי גדול יותר.

Power Fx לוקח את הצעד הזה קדימה. הביטוי בפני עצמו לא אומר שום דבר על מה שהוא מחשב. על היוצר למקם אותו במשתנה או להעביר אותו לפונקציה. ב- Power Fx, במקום לכתוב רק ביטוי שאין לו משמעות ספציפית, אתה כותב נוסחה שמאגדת את הביטוי למזהה. אתה כותב force = mass * acceleration כנוסחה לחישוב force. בעת mass ביצוע שינויים acceleration , עדכונים force אוטומטיים לערך חדש. הביטוי תיאר חישוב, נוסחה נתנה לחישוב הזה שם והשתמשה בו כמתכון. מסיבה זו אנו מתייחסים ל- Power Fx כשפת נוסחאות.

למשל, הנוסחה מתוך Stack Overflow הזו מחפשת מחרוזת בסדר הפוך. ב-Excel זה נראה כמו התמונה הבאה.

חיפוש הפוך

צילום מסך של סרגל נוסחאות ב-Excel עם הנוסחה: = RIGHT (A1, LEN (A1) - FIND ("|", SUBSTITUTE (A1, "", "|", LEN (A1) -LEN (SUBSTITUTE (A1, " "," ")))) תא A1 מכיל את הטקסט "שלום עולם! כמה נחמד לפגוש אותך!" תא A2 מכיל את הטקסט "אותך!"

Power Fx עובד עם אותה נוסחה, כשההפניות לתאים מוחלפות בהפניות למאפייני פקדים:

חיפוש הפוך של Power Fx.

צילום מסך של שורת נוסחאות של Power Fx ב- Power Apps. הנוסחה היא ‎=RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ",""))))‎ בתיבת הקלט מתחת לנוסחה, הטקסט "שלום, עולם! נחמד לפגוש אותך!" מופיע, אות אחר אות. במקביל בתיבת התווית, מופיעות אותיות המילה האחרונה. כאשר הטקסט המלא מופיע בתיבת הקלט, המילה "אתה!" מופיעה בתיבה 'תווית'.

כאשר ערך Input הפקד משתנה, הפקד Label מחשב מחדש את הנוסחה באופן אוטומטי ומציג את הערך החדש. אין כאן מטפלי אירוע של OnChange כפי שמקובל בשפות אחרות.

דוגמה נוספת משתמשת בנוסחה Fill עבור צבע המסך. כאשר המחוונים הקונים באדום, בירוק ובכחול משתנים, צבע הרקע משתנה באופן אוטומטי כאשר הוא מחושב מחדש.

מחוון צבע.

אין אירועי OnChange לפקדי המחוון כמקובל בשפות אחרות. אין דרך להגדיר במפורש את הערך של מאפיין Fill בכלל. אם הצבע אינו פועל כצפוי, עליך לבחון את הנוסחה היחידה הזו כדי להבין מדוע הוא לא עובד. אתה לא צריך לחפש ביישום כדי למצוא פיסת קוד המגדירה את המאפיין בזמן לא צפוי; אין רכיב זמן. ערכי הנוסחה הנכונים נשמרים תמיד.

כאשר המחוונים מוגדרים לצבע כהה, התוויות עבור אדום, ירוק וכחול משתנות ללבן כדי לפצות. שינוי זה מתרחש באמצעות נוסחה פשוטה במאפיין Color עבור כל פקד תווית.

מחווני צבעים של Power Fx.

הנוסחה מה שמצוינת בנוסחה Fill זו היא שהיא מבודדת ממה שקורה בצבע: אלה הם שני חישובים שונים לחלוטין. במקום הליכים מונוליטיים גדולים, הלוגיקה של Power Fx מורכבת בדרך כלל מהרבה נוסחאות קטנות יותר שאינן תלויות. מבנה זה מקל על הבנתם ומאפשר שיפורים מבלי להפריע ללוגיקה קיימת.

Power Fx היא שפה הצהרתית, בדיוק כמו Excel. היוצר מגדיר איזו התנהגות הוא רוצה, אבל המערכת צריכה לקבוע איך ומתי לבצע זאת ולבצע מיטוב לתהליך. כדי שהתהליך יהיה מעשי, רוב העבודה נעשית באמצעות פונקציות טהורות ללא תופעות לוואי, דבר ההופך את Power Fx גם לשפה פונקציונלית (שוב, בדיוק כמו Excel).

פעילות ללא הפסקה

אחד ההיבטים המגדירים את גליונות העבודה הוא שהם תמיד חיים, והשינויים באים לידי ביטוי באופן מיידי. אין מצב הידור או הפעלה בגליון עבודה. בעת שינוי נוסחה או הזנת ערך, גליון העבודה מחושב מחדש באופן מיידי כדי לשקף את השינויים. שגיאות שזוהו מופיעות מיד ואל תפריע לשאר גליון העבודה.

Power Fx מיישם את אותו הדבר. הוא משתמש במהדר מצטבר כדי לשמור באופן רציף על סינכרון התוכנית עם הנתונים שהיא פועלת בהם. שינויים מופצים באופן אוטומטי דרך הגרף של התוכנית, המשפיעים על התוצאות של חישובים תלויים. חישובים אלה עשויים לגרום למאפיינים בפקדים כגון צבע או מיקום. המהדר המצטבר מספק גם חוויה עשירה של עריכת נוסחאות עם IntelliSense, הצעות, השלמה אוטומטית ובדיקות סוג.

בהנפשה הבאה, מספר הסדר מוצג בפקד תווית התלוי בפקד המחוון, למרות שקיימות שתי שגיאות בתוויות שמתחתיו. היישום חי ואינטראקטיבי מאוד. הנסיון הראשון לתקן את הנוסחה באמצעות הזנת .InvalidName גורם מיד לקו אדום ושגיאה מוצגת, כראוי, אך היישום ימשיך לפעול.

תגובה מידית.

בעת הזנת , החלונית .Employeeמוסיפה Data את הטבלה Employees, מאחזרת מטה-נתונים עבור טבלה זו ומציעה באופן מיידי הצעות עבור עמודות. פשוט הלכת על קשר גומלין מטבלה אחת לאחרת, והמערכת ביצעה את ההתאמות הדרושות בהפניות של האפליקציה. אותו דבר קורה כשמוסיפים .Customer.

אחרי כל שינוי, המחוון ממשיך עם הערך האחרון שלו וכל משתנה שומר על ערכו. לאורך כל, מספר ההזמנה ממשיך להיות מוצג בתווית העליונה כפי שהוא אמור להיות. האפליקציה חיה, מעבדת נתונים אמיתיים, כל הזמן. באפשרותך לשמור אותו, ללכת משם, ואחרים יכולים לפתוח אותו ולהשתמש בו בדיוק כמו Excel. אין שלב גירסת Build, אין הידור, יש רק שלב פרסום כדי לקבוע איזו גירסה של היישום מוכנה למשתמשים.

קוד מועט

Power Fx מתאר את הלוגיקה העסקית בנוסחאות תמציתיות אך חזקות. רוב הלוגיקה מקטינה את השורה אחת, עם שפע של ביטוי ושליטה עבור צרכים מורכבים יותר. המטרה היא למזער ככל האפשר את מספר המושגים שיוצר צריך להבין, באופן אידיאלי לא יותר ממה שמשתמש Excel כבר אמור לדעת.

לדוגמה, כדי לחפש את השם הפרטי של עובד עבור הזמנה, יש לכתוב את Power Fx כפי שמוצג בהנפשה הבאה. מעבר למושגי Excel, הרעיון הנוסף היחיד המשמש כאן הוא סימון הנקודה "." להתעמקות במבנה נתונים, במקרה זה .Employee.'First Name'. ההנפשה מציגה את המיפוי בין חלקי נוסחת Power Fx והמושגים שיש לקודד במפורש ב- JavaScript המקביל.

JavaScript עם קידוד מועט.

בוא נבחן לעומק את כל הדברים ש- Power Fx עושה בשבילנו ואת החופש שיש לו למטב מאחר שהנוסחה היא הצהרתית:

  • אסינכרוני כל פעולות הנתונים ב Power Fx הם אסינכרוניים. היוצר לא צריך לציין זאת, ואין לו צורך לסנכרן פעולות לאחר סיום הקריאה. היוצר לא חייב להיות מודע למושג הזה, והוא לא צריך לדעת מהי הבטחה או פונקציית Lambda.

  • מקומי ומרוחק : Power Fx משתמש באותו תחביר ופונקציות עבור נתונים שנמצאים מקומיים בזיכרון ומחבר מרחוק מסד נתונים או שירות. המשתמש לא צריך לחשוב על הבחנה זו. Power Fx מקצה אוטומטית לשרת את מה שהוא יכול, כדי שמסננים ופעולות מיון יעובדו שם בצורה יעילה יותר.

  • נתונים רלציוניים הזמנות ולקוחות הן שתי טבלאות שונות, עם קשר גומלין של רבים לאחד. שאילתת OData דורשת "$expand" כולל היכרות עם מפתח זר, בדומה ל- Join ב-SQL. כל הדברים האלה לא קיימים בנוסחה; למעשה, מפתחות של מסדי נתונים הם עוד מושג שהיוצר לא צריך להכיר. היוצר יכול להשתמש בסימון נקודות פשוט כדי לגשת לגרף הקשרים המלא מרשומה.

  • הַקרָנָה בעת כתיבת שאילתה, מפתחים רבים כותבים select * from table, אשר מחזיר את כל עמודות הנתונים. Power Fx מנתח את כל העמודות הנמצאות בשימוש ביישום כולו, אפילו בין יחסי תלות בנוסחאות. ההקרנה ממוטבת באופן אוטומטי, ושוב, היוצר לא חייב לדעת מה פירוש המושג "הקרנה".

  • לאסוף רק את מה שצריך בדוגמה זו, ה- LookUp הפונקציה מרמזת שיש לאחזר רק רשומה אחת וזה כל מה שמוחזר. אם מבקשים רשומות נוספות באמצעות הפונקציה Filter שעשויה לחול על אלפי רשומות – רק דף נתונים אחד מוחזר בכל פעם, בסדר גודל של 100 רשומות בעמוד. המשתמש חייב לבצע מחווה בגלריה או בטבלת נתונים כדי לראות נתונים נוספים, והוא מביא נתונים נוספים עבורו באופן אוטומטי. היוצר יכול לנמק לגבי קבוצות נתונים גדולות מבלי שיצטרך לחשוב על הגבלת בקשות נתונים לנתחים הניתנים לניהול.

  • פועל רק בעת הצורך: הגדר נוסחה עבור המאפיין Text של פקד התווית. כאשר המשתנה שנבחר משתנה, הפונקציה LookUp מחושב מחדש באופן אוטומטי והתווית מתעדכנת. היוצר לא היה צריך לכתוב מטפל OnChange לבחירה ולא היה צריך לזכור שהתווית הזו תלויה בו. זהו תיכנות הצהרתי, כפי שהזכרנו מוקדם יותר: היוצר ציין מה הוא רוצה שיופיע בתווית, אבל לא איך ומתי צריך להביא אותה. אם תווית זו אינה גלויה מכיוון שהיא מוצגת על מסך שאינו גלוי, או שהמאפיין שלה הוא False, Visible באפשרותך לדחות חישוב זה עד שהתווית גלויה ולבטל אותה ביעילות אם הדבר מתרחש לעתים רחוקות.

  • Excel תחביר: משתמשים רבים יודעים שה- אמפרסנד (&) משמש לשרשור מחרוזת Excel. JavaScript משתמש בסימן חיבור (+), ושפות אחרות משתמשות בנקודה (.).

  • שמות תצוגה ולוקליזציה : First Name משמש ב- Power Fx נוסחה בזמן nwind_firstname משמש במקבילה של JavaScript. ב- Microsoft Dataverse ו- SharePoint, קיים שם תצוגה לעמודות וטבלאות בנוסף לשם לוגי ייחודי. שמות התצוגה לרוב הרבה יותר ידידותיים למשתמש, כמו במקרה זה, אך יש להם תכונה חשובה אחרת בכך שניתן למקם אותם. אם יש לך צוות רב לשוני, כל אחד מחברי הצוות יכול לראות את שמות הטבלאות והשדות בשפה שלו. בכל מקרי השימוש, Power Fx מוודא שהשם הלוגי הנכון נשלח למסד הנתונים באופן אוטומטי.

ללא קוד

אינך צריך לקרוא או לכתוב Power Fx כדי להתחיל לבטא לוגיקה. באפשרותך לבטא התאמות אישיות ולוגיות רבות באמצעות בוררים פשוטים ובנאי ממשק משתמש. כלים אלה, ללא קוד, מיועדים לקריאה ולכתיבה של Power Fx, כך שיש מספיק מקום כדי לאפשר למישהו להמשיך. עם זאת, כלים ללא קוד לעולם אינם מציעים את כל ההבעה של השפה המלאה. גם כאשר אתה משתמש בבונה ללא קוד, שורת הנוסחאות נמצאת במרכז ב- Power Apps כדי לחנך את היוצר לגבי הפעולות המתבצעות בשמו כדי שיוכלו להתחיל ללמוד על Power Fx.

בוא נבחן כמה דוגמאות. ב- Power Apps, לוח המאפיינים מספק מתגים וכפתורים "ללא קוד" עבור מאפייני הפקדים. בפועל, רוב ערכי המאפיינים הם סטטיים. אתה יכול להשתמש בבונה הצבעים כדי לשנות את צבע הרקע של Gallery. שים לב שסרגל הנוסחאות משקף את השינוי הזה ומעדכן את הנוסחה לשיחת RGBA שונה. בכל עת, באפשרותך לעבור אל שורת הנוסחאות ולבצע שינוי זה צעד נוסף - בדוגמה זו, ColorFade באמצעות כדי להתאים את הצבע. מאפיין הצבע עדיין מופיע בחלונית המאפיינים, אבל סמל fx יופיע בריחוף ואתה תופנה לסרגל הנוסחאות. זה עובד באופן מלא בשתי דרכים: הסרה של שיחת ColorFade תחזיר את הצבע למשהו שלוח המאפיינים יכול להבין, ואתה יכול להשתמש בו שוב כדי להגדיר צבע.

צבע ללא קידוד.

הנה דוגמה מורכבת יותר. בגלריה מוצגת רשימת עובדים מ-Dataverse. Dataverse מספק תצוגות על נתוני טבלה. באפשרותך לבחור אחת מהתצוגות הללו והנוסחה תשתנה כדי להשתמש בפונקציה Filter עם שם תצוגה זה. באפשרותך להשתמש בשני התפריטים הנפתחים כדי לחייג לטבלה הנכונה ולהצג מבלי לגעת בשורת הנוסחאות. אבל בוא נגיד שאתה רוצה ללכת רחוק יותר ולהוסיף מיון. באפשרותך להוסיף פונקציה זו בשורת הנוסחאות, ולוח המאפיינים מציג שוב סמל fx ומפנה שינויים ל שורת הנוסחאות. ושוב, אם אתה מפשט את הנוסחה למשהו שללוח המאפיינים יש אפשרות לקרוא ולכתוב, ניתן להשתמש בה.

מיון ללא קידוד.

דוגמאות אלה הן פשוטות. Power Fx הוא שפה נהדרת המתארת אינטראקציות ללא קוד. היא תמציתית, רבת-עוצמה וקל לנתח אותה. הוא מספק את חדר המצח, כי לעתים קרובות כל כך נדרש עם "אין צוקים" עד קוד נמוך.

קידוד מקצועי

יוצרי קודים נמוכים בונים לעתים פתרונות הדורשים עזרה של מומחה או שמפתח מקצועי מחליף אותם כדי לשמר ולשפר אותם. אנשי מקצוע מעריכים גם שפיתוח עם קידוד מועט יכול להיות קל יותר, מהיר יותר וזול יותר מבניית כלי מקצועי. לא כל מצב דורש את העוצמה המלאה של Visual Studio.

אנשי מקצוע רוצים להשתמש בכלים מקצועיים כדי להיות פרודוקטיביים יותר. באפשרותך לאחסן נוסחאות Power Fx בקובצי מקור של YAML, שניתן לערוך בקלות באמצעות Visual Studio Code, Visual Studio או כל עורך טקסט אחר. אחסון נוסחאות בקובצי YAML מאפשר לך להציב את Power Fx תחת בקרת מקור באמצעות GitHub, Azure DevOps או כל מערכת בקרת קוד מקור אחרת.

קוד מקצועי של Visual Studio Code.

קוד מקצועי - GitHub.

Power Fx תומך ברכיבים מבוססי נוסחאות לשיתוף ושימוש חוזר. הוא תומך בפרמטרים למרכיב מאפיינים, ומאפשר יצירה של פונקציות טהורות המוגדרות על-ידי המשתמש עם שיפורים נוספים בדרך.

בנוסף, Power Fx הוא מצוין בחיבור בין רכיבים ושירותים שנבנו על-ידי אנשי מקצוע. מחברים מודבקים מספקים גישה למאות מקורות נתונים ולפרטי אינטרנט. מחברים מותאמים אישית מאפשרים ל- Power Fx לשוחח עם כל שירות אינטרנט של REST. רכיבי קוד מאפשרים ל- Power Fx לקיים אינטראקציה עם JavaScript מותאם אישית באופן מלא על המסך ובדף.

עקרונות עיצוב

פשוט

Power Fx נועד לייעד את קהל היוצרים, וחבריו אינם מתורגלים כמפתחים. בכל מקום אפשרי, השפה משתמשת בידע שקהל זה כבר מכיר או יכול להתעדכן במהירות. מספר המושגים הנדרשים כדי להצליח נשאר מינימלי.

הפשטות טובה גם למפתחים. עבור קהל המפתחים, Power Fx שואף להיות שפה קוד נמוך שמחסוךת את הזמן הנדרש לבניית פתרון.

עקביות עם Excel

שפת Microsoft Power Fx מבוססת במידה רבה על שפת הנוסחה של Excel. היא מנצלת את Excel הידע והניסיון של היוצרים הרבים שמשתמשים גם Excel. סוגים, אופרטורים וסמנטיקה של פונקציות נשארו דומים ככל האפשר ל- Excel.

אם Excel לא מכיל תשובה, Power Fx next מחפש את SQL. אחרי Excel, SQL היא השפה ההצהרתית הבאה הנפוצה ביותר ויכולה לספק הנחיות לגבי פעולות נתונים וסוג חזק שלא קיים ב-Excel.

הצהרתי

היוצר מתאר מה הוא רוצה שההיגיון שלו יעשה, אבל לא בדיוק איך או מתי לעשות זאת. גישה זו מאפשרת למהדר למטב על-ידי ביצוע פעולות במקביל, דחיית עבודה עד לצורך, והזנה מראש של נתונים המאוחסנים במטמון ושימוש חוזר בהם.

לדוגמה, בגליון עבודה Excel, המחבר מגדיר את קשרי הגומלין בין התאים, אך Excel מחליט מתי וכיצד להעריך נוסחאות. באופן דומה, ניתן לחשוב על נוסחאות ביישום כ"חישוב מחדש" לפי הצורך בהתבסס על פעולות משתמש, שינויי מסד נתונים או אירועי שעון עצר.

פונקציונלי

השתמש בפונקציות טהורות שאין בהן תופעות לוואי. גישה זו גורמת ללוגיקה קלה יותר להבנה ומספקת למהדר את החופש הרב ביותר למיטוב.

בניגוד Excel, אפליקציות לפי טבען אינן משתקות את המצב. לדוגמה, יישומים כוללים לחצנים השמירה שינויים ברשומה במסד נתונים. פונקציות מסוימות, לכן, יש תופעות לוואי, למרות להגביל תופעות לוואי אלה ככל שהוא מעשי.

חיבור

כאשר הדבר אפשרי, הוסף פונקציונליות המורכבת היטב מהפונקציונליות הקיימת. באפשרותך פירוק פונקציות רבות-עוצמה לחלקים קטנים יותר שניתן להשתמש בהם בקלות רבה יותר באופן עצמאי.

לדוגמה, לפקד גלריה אין מאפייני Sort ו-Filter נפרדים. במקום זאת, עליך לחבר את Sort הפונקציות Filter והפונקציות למאפיין Items יחיד. תוכל ליצור שכבה של ממשק המשתמש למבוטא SortFilterItems ואופן פעולה מעל המאפיין באמצעות עורך דו-כיווני עבור מאפיין זה.

שימוש רב בסוגים

סוגי כל הערכים ידועים בזמן ההידור. גישה זו מאפשרת זיהוי מוקדם של שגיאות והצעות עשירות במהלך העריכה.

סוגים פולימורפיים נתמכים, אך לפני שתוכל להשתמש בהם, עליך להצמיד את הסוג שלהם לסוג סטטי, וסוג זה חייב להיות ידוע בזמן ההידור. הפונקציות IsType ו- AsType מסופקות לבדיקות והמרת סוגי משתנה.

היסק סוג

סוגים נגזרים מהשימוש בהם מבלי שהוצהרו. לדוגמה, הגדרת משתנה למספר גורמת לכך שסוג המשתנה נקבע כמספר.

שימוש בסוגים מתנגשים גורם לשגיאת זמן הידור.

מפרידים עשרוניים רגישים לאזור

יש אזורים מסוימים בעולם שמשתמשים בהם בנקודה (.) בתור המפריד העשרוני, בעוד שבמקומות אחרים משתמשים בפסיק (,). Excel בהתאם לוועידה האזורית. שפות תיכנות אחרות משתמשות בדרך כלל בנקודה קנונית (.) כמפריד העשרוני עבור כל המשתמשים ברחבי העולם. כדי שתהיה נגישות רבה ככל האפשר ליוצרים בכל הרמות, חשוב ש-3,14 יהיה מספר עשרוני לאדם בצרפת שהשתמש בתחביר הזה כל חייו.

לבחירת המפריד העשרוני יש השפעה מדורגת על מפריד הרשימה, המשמש לארגומנטים של קריאה לפונקציה, ועל אופרטור השרשור:

המפריד העשרוני של שפת העורך המפריד העשרוני של Power Fx מפריד הרשימה של Power Fx אופרטור השרשור של Power Fx
. (נקודה) . (נקודה) , (פְּסִיק) ; (נְקוּדָה וּפְסִיק)
, (פְּסִיק) , (פְּסִיק) ; (נְקוּדָה וּפְסִיק) ;; (נקודה-פסיק כפולה)

למידע נוסף: תמיכה גלובלית

לא מונחה אובייקטים

Excel אינו מונחה אובייקטים, וגם Power Fx אינו מונחה אובייקטים. לדוגמה, בשפות מסוימות, האורך של מחרוזת מבוטא כמאפיין של המחרוזת, למשל "Hello World".length, ב-JavaScript. במקום זאת, Excel ו- Power Fx מבטאים אורך זה במונחים של פונקציה, כמו Len( "Hello World" ).

רכיבים עם מאפיינים ופעולות שירות הם מונחי אובייקטים ו- Power Fx עובד איתם בקלות. אך כאשר הדבר אפשרי, העדיפו גישה פונקציונלית.

ניתן להרחבה

יוצרים יכולים ליצור את הרכיבים והפונקציות שלהם באמצעות Power Fx עצמו. מפתחים יכולים ליצור את הרכיבים והפונקציות שלהם על-ידי כתיבת JavaScript.

ידידותי למפתחים

למרות היוצרים הם היעד הראשי, נסה להיות ידידותי למפתחים בכל מקום אפשרי. אם היא אינה מתנגשת עם עקרונות העיצוב שתוארו קודם לכן, בצע פעולות באופן שהמפתח מעריך. לדוגמה, Excel אין יכולת להוסיף הערות, לכן השתמש בהערות מסוג 'קו' ו'מוטבע'.

התפתחות שפה

פיתוח שפות תכנות הוא הכרחי ויכול להיות מסובך. כל אחד חושש, ובצדק, שביצוע שינויים, לא משנה כמה טובה הייתה הכוונה, עלול לשבור את הקוד הקיים ולדרוש מהמשתמשים ללמוד תבנית חדשה. Power Fx מתייחס ברצינות לתאימות לאחור, אך צוות Power Fx גם מאמין מאוד שהם לא תמיד יקבלו את התאימות בפעם הראשונה, ושמשותף לקהילה יש אפשרות ללמוד מה הכי טוב. שפת תיכנות חייבת להתפתח, ו- Power Fx נועד לתמוך בהתפתחות השפה מההתחלה.

כל מסמך Power Fx שנשמר כולל חותמת גירסת שפה. אם צוות Power Fx רוצה לבצע שינוי לא תואם, הוא כותב את מה שהוא קורא לו "ממיר תאימות לאחור" אשר משכתב את הנוסחה באופן אוטומטי בפעם הבאה שהיא נערכת. אם השינוי הוא משהו משמעותי שהצוות צריך לחנך את המשתמש לגביו, האפליקציה מציגה הודעה עם קישור למסמכים. על-ידי שימוש במתקן זה, Power Fx עדיין יכול לטעון אפליקציות שנבנו עם גירסאות התצוגה המקדימה של Power Apps לפני שנים רבות, למרות כל השינויים שהתרחשו מאז.

לדוגמה, צוות Power Fx הציג את הפונקציה ShowError כדי להציג כרזת שגיאה עם רקע אדום.

הצג שגיאה.

המשתמשים אהבו את זה, אך הם ביקשו גם דרך להציג כרזה להצלחה (רקע ירוק) או כרזה עם מידע (רקע כחול). לכן, הצוות צורף לפונקציה כללית Notify יותר אשר מקבלת ארגומנט שני עבור סוג ההודעה. ייתכן שהצוות פשוט הוסיף Notify ושמר ShowError על האופן שבו הוא היה, אך במקום זאת הוא הוחלף ב ShowError - Notify. הם הסירו פונקציה שהיו בעבר בייצור והחליפו אותה בפריט אחר. מכיוון שקיימות שתי דרכים לעשות את אותו הדבר, שינוי זה היה גרם לבלבול – במיוחד עבור משתמשים חדשים - וחשוב מכך הוא היה מתווסף מורכבות. איש לא התלונן, כולם העריכו את השינוי ולאחר מכן עברו לתכונת Notify הבאה שלהם.

כך נראה אותו יישום כשהוא נטען בגירסה האחרונה של Power Apps. לא נדרשה שום פעולה מצד המשתמש כדי לגרום לשינוי הזה, הוא התרחש באופן אוטומטי עם פתיחת היישום.

פונקציית Notify מחליפה את ShowError.

על-ידי שימוש במתקן זה, Power Fx יכול להתפתח מהר יותר ואגרסיבי יותר מאשר רוב שפות התיכנות.

אין ערך לא מוגדר

שפות מסוימות, כגון JavaScript, משתמשות במושג של ערך לא מוגדר עבור משתנים לא מאותחלים או מאפיינים חסרים. למען הפשטות, Power Fx נמנע מהרעיון הזה. מופעים שלא יוגדרו בשפות אחרות יטופלו בתור שגיאה או ערך ריק. לדוגמה, כל המשתנים שאינם מאותחלים מתחילים עם ערך ריק. כל סוגי הנתונים יכולים לקבל את הערך הריק.

סוגי נתונים
אופרטורים ומזהים
שולחנות
משתנים
לוגיקה ציווית
תמיכה עולמית
דקדוק ביטויים
דקדוק נוסחאות YAML
נוסחאות ביישומי בד ציור