Κοινή χρήση μέσω


Ερώτημα για δεδομένα χρησιμοποιώντας το Web API πυλών

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

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

  • Η έκδοση της τοποθεσίας web σας πρέπει να είναι 9.4.1.x ή νεότερη.

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

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

Σημείωμα

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

Καρτέλες ερωτήματος

Το παρακάτω παράδειγμα υποβάλλει ερωτήματα για καρτέλες λογαριασμών:

Λειτουργία Method URI
Ανάκτηση καρτελών πίνακα GET [Portal URI]/_api/accounts

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts

Δείγμα απόκρισης

{
"value": [
    {
    "@odata.etag": "W/\"1066412\"",
    "name": "Fourth Coffee (sample)",
    "accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
    },
    {
    "@odata.etag": "W/\"1066413\"",
    "name": "Litware, Inc. (sample)",
    "accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
    }
]
}

Χρησιμοποιήστε επιλογές ερωτημάτων συστήματος $select και $top για να επιστρέψετε την ιδιότητα ονόματος για τους τρεις πρώτους λογαριασμούς:

Λειτουργία Method URI
Ανάκτηση των τριών πρώτων καρτελών οντότητας GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Ανάκτηση λογαριασμού με χρήση του αναγνωριστικού λογαριασμού:

Λειτουργία Method URI
Ανάκτηση συγκεκριμένης ιδιότητας για μια καρτέλα GET [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

Δείγμα απόκρισης

{
    "@odata.etag": "W/\"1066414\"",
    "name": "Adventure Works (sample)",
    "accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}

Εφαρμογή επιλογών ερωτήματος συστήματος

Κάθε επιλογή ερωτήματος συστήματος που προσαρτάτε στη διεύθυνση URL για το σύνολο οντοτήτων, προστίθεται χρησιμοποιώντας τη σύνταξη για συμβολοσειρές ερωτημάτων. Η πρώτη προσαρτάται μετά το [?] και οι ακόλουθες επιλογές ερωτήματος διαχωρίζονται με χρήση του [&]. Σε όλες τις επιλογές ερωτήματος ισχύει διάκριση πεζών-κεφαλαίων, όπως φαίνεται στο παρακάτω παράδειγμα:

Method URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Αίτηση συγκεκριμένων ιδιοτήτων

Χρησιμοποιήστε την επιλογή ερωτήματος συστήματος $select για να περιορίσετε τις ιδιότητες που επιστρέφονται, όπως φαίνεται στο παρακάτω παράδειγμα:

Method URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Σημαντικό

Είναι μια βέλτιστη πρακτική για επιδόσεις. Εάν οι ιδιότητες δεν καθορίζονται και έχετε ρυθμίσει τις παραμέτρους της τιμής ρύθμισης τοποθεσίας Webapi/<table name>/fields σε *, τότε όλες οι ιδιότητες θα επιστραφούν χρησιμοποιώντας το $select. Εάν δεν καθορίζονται ιδιότητες, θα επιστραφεί σφάλμα.

Αποτελέσματα φίλτρου

Χρησιμοποιήστε την επιλογή ερωτήματος συστήματος $filter για να ορίσετε κριτήρια για το ποιες γραμμές θα επιστραφούν.

Τελεστές τυπικού φίλτρου

Το Web ΑΡΙ υποστηρίζει τους τυπικούς τελεστές φίλτρων OData που παρατίθενται στον ακόλουθο πίνακα:

Τελεστής Περιγραφή Παράδειγμα
Τελεστές σύγκρισης
eq Ίσο $filter=revenue eq 100000
ne Δεν είναι ίσο $filter=revenue ne 100000
gt Μεγαλύτερο από $filter=revenue gt 100000
ge Μεγαλύτερο από ή ίσο με $filter=revenue ge 100000
lt Μικρότερο από $filter=revenue lt 100000
le Μικρότερο από ή ίσο με $filter=revenue le 100000
Λογικοί τελεστές
and Λογικός και $filter=revenue lt 100000 and revenue gt 2000
or Λογικό ή $filter=contains(name,'(sample)') or contains(name,'test')
not Λογική άρνηση $filter=not contains(name,'sample')
Τελεστές ομαδοποίησης
( ) Ομαδοποίηση προτεραιότητας (contains(name,'sample') or contains(name,'test')) and revenue gt 5000

Τυπικές λειτουργίες ερωτημάτων

Το Web ΑΡΙ υποστηρίζει αυτές τις τυπικές λειτουργίες ερωτήματος συμβολοσειράς OData:

Λειτουργία Παράδειγμα
περιέχει $filter=contains(name,'(sample)')
endswith $filter=endswith(name,'Inc.')
startswith $filter=startswith(name,'a')

Συναρτήσεις ερωτήματος Dataverse

Το ΑΡΙ Web υποστηρίζει συναρτήσεις ερωτήματος Dataverse για το φιλτράρισμα αποτελεσμάτων. Για περισσότερες πληροφορίες, ανατρέξτε στην Αναφορά συνάρτησης ερωτήματος Web API.

Σειρά αποτελεσμάτων

Καθορίστε τη σειρά επιστροφής των στοιχείων χρησιμοποιώντας την επιλογή ερωτήματος συστήματος $orderby. Χρησιμοποιήστε το επίθημα asc ή desc για να καθορίσετε αύξουσα ή φθίνουσα σειρά αντίστοιχα. Η προεπιλογή είναι αύξουσα εάν δεν εφαρμοστεί το επίθημα. Το παρακάτω παράδειγμα δείχνει την ανάκτηση των ιδιοτήτων ονόματος και εσόδων των λογαριασμών με αύξουσα σειρά εσόδων και με φθίνουσα σειρά ονομάτων.

Method URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

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

Χρησιμοποιώντας την $apply, μπορείτε να συναθροίζετε τα δεδομένα σας και να τα ομαδοποιείτε δυναμικά, όπως φαίνεται στα παρακάτω παραδείγματα:

Σενάρια Παράδειγμα
Λίστα μοναδικών καταστάσεων στο ερώτημα accounts?$apply=groupby((statuscode))
Συγκεντρωτικό άθροισμα της εκτιμώμενης τιμής opportunities?$apply=aggregate(estimatedvalue with sum as total)
Μέσο μέγεθος της συμφωνίας με βάση την εκτιμώμενη αξία και κατάσταση opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue)
Άθροισμα της εκτιμώμενης αξίας βάσει κατάστασης opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total))
Συνολικά έσοδα ευκαιρίας κατά όνομα λογαριασμού opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total))
Κύρια ονόματα επαφών για λογαριασμούς στην 'WA' accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
Τελευταία δημιουργηθείσα ημερομηνία και ώρα καρτέλας accounts?$apply=aggregate(createdon with max as lastCreate)
Πρώτη δημιουργηθείσα ημερομηνία και ώρα καρτέλας accounts?$apply=aggregate(createdon with min as firstCreate)

Ανάκτηση ενός πλήθους γραμμών

Χρησιμοποιήστε την επιλογή ερωτήματος συστήματος $count με τιμή true για να συμπεριλάβετε μια μέτρηση οντοτήτων που συμφωνούν με τα κριτήρια φίλτρου έως και 5.000.

Method URI
GET [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

Δείγμα απόκρισης

{
"@odata.count": 10,
"value": [
    {
    "@odata.etag": "W/\"1066412\"",
    "name": "Fourth Coffee (sample)",
    "accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
    },
    {
    "@odata.etag": "W/\"1066413\"",
    "name": "Litware, Inc. (sample)",
    "accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
    },
    {
    "@odata.etag": "W/\"1066414\"",
    "name": "Adventure Works (sample)",
    "accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
    }
]
}

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

Method URI
GET [Portal URI/_api/accounts/$count

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts/$count

Δείγμα απόκρισης

3

Σύγκριση στηλών

Το παρακάτω παράδειγμα δείχνει τον τρόπο σύγκρισης στηλών με χρήση του API Web:

Method URI
GET [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname

Παράδειγμα:
https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname

Χρησιμοποιήστε την επιλογή ερωτήματος συστήματος $expand στις ιδιότητες περιήγησης για να ελέγξετε ποια δεδομένα από σχετικές οντότητες επιστρέφονται.

Ιδιότητα πλοήγησης που σχετίζεται με αναζήτηση

Θα χρειαστεί να χρησιμοποιήσετε το Microsoft.Dynamics.CRM.associatednavigationproperty ως χαρακτηριστικό αναζήτησης όταν χρησιμοποιείτε την επιλογή ερωτήματος $expand.

Για να προσδιορίσετε το Microsoft.Dynamics.CRM.associatednavigationproperty ενός χαρακτηριστικού, μπορείτε να κάνετε την ακόλουθη αίτηση http GET για τη στήλη χρησιμοποιώντας την παρακάτω σύμβαση ονομασίας: _όνομα_τιμή.

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

Method URI
GET [Portal URI]/_api/accounts?$select=_primarycontactid_value

Παράδειγμα
https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value

Δείγμα απόκρισης

{
"value": [
    {
        "@odata.etag": "W/\"2465216\"",
        "_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "Yvonne McKay (sample)",
        "_primarycontactid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "primarycontactid",
        "_primarycontactid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
        "_primarycontactid_value": "417319b5-cd18-ed11-b83c-000d3af4d812",
        "accountid": "2d7319b5-cd18-ed11-b83c-000d3af4d812"
    }
]
}

Βλέπουμε από την απόκριση ότι η συσχετισμένη ιδιότητα περιήγησης είναι primarycontactid. Η συσχετισμένη ιδιότητα περιήγησης μπορεί να είναι το λογικό όνομα ή το όνομα σχήματος της στήλης αναζήτησης με τον τρόπο δημιουργίας του πίνακα.

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ανάκτηση δεδομένων σχετικά με τις ιδιότητες αναζήτησης.

Το παρακάτω παράδειγμα δείχνει τον τρόπο ανάκτησης της επαφής για όλες τις καρτέλες λογαριασμών. Για τις σχετικές καρτέλες επαφών, ανακτάμε μόνο τα contactid και fullname.

Method URI
GET [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

Δείγμα απόκρισης

{
"value": [
    {
    "@odata.etag": "W/\"1066412\"",
    "name": "Fourth Coffee (sample)",
    "accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
        "primarycontactid": {
        "contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
        "fullname": "Yvonne McKay (sample)"
        }
    },
    {
    "@odata.etag": "W/\"1066413\"",
    "name": "Litware, Inc. (sample)",
    "accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
        "primarycontactid": {
        "contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
        "fullname": "Susanna Stubberod (sample)"
        }
    }
]
}

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

Method URI
GET [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

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

Method URI
GET [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

Παράδειγμα:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

Επόμενο βήμα

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

Δείτε επίσης