A portálok használtata Web API írása, frissítése és törlése műveletekre
A webes API elérhető műveletei végrehajthatók a portálokon. A webes API műveletek HTTP-kérelmekből és-válaszokból állnak. A cikk a HTTP-kérelmekben használható példákat, irási, frissítési és törlési módszereket, URI-kat és minta JSON formátumokat mutat be.
Fontos
- A portálverziónak 9.3.3.x-nek vagy újabbnak kell lennie, hogy ez a funkció működjön.
Előfeltételek
Tábla és mező engedélyezése a webes API-műveletekhez. További információ: A webes API webhelybeállításai
A portálok webes API-ja hozzáfér az táblarekordokhoz, és követi a társított webes szerepkörök segítségével a felhasználóknak adott táblaengedélyeket. Győződjön meg róla, hogy a megfelelő táblaengedélyeket konfigurálta. További információ: Webes szerepkörök létrehozása
Rekord létrehozása táblában
Feljegyzés
Amikor a portálok webes API-t használó Dataverse-táblákra hivatkozik, az EntitySetName nevet kell használnia például a fiók táblához való hozzáféréshez, a kód szintaxisa a fiókok EntitySetName fájlját fogja használni.
Alapszintű létrehozás
Operation | Metódus | URI | JSON-minta |
---|---|---|---|
Alapszintű létrehozás | POST | [Portál URI]/_api/accounts | {"name":"Sample Account"} |
JSON-minta kapcsolódó táblarekordok egyetlen műveletben való létrehozásához
Például a következő, a Partner táblakészlethez közzétett kérelemtörzs összesen négy új táblát hoz létre – köztük a partner táblát is – a partner létrehozásakor.
- A rendszer azért hoz létre kapcsolattartót, mert az az egyértékű primarycontactid navigációs
primarycontactid
tulajdonság objektumtulajdonságaként van definiálva. - A rendszer azért hoz létre lehetőséget, mert az egy olyan, tömbön belüli objektumként van definiálva, amely a gyűjtemény értékű
opportunity_customer_accounts
navigációs tulajdonság értékére van beállítva. - A rendszer azért hoz létre feladatot, mert az egy olyan, tömbön belüli objektumként van definiálva, amely a gyűjtemény értékű
Opportunity_Tasks
navigációs tulajdonság értékére van beállítva.
{
"name": "Sample Account",
"primarycontactid":
{
"firstname": "Alton",
"lastname": "Stott"
},
"opportunity_customer_accounts":
[
{
"name": "Opportunity associated to Sample Account",
"Opportunity_Tasks":
[
{ "subject": "Task associated to opportunity" }
]
}
]
}
Táblarekordok társítása létrehozáskor
Operation | Metódus | URI | JSON-minta |
---|---|---|---|
Táblarekordok társítása létrehozáskor | POST | [Portál URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
Minta JSON jegyzet webes API-val történő létrehozásához
{
"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,
}
]
}
A mellékletet a documentbody
tartalmazza Base64-sztringként.
Bejegyzések frissítése és törlése a webes API-val
Alapvető frissítés
Művelet | Metódus | URI | JSON-minta |
---|---|---|---|
Alapvető frissítés | JAVÍTÁS | [Portál 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 } |
Egyetlen tulajdonságérték frissítése
Művelet | Módszer | URI | JSON-minta |
---|---|---|---|
Egyetlen tulajdonságérték frissítése | PUT | [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Mezőérték törlése
Operation | Metódus | URI |
---|---|---|
Mezőérték törlése | DELETE | [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Alapszintű törlés
Művelet | Módszer | URI |
---|---|---|
Alapszintű törlés | DELETE | [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Táblák hozzárendelése és a hozzárendelés megszüntetése a webes API használatával
Hivatkozás hozzáadása egy gyűjtemény-értékű navigációs tulajdonsághoz
Művelet | Módszer | URI | JSON-minta |
---|---|---|---|
Hivatkozás hozzáadása egy gyűjtemény-értékű navigációs tulajdonsághoz | KÜLDÉS | [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Táblára vonatkozó hivatkozás eltávolítása
Művelet | Metódus | URI |
---|---|---|
Táblára vonatkozó hivatkozás eltávolítása | DELETE | [Portál URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Az egyértékű navigációs tulajdonsággal rendelkező táblára vonatkozó hivatkozás eltávolítása
Egyértékű navigációs tulajdonság esetén távolítsa el a $id lekérdezésikarakterlánc-paramétert.
Művelet | Metódus | URI |
---|---|---|
Az egyértékű navigációs tulajdonsággal rendelkező táblára vonatkozó hivatkozás eltávolítása | DELETE | [Portál URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Egy egyértékű navigációs tulajdonság hivatkozásának módosítása
Művelet | Módszer | URI | JSON-minta |
---|---|---|---|
Egy egyértékű navigációs tulajdonság hivatkozásának módosítása | PUT | [Portál URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Táblák társítása létrehozáskor
Új táblák hozhatók létre kapcsolatokkal mély beszúrás segítségével.
Frissítésre használt táblák társítása egyértékű navigációs tulajdonság használatával
A frissítés során a táblák a témakör korábbi, az Alapfrissítésében részben ismertetett üzenet használatával társíthatóak, de a @odata.bind
jelölés segítségével kell beállítania egy egyértékű navigációs tulajdonság értékét. A következő példában a customerid_account
egyértékű navigációs tulajdonság használatával változtatjuk meg a lehetőséghez társított partnert.
Frissítésre használt táblák társítása egyértékű navigációs tulajdonság használatával
Művelet | Metódus | URI | JSON-minta |
---|---|---|---|
Frissítésre használt táblák társítása egyértékű navigációs tulajdonság használatával | PATCH | [Portál URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Webes API AJAX-minták
A példa bemutatja, hogyan hozhat létre, frissíthet és törölhet táblarekordokat aszinkron JavaScript és XML (AJAX) használatával.
Burkoló AJAX-függvény
(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)
Létrehozás
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);
}
});
Társítás
Az alábbi példa egy meglévő kapcsolattartót fog elsődleges kapcsolattartóként hozzárendelni egy meglévő partnerhez.
var record = {};
record[primarycontactid@odata.bind] = "/contacts(00000000-0000-0000-0000-000000000002)";
webapi.safeAjax({
type: "PATCH",
contentType: "application/json",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
data: JSON.stringify(record),
success: function (data, textStatus, xhr) {
console.log("Record updated");
}
});
Következő lépés
Útmutató: Portálok webes API-jának használata