Χρήση λειτουργιών Λειτουργίες εγγραφής, ενημέρωσης και διαγραφής API Web πυλών

Σημείωση

Από τις 12 Οκτωβρίου 2022, οι πύλες του Power Apps είναι Power Pages. Περισσότερες πληροφορίες: Το Microsoft Power Pages είναι πλέον γενικά διαθέσιμο (ιστολόγιο)
Σύντομα θα μετεγκαταστήσουμε και θα συγχωνεύσουμε την τεκμηρίωση των πυλών Power Apps με την τεκμηρίωση Power Pages.

Μπορείτε να εκτελέσετε διαθέσιμες λειτουργίες Web API στις πύλες. Οι λειτουργίες Web API αποτελούνται από αιτήσεις και αποκρίσεις HTTP. Σε αυτό το άρθρο παρέχονται δείγματα λειτουργιών εγγραφής, ενημέρωσης και διαγραφής, μέθοδοι, URI και το δείγμα JSON που μπορείτε να χρησιμοποιήσετε σε αιτήσεις HTTP.

Σημαντικό

  • Η έκδοση της πύλης σας πρέπει να είναι 9.3.3.x ή μεταγενέστερη προκειμένου να λειτουργεί αυτή η δυνατότητα

Προϋποθέσεις

  • Ενεργοποίηση πίνακα και πεδίου για λειτουργίες Web API. Περισσότερες πληροφορίες: Ρυθμίσεις τοποθεσίας για Web API

  • Τα ΑΡΙ Web πυλών έχουν πρόσβαση σε καρτέλες πίνακα και ακολουθούν τα δικαιώματα πίνακα που δίνονται στους χρήστες μέσω των συσχετισμένων ρόλων web. Βεβαιωθείτε ότι ρυθμίζετε τις παραμέτρους των σωστών δικαιωμάτων πίνακα. Περισσότερες πληροφορίες: Δημιουργία ρόλων web

Δημιουργία καρτέλας σε πίνακα

Σημείωση

Όταν αναφέρεστε Dataverse πίνακες χρησιμοποιώντας το API web πυλών, πρέπει να χρησιμοποιήσετε το EntitySetName, για παράδειγμα, για να αποκτήσετε πρόσβαση στον πίνακα λογαριασμός, η σύνταξη κώδικα θα χρησιμοποιήσει το EntitySetName των λογαριασμών.

Βασική δημιουργία

Operation Method URI Δείγμα JSON
Βασική δημιουργία ΚΑΤΑΧΩΡΗΣΗ [Portal URI]/_api/accounts {"name":"Sample Account"}

Δείγμα JSON για τη δημιουργία σχετιζόμενων καρτελών πίνακα σε μία λειτουργία

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

  • Μια επαφή δημιουργείται επειδή ορίζεται ως ιδιότητα αντικειμένου της ιδιότητας περιήγησης μίας τιμής primarycontactid.
  • Δημιουργείται μια ευκαιρία επειδή έχει οριστεί ως αντικείμενο εντός ενός πίνακα που έχει οριστεί στην τιμή μιας ιδιότητας περιήγησης opportunity_customer_accounts με τιμή συλλογής.
  • Δημιουργείται μια εργασία επειδή έχει οριστεί ως αντικείμενο εντός ενός πίνακα που έχει οριστεί στην τιμή μιας ιδιότητας περιήγησης Opportunity_Tasks με τιμή συλλογής.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Συσχέτιση καρτελών πίνακα κατά τη δημιουργία

Operation Method URI Δείγμα JSON
Συσχέτιση καρτελών πίνακα κατά τη δημιουργία POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Δείγμα JSON για τη δημιουργία ενός σχολίου μέσω του Web API

{
    "new_attribute1": "test attribute 1",
    "new_attribute2": "test attribute 2",
    "new_comments": "test comments",
    "new_recordurl": recordURL,
    "new_feedback_Annotations":
        [
            {
                "notetext": "Screenshot attached",
                "subject": "Attachment",
                "filename": file.name,
                "mimetype": file.type,
                "documentbody": base64str,
            }
        ]
    }

Το documentbody θα περιέχει το συνημμένο ως συμβολοσειρά base64.

Ενημέρωση και διαγραφή καρτελών με χρήση του Web API

Βασική ενημέρωση

Μαζική λειτουργία Μέθοδος URI Δείγμα JSON
Βασική ενημέρωση ΕΝΗΜΕΡΩΣΗ ΚΩΔΙΚΑ [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 }

Ενημέρωση μιας μεμονωμένης τιμής ιδιότητας

Λειτουργία Μέθοδος URI Δείγμα JSON
Ενημέρωση μιας μεμονωμένης τιμής ιδιότητας PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Διαγραφή ή απαλοιφή μιας τιμής πεδίου

Operation Method URI
Διαγραφή ή απαλοιφή μιας τιμής πεδίου ΔΙΑΓΡΑΦΗ [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Βασική διαγραφή

Λειτουργία Μέθοδος URI
Βασική διαγραφή DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Συσχετίστε και καταργήστε συσχετίσεις πινάκων χρησιμοποιώντας το API Web

Προσθήκη αναφοράς σε μια ιδιότητα περιήγησης που αποτιμάται στη συλλογή

Λειτουργία Μέθοδος URI Δείγμα JSON
Προσθήκη αναφοράς σε μια ιδιότητα περιήγησης που αποτιμάται στη συλλογή Καταχώρηση [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Κατάργηση μιας αναφοράς σε έναν πίνακα

Μαζική λειτουργία Μέθοδος URI
Κατάργηση μιας αναφοράς σε έναν πίνακα DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Κατάργηση μιας αναφοράς σε έναν πίνακα για μια ιδιότητα περιήγησης μίας τιμής

Για μια ιδιότητα περιήγησης μίας τιμής, καταργήστε την παράμετρο ερωτήματος συμβολοσειράς $id.

Μαζική λειτουργία Μέθοδος URI
Κατάργηση μιας αναφοράς σε έναν πίνακα για μια ιδιότητα περιήγησης μίας τιμής DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Αλλαγή της αναφοράς σε μια ιδιότητα περιήγησης μίας τιμής

Λειτουργία Μέθοδος URI Δείγμα JSON
Αλλαγή της αναφοράς σε μια ιδιότητα περιήγησης μίας τιμής PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Συσχέτιση πινάκων κατά τη δημιουργία

Μπορείτε να δημιουργήσετε νέους πίνακες με σχέσεις με χρήση εισαγωγής σε βάθος.

Συσχέτιση πινάκων στην ενημέρωση με χρήση μιας ιδιότητας περιήγησης μίας τιμής

Μπορείτε να συσχετίσετε πίνακες στην ενημέρωση χρησιμοποιώντας το ίδιο μήνυμα που περιγράφεται στη Βασική ενημέρωση νωρίτερα σε αυτό το θέμα, αλλά πρέπει να χρησιμοποιήσετε το σχόλιο @odata.bind για να ορίσετε την τιμή μιας ιδιότητας περιήγησης μίας τιμής. Το παρακάτω παράδειγμα αλλάζει το λογαριασμό που συσχετίζεται με μια ευκαιρία χρησιμοποιώντας την ιδιότητα πλοήγησης μίας τιμής customerid_account.

Συσχέτιση πινάκων στην ενημέρωση με χρήση μιας ιδιότητας περιήγησης μίας τιμής

Μαζική λειτουργία Μέθοδος URI Δείγμα JSON
Συσχέτιση πινάκων στην ενημέρωση με χρήση μιας ιδιότητας περιήγησης μίας τιμής PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Δείγματα Web API AJAX

Αυτό το δείγμα δείχνει τον τρόπο δημιουργίας, ενημέρωσης και διαγραφής καρτελών πινάκων με χρήση Ασύγχρονης JavaScript και XML (AJAX).

Λειτουργία περιτύλιξης AJAX

    (function(webapi, $){
        function safeAjax(ajaxOptions) {
            var deferredAjax = $.Deferred();
    
            shell.getTokenDeferred().done(function (token) {
                // add headers for AJAX
                if (!ajaxOptions.headers) {
                    $.extend(ajaxOptions, {
                        headers: {
                            "__RequestVerificationToken": token
                        }
                    }); 
                } else {
                    ajaxOptions.headers["__RequestVerificationToken"] = token;
                }
                $.ajax(ajaxOptions)
                    .done(function(data, textStatus, jqXHR) {
                        validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve);
                    }).fail(deferredAjax.reject); //AJAX
            }).fail(function () {
                deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args
            });
    
            return deferredAjax.promise();  
        }
        webapi.safeAjax = safeAjax;
    })(window.webapi = window.webapi || {}, jQuery)

Δημιουργία

    webapi.safeAjax({
        type: "POST",
        url: "/_api/accounts",
        contentType: "application/json",
        data: JSON.stringify({
            "name": "Sample Account"
        }),
        success: function (res, status, xhr) {
      //print id of newly created table record
            console.log("entityID: "+ xhr.getResponseHeader("entityid"))
        }
    });

Update

  webapi.safeAjax({
    type: "PATCH",
    url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
    contentType: "application/json",
    data: JSON.stringify({
      "name": "Sample Account - Updated"
    }),
    success: function (res) {
      console.log(res);
    }
  });

Delete

    webapi.safeAjax({
        type: "DELETE",
        url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
        contentType: "application/json",
        success: function (res) {
            console.log(res);
        }
  });

Επόμενο βήμα

Εκπαιδευτικό βοήθημα: χρήση API Web πύλης

Δείτε επίσης

Επισκόπηση πυλών Web API
Λειτουργίες ανάγνωσης πυλών χρησιμοποιώντας το API Web

Σημείωση

Μπορείτε να μας πείτε ποια γλώσσα προτιμάτε για την τεκμηρίωση; Πάρτε μέρος σε μια σύντομη έρευνα. (σημειώνεται ότι αυτή η έρευνα είναι στα Αγγλικά)

Η έρευνα θα διαρκέσει περίπου επτά λεπτά. Δεν συλλέγονται προσωπικά δεδομένα (δήλωση προστασίας προσωπικών δεδομένων).