Επισκόπηση 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, δείτε τα ακόλουθα άρθρα:

Σκεφτείτε ένα υπολογιστικό φύλλο

Τι γίνεται εάν θα μπορούσατε να δημιουργήσετε μια εφαρμογή τόσο εύκολα όσο δημιουργείτε ένα φύλλο εργασίας στο 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 ως γλώσσα τύπου.

Για παράδειγμα, αυτός ο τύπος από την "Υπερχείλιση στοίβας" αναζητά μια συμβολοσειρά με αντίστροφη σειρά. Στο 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," ","")))) το πλαίσιο εισαγωγής κάτω από τον τύπο, το κείμενο "Hello, World! Χάρηκα για τη γνωριμία!" εμφανίζεται η γράμμα προς γράμμα. Ταυτόχρονα, στο πλαίσιο "Ετικέτα", εμφανίζονται τα γράμματα της τελευταίας λέξης. Όταν το πλήρες κείμενο εμφανίζεται στο πλαίσιο εισαγωγής, η λέξη "you!" εμφανίζεται στο πλαίσιο Ετικέτα.

Καθώς αλλάζει η τιμή του στοιχείου Input ελέγχου, το Label στοιχείο ελέγχου υπολογίζει ξανά αυτόματα τον τύπο και εμφανίζει τη νέα τιμή. Δεν υπάρχουν προγράμματα χειρισμού συμβάντων OnChange εδώ, όπως θα ήταν σύνηθες σε άλλες γλώσσες.

Ένα άλλο παράδειγμα χρησιμοποιεί έναν τύπο για το Fill χρώμα της οθόνης. Καθώς αλλάζουν τα ρυθμιστικά που ελέγχουν το Κόκκινο, το Πράσινο και το Μπλε, το χρώμα φόντου αλλάζει αυτόματα καθώς υπολογίζονται εκ νέου.

Ρυθμιστικό χρωμάτων.

Δεν υπάρχουν συμβάντα OnChange για τα στοιχεία ελέγχου ρυθμιστικού όπως θα ήταν σύνηθες σε άλλες γλώσσες. Δεν υπάρχει τρόπος για να ορίσετε ρητά την τιμή της ιδιότητας Fill. Εάν το χρώμα δεν λειτουργεί όπως πρέπει, πρέπει να δείτε αυτόν τον έναν τύπο για να κατανοήσετε γιατί δεν λειτουργεί. Δεν χρειάζεται να κάνετε αναζήτηση στην εφαρμογή για να βρείτε ένα τμήμα κώδικα που ορίζει την ιδιότητα σε μη αναμενόμενη ώρα. Δεν υπάρχει στοιχείο χρόνου. Οι σωστές τιμές τύπου διατηρούνται πάντα.

Καθώς τα ρυθμιστικά έχουν οριστεί σε σκούρο χρώμα, οι ετικέτες για το Κόκκινο, το Πράσινο και το Μπλε αλλάζουν σε λευκό για αντιστάθμιση. Αυτή η αλλαγή πραγματοποιείται μέσω ενός απλού τύπου στην Color ιδιότητα για κάθε στοιχείο ελέγχου ετικέτας.

Ρυθμιστικά χρωμάτων Power Fx.

Το εξαιρετικό με αυτόν τον τύπο είναι ότι απομονώνεται από αυτό που συμβαίνει για το Fill χρώμα: αυτοί είναι δύο εντελώς διαφορετικοί υπολογισμοί. Αντί για μεγάλες μονολιθικές διαδικασίες, η λογική Power Fx συνήθως αποτελείται από πολλούς μικρότερους τύπους που είναι ανεξάρτητοι. Αυτή η δομή τα κάνει πιο κατανοητά και επιτρέπει βελτιώσεις χωρίς να διαταράσσει την υπάρχουσα λογική.

Το Power Fx είναι μια δηλωτική γλώσσα, όπως το Excel. Ο δημιουργός καθορίζει τη συμπεριφορά που θέλει, αλλά από το σύστημα εξαρτάται να καθορίσει και να βελτιστοποιήσει πώς και πότε θα την ολοκληρώσει. Για να γίνει αυτό πρακτικό, η περισσότερη εργασία γίνεται μέσω καθαρών συναρτήσεων χωρίς ανεπιθύμητες ενέργειες, καθιστώντας το Power Fx επίσης μια λειτουργική γλώσσα (και πάλι, όπως είναι το Excel).

Live πάντα

Μια πτυχή που καθορίζει τα φύλλα εργασίας είναι ότι είναι πάντα ζωντανά και οι αλλαγές αντικατοπτρίζονται άμεσα. Δεν υπάρχει λειτουργία μεταγλώττισης ή εκτέλεσης σε ένα φύλλο εργασίας. Όταν τροποποιείτε έναν τύπο ή καταχωρείτε μια τιμή, το φύλλο εργασίας επανυπολογίζει αμέσως ώστε να αντικατοπτρίζει τις αλλαγές. Τα σφάλματα που εντοπίστηκαν εμφανίζονται αμέσως και δεν παρεμβάλλονται στο υπόλοιπο φύλλο εργασίας.

Το Power Fx υλοποιεί το ίδιο πράγμα. Χρησιμοποιεί ένα πρόγραμμα μεταγλώττισης επαυξητικής λειτουργίας για να διατηρεί συνεχώς το πρόγραμμα συγχρονισμένο με τα δεδομένα στα οποία λειτουργεί. Οι αλλαγές μεταδίδονται αυτόματα μέσω του γραφήματος του προγράμματος, επηρεάζοντας τα αποτελέσματα των εξαρτώμενων υπολογισμών. Αυτοί οι υπολογισμοί μπορεί να κατευθύνουν ιδιότητες σε στοιχεία ελέγχου όπως το χρώμα ή η θέση. Το επαυξητικό πρόγραμμα μεταγλώττισης παρέχει επίσης μια εμπλουτισμένη εμπειρία επεξεργασίας τύπων με IntelliSense, προτάσεις, αυτόματη καταχώρηση και έλεγχο τύπων.

Στην ακόλουθη κίνηση, ο αριθμός σειράς εμφανίζεται σε ένα στοιχείο ελέγχου ετικέτας που εξαρτάται από το στοιχείο ελέγχου ρυθμιστικού, παρόλο που υπάρχουν δύο σφάλματα στις ετικέτες κάτω από αυτό. Η εφαρμογή είναι πολύ ζωντανή και αλληλεπιδραστική. Η πρώτη προσπάθεια διόρθωσης του τύπου με εισαγωγή των αποτελεσμάτων .InvalidName σε μια άμεση κόκκινη γραμμή και σφάλμα που εμφανίζεται, όπως θα έπρεπε, αλλά η εφαρμογή συνεχίζει να εκτελείται.

Live πάντα.

Όταν εισαγάγετε .Employee, το Data τμήμα παραθύρου προσθέτει τον πίνακα Employees, ανακτά μετα-δεδομένα για αυτόν τον πίνακα και προσφέρει αμέσως προτάσεις για στήλες. Μόλις περάσαμε σε μια σχέση από έναν πίνακα σε έναν άλλο και το σύστημα έκανε τις απαραίτητες προσαρμογές στις αναφορές της εφαρμογής. Το ίδιο πράγμα συμβαίνει κατά την προσθήκη ενός .Customer.

Μετά από κάθε αλλαγή, το ρυθμιστικό συνεχίζει με την τελευταία τιμή του και οποιεσδήποτε μεταβλητές διατηρούν την τιμή τους. Σε όλους τους χώρους, ο αριθμός παραγγελίας εξακολουθεί να εμφανίζεται στην επάνω ετικέτα, όπως θα έπρεπε. Η εφαρμογή είναι ενεργή, επεξεργάζεται πραγματικά δεδομένα, σε όλη την ώρα. Μπορείτε να την αποθηκεύσετε, να αποχωρήσετε και άλλοι χρήστες να την ανοίξουν και να την χρησιμοποιήσουν όπως ακριβώς Excel. Δεν υπάρχει βήμα δόμησης, ούτε μεταγλώττιση, υπάρχει μόνο ένα βήμα δημοσίευσης για να προσδιοριστεί ποια έκδοση της εφαρμογής είναι έτοιμη για τους χρήστες.

Χαμηλός κώδικας

Το Power Fx περιγράφει την επιχειρηματική λογική με συνοπτικούς, αλλά πανίσχυρους, τύπους. Το μεγαλύτερο μέρος της λογικής μειώνεται σε μία μόνο γραμμή, με άφθονη εκφρασιμότητα και έλεγχο για πιο σύνθετες ανάγκες. Ο στόχος είναι να διατηρήσετε στο ελάχιστο τον αριθμό των εννοιών που πρέπει να κατανοήσει ένας δημιουργός, ιδανικά όχι περισσότερο από όσο θα γνωρίζει ήδη ένας χρήστης του Excel.

Για παράδειγμα, για να δείτε το όνομα ενός υπαλλήλου για μια παραγγελία, γράφετε το Power Fx όπως φαίνεται στο παρακάτω κινούμενο σχέδιο. Πέρα από τις έννοιες του Excel, η μόνη έννοια που προστέθηκε και χρησιμοποιείται εδώ είναι η σημειογραφία της τελείας "." για να κάνετε λεπτομερή ανάλυση σε μια δομή δεδομένων, σε αυτή την περίπτωση .Employee.'First Name'. Το κινούμενο σχέδιο δείχνει την αντιστοίχιση μεταξύ των τμημάτων του τύπου Power Fx και των εννοιών που πρέπει να γραφούν ρητά στην ισοδύναμη JavaScript.

JavaScript χαμηλού κώδικα.

Ας δούμε πιο αναλυτικά όλα τα πράγματα που κάνει το Power Fx για εμάς και την ελευθερία που έχει να βελτιστοποιήσει, επειδή ο τύπος είναι δηλωτικός:

  • Ασύγχρονη: Όλες οι λειτουργίες δεδομένων στο Power Fx είναι ασύγχρονες. Ο δημιουργός δεν χρειάζεται να καθορίσει αυτό το θέμα ούτε χρειάζεται ο δημιουργός να συγχρονίσει τις λειτουργίες μετά το τέλος της κλήσης. Ο δημιουργός δεν χρειάζεται να γνωρίζει καθόλου αυτήν την έννοια, αλλά δεν χρειάζεται να γνωρίζει τι είναι η λειτουργία υπόσχεσης ή λάμδα.

  • Local και remote: Power Fx χρησιμοποιεί την ίδια σύνταξη και τις ίδιες συναρτήσεις για δεδομένα που είναι τοπικά στη μνήμη και συνδέει απομακρυσμένα μια βάση δεδομένων ή υπηρεσία. Ο χρήστης δεν χρειάζεται να σκεφτεί αυτήν τη διάκριση. Το Power Fx εξουσιοδοτεί αυτόματα ό,τι μπορεί στον διακομιστή, σε φίλτρα διεργασιών και ταξινομεί εκεί πιο αποδοτικά.

  • Σχεσιακά δεδομένα: Οι παραγγελίες και οι πελάτες είναι δύο διαφορετικοί πίνακες, με σχέση πολλά-προς-ένα. Το ερώτημα OData απαιτεί ένα "$expand" με γνώσεις για το εξωτερικό κλειδί, παρόμοιο με τη Συμμετοχή σε SQL. Ο τύπος δεν περιέχει τίποτα από αυτά, στην ουσία, τα κλειδιά βάσης δεδομένων είναι μια άλλη έννοια που δεν χρειάζεται να γνωρίζει ο δημιουργός. Ο δημιουργός μπορεί να χρησιμοποιήσει μια απλή τελεία για να έχει πρόσβαση σε ολόκληρο το γράφημα σχέσεων από μια καρτέλα.

  • Προβολή: Κατά τη σύνταξη ενός ερωτήματος, πολλοί προγραμματιστές γράφουν select * from table, γεγονός που επαναφέρει όλες τις στήλες δεδομένων. Το Power Fx αναλύει όλες τις στήλες που χρησιμοποιούνται μέσω ολόκληρης της εφαρμογής, ακόμα και σε όλες τις εξαρτήσεις τύπων. Η προβολή βελτιώνεται αυτόματα και, πάλι, ο δημιουργός δεν χρειάζεται να γνωρίζει τι σημαίνει "προβολή".

  • Ανάκτηση μόνο όσων χρειάζονται: Σε αυτό το παράδειγμα, η LookUp συνάρτηση υποδηλώνει ότι πρέπει να ανακτηθεί μόνο μία εγγραφή και αυτό είναι το μόνο που επιστρέφεται. Εάν ζητούνται περισσότερες καρτέλες με τη χρήση της συνάρτησης Filter -για την οποία χιλιάδες καρτέλες ενδέχεται να δικαιούνται- μόνο μία σελίδα δεδομένων επιστρέφονται ταυτόχρονα, με τη σειρά των 100 καρτελών ανά σελίδα. Ο χρήστης πρέπει να κάνει κινήσεις σε μια συλλογή ή πίνακα δεδομένων για να δει περισσότερα δεδομένα και φέρνει αυτόματα περισσότερα δεδομένα για αυτόν. Ο δημιουργός μπορεί να αιτιολογεί μεγάλα σύνολα δεδομένων χωρίς να χρειάζεται να σκεφτεί τον περιορισμό των αιτήσεων δεδομένων σε διαχειρίσιμα μπλοκ.

  • Εκτελείται μόνο όταν είναι απαραίτητο: Ορίζετε έναν τύπο για την Text ιδιότητα του στοιχείου ελέγχου ετικέτας. Καθώς αλλάζει η επιλεγμένη μεταβλητή, το LookUp υπολογίζεται ξανά αυτόματα και η ετικέτα ενημερώνεται. Ο δημιουργός δεν χρειάστηκε να γράψει κάποιο εργαλείο χειρισμού OnChange για την επιλογή και δεν χρειάστηκε να θυμηθεί ότι αυτή η ετικέτα εξαρτάται από αυτήν. Πρόκειται για προγραμματισμό με δηλώσεις όπως συζητήσαμε προηγουμένως, ο δημιουργός έχει καθορίσει τι θέλει να έχει στην ετικέτα και όχι πώς ή πότε θα πρέπει να ληφθεί. Εάν αυτή η ετικέτα δεν είναι ορατή επειδή είναι σε μια οθόνη που δεν είναι ορατή ή η ιδιότητά της Visible είναι false, μπορείτε να αναβάλετε αυτόν τον υπολογισμό μέχρι η ετικέτα να είναι ορατή και να την εξαλείψετε αποτελεσματικά εάν συμβαίνει σπάνια αυτό.

  • 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 είναι μια εξαιρετική γλώσσα για την περιγραφή αλληλεπιδράσεων χωρίς κώδικα. Είναι περιεκτικό, ισχυρό και εύκολο στην ανάλυση. Παρέχει το headroom που απαιτείται τόσο συχνά με "χωρίς γκρεμούς" μέχρι χαμηλό κώδικα.

Προ κώδικας

Οι δημιουργοί χαμηλού κώδικα μερικές φορές δημιουργούν λύσεις που απαιτούν τη βοήθεια ενός ειδικού ή ανατίθενται από έναν επαγγελματία προγραμματιστή για τη διατήρηση και τη βελτίωση. Οι επαγγελματίες εκτιμούν επίσης ότι η ανάπτυξη με χαμηλό κώδικα μπορεί να είναι ευκολότερη, ταχύτερη και λιγότερο δαπανηρή από ό,τι η δημιουργία ενός επαγγελματικού εργαλείου. Δεν απαιτούν όλες οι καταστάσεις τις πλήρεις δυνατότητες του Visual Studio.

Οι επαγγελματίες θέλουν να χρησιμοποιούν επαγγελματικά εργαλεία για να είναι πιο παραγωγικοί. Μπορείτε να αποθηκεύσετε τύπους Power Fx σε αρχεία προέλευσης YAML, τα οποία μπορείτε εύκολα να επεξεργαστείτε χρησιμοποιώντας Visual Studio Code, Visual Studio ή οποιοδήποτε άλλο πρόγραμμα επεξεργασίας κειμένου. Η αποθήκευση τύπων σε αρχεία YAML σάς επιτρέπει να θέσετε το Power Fx υπό έλεγχο προέλευσης χρησιμοποιώντας GitHub, Azure DevOps ή οποιοδήποτε άλλο σύστημα ελέγχου πηγαίου κώδικα.

Visual Studio Code προ-κώδικα.

GitHub με υποστήριξη προγραμματισμού.

Το Power Fx υποστηρίζει στοιχεία που βασίζονται σε τύπους για κοινή χρήση και εκ νέου χρήση. Υποστηρίζει παραμέτρους σε ιδιότητες στοιχείων, επιτρέποντας τη δημιουργία καθαρών συναρτήσεων που ορίζονται από τον χρήστη με περισσότερες βελτιώσεις στο δρόμο.

Επίσης, το Power Fx είναι σπουδαίο στο να συνδυάζετε στοιχεία και υπηρεσίες που έχουν δημιουργηθεί από επαγγελματίες. Οι έτοιμες συνδέσεις παρέχουν πρόσβαση σε εκατοντάδες προελεύσεις δεδομένων και υπηρεσίες web. Οι προσαρμοσμένες συνδέσεις επιτρέπουν στο Power Fx να επικοινωνεί με οποιαδήποτε υπηρεσία Web REST. Τα στοιχεία κώδικα επιτρέπουν στο Power Fx να αλληλεπιδρά με πλήρως προσαρμοσμένο JavaScript στην οθόνη και τη σελίδα.

Αρχές σχεδιασμού

Απλό

Το Power Fx έχει σχεδιαστεί για να απευθύνεται στο δημιουργικό κοινό, του οποίου τα μέλη δεν έχουν εκπαιδευτεί ως προγραμματιστές. Όποτε είναι δυνατό, η γλώσσα χρησιμοποιεί γνώσεις που ήδη γνωρίζει ή μπορεί να πάρει γρήγορα αυτό το κοινό. Ο αριθμός των εννοιών που απαιτούνται για την επιτυχία διατηρείται στο ελάχιστο.

Η απλή διαδικασία είναι επίσης καλή για προγραμματιστές. Για το ακροατήριο προγραμματιστών, το Power Fx στοχεύει να είναι μια γλώσσα με λίγο κώδικα που μειώνει τον χρόνο που απαιτείται για τη δημιουργία μιας λύσης.

Συνέπεια Excel

Η γλώσσα Microsoft Power Fx δανείζεται πολλά από την γλώσσα τύπων του Excel. Εκμεταλλεύεται Excel γνώση και εμπειρία από τους πολλούς δημιουργούς που επίσης χρησιμοποιούν Excel. Οι τύποι, οι τελεστές και η σημαντική των λειτουργιών βρίσκονται όσο το δυνατό πιο κοντά στο Excel.

Εάν Excel δεν έχει απάντηση, το Power Fx θα κοιτάξει στη συνέχεια το SQL. Μετά το Excel, η SQL είναι η επόμενη πιο συχνά χρησιμοποιούμενη δηλωτική γλώσσα και μπορεί να παρέχει οδηγίες σχετικά με τις λειτουργίες δεδομένων και την έντονη πληκτρολόγηση που δεν χρησιμοποιείται από το Excel.

Δηλωτικό

Ο δημιουργός περιγράφει τι θέλει να κάνει η λογική του, όχι ακριβώς πώς ή πότε να το κάνει. Αυτή η προσέγγιση επιτρέπει στο πρόγραμμα μεταγλώττισης να βελτιστοποιεί εκτελώντας λειτουργίες παράλληλα, αναβάλλοντας την εργασία μέχρι να χρειαστεί, καθώς και προφορτώνοντας και επαναχρησιμοποιώντας δεδομένα στο cache.

Για παράδειγμα, σε ένα Excel φύλλο εργασίας, ο συντάκτης ορίζει τις σχέσεις μεταξύ κελιών, αλλά Excel αποφασίζει πότε και με ποια σειρά θα αξιολογήσει τους τύπους. Παρομοίως, μπορείτε να θεωρήσετε τους τύπους σε μια εφαρμογή ως "επανυπολογισμό", όπως απαιτείται με βάση τις ενέργειες του χρήστη, τις αλλαγές στη βάση δεδομένων ή τα συμβάντα χρονοδιακόπτη.

Λειτουργικά

Χρησιμοποιήστε καθαρές συναρτήσεις που δεν έχουν παρενέργειες. Αυτή η προσέγγιση οδηγεί σε λογική που είναι πιο κατανοητή και παρέχει στο πρόγραμμα μεταγλώττισης την μεγαλύτερη ελευθερία βελτιστοποίησης.

Σε αντίθεση με Excel, οι εφαρμογές από τη φύση τους κάνουν μετάλλαξη. Για παράδειγμα, οι εφαρμογές έχουν κουμπιά που αποθηκεύουν αλλαγές στην εγγραφή σε μια βάση δεδομένων. Ορισμένες συναρτήσεις, επομένως, έχουν παρενέργειες, αν και περιορίζουν αυτές τις παρενέργειες όσο είναι πρακτικές.

Σύνταξη

Όπου είναι δυνατό, προσθέστε λειτουργίες που συναρτώνται καλά με την υπάρχουσα λειτουργικότητα. Μπορείτε να αποσυνθέσετε ισχυρές συναρτήσεις σε μικρότερα τμήματα τις οποίες μπορείτε να χρησιμοποιήσετε πιο εύκολα ανεξάρτητα.

Για παράδειγμα, ένα στοιχείο ελέγχου Συλλογή δεν διαθέτει ξεχωριστές ιδιότητες Sort και Filter. Αντί για αυτό, συναρτάτε τις Sort συναρτήσεις και Filter μαζί σε μία μόνο Items ιδιότητα. Μπορείτε να διατάξετε το περιβάλλον εργασίας χρήστη για έκφραση Sort και Filter συμπεριφορά στην Items ιδιότητα χρησιμοποιώντας ένα αμφίδρομο πρόγραμμα επεξεργασίας για αυτήν την ιδιότητα.

Ισχυρού τύπου

Οι τύποι όλων των τιμών είναι γνωστοί κατά τον χρόνο μεταγλώττισης. Αυτή η προσέγγιση επιτρέπει τον έγκαιρο εντοπισμό σφαλμάτων και εμπλουτισμένων προτάσεων κατά τη σύνταξη.

Υποστηρίζονται πολυμορφικοί τύποι, αλλά πριν μπορέσετε να τους χρησιμοποιήσετε, πρέπει να καρφιτσώσετε τον τύπο τους σε έναν στατικό τύπο και αυτός ο τύπος πρέπει να είναι γνωστός κατά τον χρόνο μεταγλώττισης. Παρέχονται οι συναρτήσεις 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 δεν έχει τη δυνατότητα προσθήκης σχολίων, επομένως χρησιμοποιήστε σχόλια γραμμής τύπου C και ενσωματωμένα σχόλια.

Εξέλιξη γλώσσας

Η εξέλιξη των γλωσσών προγραμματισμού είναι απαραίτητη και δύσκολη. Όλοι - δικαίως- ανησυχούν ότι μια αλλαγή, ανεξάρτητα από τις προθέσεις της, μπορεί να σπάσει τον υπάρχοντα κώδικα και να απαιτεί από τους χρήστες να μάθουν ένα νέο μοτίβο. Το Power Fx λαμβάνει σοβαρά υπόψη τη συμβατότητα με προηγούμενες εκδόσεις, αλλά η ομάδα power Fx πιστεύει επίσης ακράδαντα ότι δεν θα την κάνει πάντα σωστή την πρώτη φορά και ότι η κοινότητα μπορεί συλλογικά να μάθει το καλύτερο. Μια γλώσσα προγραμματισμού πρέπει να εξελίσσεται και το Power Fx έχει σχεδιαστεί για να υποστηρίζει την εξέλιξη της γλώσσας από την αρχή.

Κάθε αποθηκευμένο έγγραφο Power Fx περιλαμβάνει μια σφραγίδα έκδοσης γλώσσας. Εάν η ομάδα του Power Fx θέλει να κάνει μια ασύμβατη αλλαγή, γράφει αυτό που αποκαλεί "μετατροπέας back compat" που ξαναγράφει αυτόματα τον τύπο την επόμενη φορά που θα γίνει επεξεργασία του. Εάν η αλλαγή είναι κάτι σημαντικό για την οποία η ομάδα πρέπει να εκπαιδεύσει τον χρήστη, η εφαρμογή εμφανίζει ένα μήνυμα με μια σύνδεση προς τα έγγραφα. Με τη χρήση αυτής της εγκατάστασης, το Power Fx εξακολουθεί να μπορεί να φορτώσει εφαρμογές που δημιουργήθηκαν με τις εκδόσεις προεπισκόπησης του Power Apps από πολλά χρόνια πριν, παρά τις αλλαγές που έχουν συμβεί από τότε.

Για παράδειγμα, η ομάδα Power Fx παρουσίασε τη ShowError συνάρτηση για να εμφανίσει ένα πλαίσιο σφάλματος με κόκκινο φόντο.

Εμφάνιση σφάλματος.

Οι χρήστες το λάτρεψαν, αλλά ζήτησαν επίσης έναν τρόπο να εμφανίσουν ένα πλαίσιο επιτυχίας (πράσινο φόντο) ή ένα ενημερωτικό πλαίσιο (μπλε φόντο). Έτσι, η ομάδα κατέληξε σε μια πιο γενική Notify συνάρτηση που λαμβάνει ένα δεύτερο όρισμα για το είδος της ειδοποίησης. Η ομάδα θα μπορούσε απλά Notify να προσθέσει και να διατηρήσει ShowError τον τρόπο που ήταν, αλλά αντ 'αυτού αντικατέστησαν ShowError με Notify. Αφαίρεσαν μια συνάρτηση που ήταν προηγουμένως σε παραγωγή και την αντικατέστησαν με κάτι άλλο. Επειδή θα υπήρχαν δύο τρόποι για να κάνετε το ίδιο, αυτή η αλλαγή θα προκαλούσε σύγχυση - ειδικά για τους νέους χρήστες - και, το σημαντικότερο, θα προσέθετε πολυπλοκότητα. Κανένας δεν παραπονέθηκε, όλοι εκτίμησαν την αλλαγή και στη συνέχεια προχώρησαν στην επόμενη δυνατότητα ειδοποίησης.

Με αυτόν τον τρόπο φαίνεται η ίδια εφαρμογή όταν φορτώνεται στην πιο πρόσφατη έκδοση του Power Apps. Δεν απαιτήθηκε καμία ενέργεια από τον χρήστη για να συμβεί αυτός ο μετασχηματισμός, έγινε αυτόματα κατά το άνοιγμα της εφαρμογής.

Η συνάρτηση ειδοποίησης αντικαθιστά το ShowError.

Με τη χρήση αυτής της εγκατάστασης, το Power Fx μπορεί να εξελίσσεται ταχύτερα και πιο επιθετικά από τις περισσότερες γλώσσες προγραμματισμού.

Καμία μη απροσδιόριστη τιμή

Ορισμένες γλώσσες, όπως η JavaScript, χρησιμοποιούν την έννοια μιας απροσδιόριστης τιμής για μη προετοιμασμένες μεταβλητές ή ιδιότητες που λείπουν. Για λόγους ευκολίας, το Power Fx αποφεύγει αυτή την έννοια. Οι παρουσίες που θα ήταν απροσδιόριστες σε άλλες γλώσσες αντιμετωπίζονται είτε ως σφάλμα είτε ως κενή τιμή. Για παράδειγμα, όλες οι μεταβλητές των οποίων η προετοιμασία έχει καταργηθεί ξεκινούν με μια κενή τιμή. Όλοι οι τύποι δεδομένων μπορούν να λαμβάνουν κενή τιμή.

Τύποι δεδομένων
Φορείς εκμετάλλευσης και αναγνωριστικά στοιχεία
Πίνακες
Μεταβλητές
Επιτακτική λογική
Παγκόσμια υποστήριξη
Γραμματική έκφρασης
Γραμματική τύπου YAML
Τύποι σε εφαρμογές καμβά