Κοινοποίηση μέσω


Updateσυναρτήσεις και UpdateIf

Ισχύει για: Εφαρμογές καμβά Εφαρμογές βάσει μοντέλου

Ενημερώνει τις εγγραφές σε μια προέλευση δεδομένων.

Description

Συνάρτηση Update

Χρησιμοποιήστε τη Update συνάρτηση για να αντικαταστήσετε μια ολόκληρη εγγραφή σε μια προέλευση δεδομένων. Αντίθετα, οι UpdateIf συναρτήσεις και Patch τροποποιούν μία ή περισσότερες τιμές σε μια εγγραφή, αφήνοντας τις άλλες τιμές μόνες τους.

Για μια συλλογή, πρέπει να συμφωνεί ολόκληρη η εγγραφή. Οι συλλογές επιτρέπουν διπλότυπες εγγραφές, επομένως ενδέχεται να συμφωνούν πολλές εγγραφές. Μπορείτε να χρησιμοποιήσετε το όρισμα RemoveFlags.All για να ενημερώσετε όλα τα αντίγραφα μιας εγγραφής, διαφορετικά, ενημερώνεται μόνο ένα αντίγραφο της εγγραφής.

Εάν η προέλευση δεδομένων δημιουργεί αυτόματα μια τιμή στήλης, η τιμή αυτής της στήλης πρέπει να επιβεβαιωθεί ξανά.

Συνάρτηση UpdateIf

Χρησιμοποιήστε τη UpdateIf συνάρτηση για να τροποποιήσετε μία ή περισσότερες τιμές σε μία ή περισσότερες εγγραφές που πληρούν μία ή περισσότερες συνθήκες. Η συνθήκη μπορεί να είναι οποιοσδήποτε τύπος που έχει ως αποτέλεσμα τιμή true ή false και μπορεί να αναφέρεται σε στήλες της προέλευσης δεδομένων με βάση το όνομα. Η συνάρτηση αξιολογεί τη συνθήκη για κάθε εγγραφή και τροποποιεί τις καρτέλες για τις οποίες το αποτέλεσμα είναι true.

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

Παρόμοια με το , μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση Patch για να αλλάξετε συγκεκριμένες στήλες μιας εγγραφής χωρίς να UpdateIfεπηρεαστούν άλλες στήλες.

Και οι δύο Update και UpdateIf επιστρέφουν την τροποποιημένη προέλευση δεδομένων ως πίνακα. Πρέπει να χρησιμοποιήσετε οποιαδήποτε από τις δύο συναρτήσεις σε έναν τύπο συμπεριφοράς.

Ανάθεση

Αυτές οι συναρτήσεις δεν ανατίθενται σε μια προέλευση δεδομένων. Ωστόσο, UpdateIf οι επιλογές RemoveIf λειτουργούν τοπικά για την προσομοίωση ανάθεσης έως το όριο 500/2000 εγγραφών. Με αυτόν τον τρόπο, μειώνουν σταδιακά εγγραφές πέραν του ορίου των 500/2000 εγγραφών. Συλλέγονται εγγραφές που ικανοποιούν τη συνθήκη If . Γενικά, το πολύ 500/2000 εγγραφές συλλέγονται ξεχωριστά και, στη συνέχεια, τροποποιούνται ανά εκτέλεση. Ωστόσο, περισσότερες εγγραφές μπορεί να ενημερωθούν εάν το υπάρχον τοπικό cache δεδομένων είναι μεγάλο, καθώς η συνάρτηση μπορεί να έχει πρόσβαση σε περισσότερες εγγραφές για αξιολόγηση. Μόνο το αρχικό τμήμα της προέλευσης δεδομένων θα ανακτηθεί και, στη συνέχεια, θα εφαρμοστεί η συνάρτηση. Αυτό μπορεί να μην αντιπροσωπεύει την πλήρη εικόνα. Ενδέχεται να εμφανιστεί μια προειδοποίηση κατά τη σύνταξη για να σας υπενθυμίσει αυτόν τον περιορισμό.

Σύνταξη

Update(DataSource_, OldRecord, NewRecord [, RemoveFlags.All ] )

  • DataSource – Υποχρεωτικό. Η προέλευση δεδομένων που περιέχει τις εγγραφές που θέλετε να αντικαταστήσετε.
  • OldRecord – Υποχρεωτικό. Η εγγραφή προς αντικατάσταση.
  • NewRecord – Υποχρεωτικό. Η εγγραφή αντικατάστασης. Αυτή δεν είναι μια εγγραφή αλλαγής. Αντικαθίσταται ολόκληρη η εγγραφή και οι ιδιότητες που λείπουν περιέχουν κενό.
  • RemoveFlags.All – Προαιρετικό. Σε μια συλλογή, η ίδια εγγραφή μπορεί να εμφανίζεται περισσότερες από μία φορές. Μπορείτε να προσθέσετε το όρισμα RemoveFlags.All για να καταργήσετε όλα τα αντίγραφα της εγγραφής.

UpdateIf(DataSource_, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – Υποχρεωτικό. Η προέλευση δεδομένων που περιέχει την εγγραφή ή τις εγγραφές που θέλετε να τροποποιήσετε.
  • Conditions – Υποχρεωτικό. Ένας τύπος που αποδίδει true για την εγγραφή ή τις εγγραφές που θέλετε να τροποποιήσετε. Μπορείτε να χρησιμοποιήσετε τα ονόματα των στηλών από το όρισμα DataSource στον τύπο. Σε περίπτωση που διαβιβαάζονται πολλές Συνθήκες , εφαρμόζεται μόνο το ChangeRecord που σχετίζεται με την πρώτη Συνθήκη που αξιολογείται ως true .
  • ChangeRecord(s) – Υποχρεωτικό. Για κάθε αντίστοιχη συνθήκη, μια εγγραφή αλλαγής των νέων τιμών ιδιοτήτων που εφαρμόζεται σε εγγραφές του ορίσματος DataSource που πληρούν τη συνθήκη. Εάν παρέχετε την εγγραφή ενσωματωμένη χρησιμοποιώντας άγκιστρα, οι τιμές ιδιοτήτων της υπάρχουσας εγγραφής μπορούν να χρησιμοποιηθούν στους τύπους ιδιότητας.

Παραδείγματα

Σε αυτά τα παραδείγματα, θα αντικαταστήσετε ή θα καταργήσετε εγγραφές σε μια προέλευση δεδομένων που ονομάζεται IceCream και ξεκινά με τα δεδομένα του παρακάτω πίνακα:

Παράδειγμα παγωτού.

Τύπος Description Αποτέλεσμα
Update( IceCream,
LookUp( IceCream, Flavor="Chocolate" ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Αντικαθιστά μια εγγραφή από την προέλευση δεδομένων. Αντικατάσταση καρτέλας.

Η προέλευση δεδομένων IceCream έχει τροποποιηθεί.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Τροποποιεί τις εγγραφές που έχουν Quantity μεγαλύτερη από 175. Το πεδίο Quantity αυξάνεται κατά 10 και δεν τροποποιούνται άλλα πεδία. Τροποποίηση καρτελών.

Η προέλευση δεδομένων IceCream έχει τροποποιηθεί.
Update( IceCream,
LookUp( IceCream, Flavor="Strawberry" ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Αντικαθιστά μια εγγραφή από την προέλευση δεδομένων. Η ιδιότητα Quantity δεν έχει παρασχεθεί στην εγγραφή αντικατάστασης, επομένως, η ιδιότητα θα είναι κενή στο αποτέλεσμα. Αντικατάσταση καρτέλας όταν δεν παρέχεται ποσότητα.

Η προέλευση δεδομένων IceCream έχει τροποποιηθεί.
UpdateIf( IceCream, true, { Quantity: 0 } ) Ορίζει την τιμή της ιδιότητας Quantity για όλες τις εγγραφές στην προέλευση δεδομένων σε 0. Ορισμός ποσότητας για όλα σε 0.

Η προέλευση δεδομένων IceCream έχει τροποποιηθεί.

Βήμα προς βήμα

  1. Εισαγάγετε ή δημιουργήστε μια συλλογή με όνομα Inventory και εμφανίστε τη σε μια συλλογή όπως περιγράφεται στο θέμα Εμφάνιση δεδομένων σε μια συλλογή.

  2. Ονομάστε τη συλλογή ProductGallery.

  3. Προσθέστε ένα ρυθμιστικό με την ονομασία UnitsSold και ορίστε την ιδιότητά του Max στην εξής παράσταση:
    ProductGallery.Selected.UnitsInStock

  4. Προσθέστε ένα κουμπί και ορίστε την ιδιότητα OnSelect σε αυτόν τον τύπο:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Πατήστε το πλήκτρο F5, επιλέξτε ένα προϊόν στη συλλογή, καθορίστε μια τιμή με το ρυθμιστικό και, στη συνέχεια, επιλέξτε το κουμπί.

    Ο αριθμός των μονάδων σε απόθεμα για το προϊόν που έχετε καθορίσει μειώνεται κατά το ποσό που έχετε καθορίσει.