Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Serveriloogika pakub sisseehitatud objekte serveri nimeruumi all. Need objektid lihtsustavad arengut, võimaldades logida sõnumeid, helistada välisteenuseid, töötada Dataverse'iga või juurdepääsutaotluse üksikasjadega.
HttpClient
HTTP-kliendi abil saate väliste teenustega integreerida HTTP-päringuid saates.
Märkus.
Praegu toetab serveriloogika ainult päringu sisuosas olevaid application/json, text/htmlja application/x-www-form-urlencoded sisutüüpe.
Näited
HTTP GET
let url = "https://contoso.com/objects";
let header = { client_id: "00001111-aaaa-2222-bbbb-3333cccc4444" };
let response = await Server.Connector.HttpClient.GetAsync(url, header);
HTTP-POSTITUS
let url = "https://contoso.com/objects";
let body = JSON.stringify({ name: "Sample Account" });
let header = { client_id: "00001111-aaaa-2222-bbbb-3333cccc4444" };
let contentType = "application/json";
// Make the POST request
let response = await Server.Connector.HttpClient.PostAsync(url, body, header, contentType);
HTTP PUT
let url = "https://contoso.com/objects/6";
let body = JSON.stringify({ name: "Updated Sample Account" });
let header = { client_id: "00001111-aaaa-2222-bbbb-3333cccc4444" };
let contentType = "application/json";
// Make the PUT request
let response = await Server.Connector.HttpClient.PutAsync(url, body, header, contentType);
HTTP-PAIK
let url = "https://contoso.com/objects/6";
let body = JSON.stringify({ name: "{\"capacity\": \"2 TB\"}" });
let header = { client_id: "00001111-aaaa-2222-bbbb-3333cccc4444" };
let contentType = "application/json";
// Make the PATCH request
let response = await Server.Connector.HttpClient.PatchAsync(url, body, header, contentType);
HTTP-KUSTUTAMINE
let url = "https://contoso.com/objects/6";
let header = { contentType: "application/json" };
let response = await Server.Connector.HttpClient.DeleteAsync(url, header);
Näide: vastus
{
"StatusCode": 200,
"Body": "JsonString",
"IsSuccessStatusCode": true,
"ReasonPhrase": "OK",
"ServerError": false,
"ServerErrorMessage": null,
"Headers": {
"Transfer-Encoding": "chunked",
"Connection": "keep-alive",
"Server": "",
"Content-Type": "application/json"
}
}
SiteSetting
Võimaldab teil lugeda praeguse veebisaidi saidisätete väärtusi.
Märkus.
Ärge salvestage saladusi (nt API võtmeid või identimisteavet) otse serveri loogikasse. Selle asemel salvestage need turvaliselt Azure Key Vault, hankige need keskkonnamuutujate kaudu ja viidake neile saidisätete abil.
Näide
Server.SiteSetting.Get("Search/Enabled");
EnvironmentVariable
Loeb ette keskkonnamuutuja väärtuse.
Näide
Server.EnvironmentVariable.get("SITEPATH");
Veebisait
Sisaldab üksikasju praeguse veebisaidikirje kohta dataverse'is.
Näide
Server.Website.adx_primarydomain;
Kasutaja
Sisaldab sisselogimiskasutaja üksikasju. Tagastab tühiväärtuse, kui see on anonüümne.
Näide
Server.User.fullname;
Dataverse
Server.Connector.Dataverse Kasutage objekti CRUD-toimingute tegemiseks dataverse-tabelites ja kohandatud API-de kutsumiseks.
Märkus.
- Koodis olevatele dataverse-tabelitele viitamisel kasutage EntitySetName'i. Näiteks tabelile juurdepääsemiseks
accountkasutage EntitySetName'iaccounts.
Loo kirje
Saate luua uue kirje.
Server.Connector.Dataverse.CreateRecord(string entitySetName, string payload)
Näide
Server.Connector.Dataverse.CreateRecord("accounts", "{\"name\": \"Contoso Ltd.\", \"telephone1\": \"555-555-0100\", \"websiteurl\": \"https://contoso.com\"}");
Kirje hankimine
Toob ühe kirje ID-ga.
Server.Connector.Dataverse.RetrieveRecord(string entitySetName, string id)
Server.Connector.Dataverse.RetrieveRecord(string entitySetName, string id, string options)
Server.Connector.Dataverse.RetrieveRecord(string entitySetName, string id, string options, bool skipCache)
Näide
Server.Connector.Dataverse.RetrieveRecord("accounts", "00000000-0000-0000-0000-000000000001", "$select=name,telephone1");
Too_kordsed_kirjed
Toob kirjete kogu.
Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName)
Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName, string options)
Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName, string options, bool skipCache)
Näide
Server.Connector.Dataverse.RetrieveMultipleRecords("accounts", "$select=name,emailaddress1&$top=3");
Värskenda kirjet
Värskendab olemasoleva kirje ID-ga.
Server.Connector.Dataverse.UpdateRecord(string entitySetName, string id, string payload)
Näide
Server.Connector.Dataverse.UpdateRecord("accounts", "00000000-0000-0000-0000-000000000001", "{ \"telephone1\": \"555-555-0100\" }");
Kustuta kirje
Kustutab kirje ID-ga.
Server.Connector.Dataverse.DeleteRecord(string entitySetName, string id)
Näide
Server.Connector.Dataverse.DeleteRecord("accounts", "00000000-0000-0000-0000-000000000001");
InvokeCustomApi
Server.Connector.Dataverse.InvokeCustomApi(string httpMethod, string url, string payload = null)
Köidetud funktsiooni kutsumine:
Server.Connector.Dataverse.InvokeCustomApi("get", "accounts(00000000-0000-0000-0000-000000000001)/Microsoft.Dynamics.CRM.new_CustomBoundFunction");
Seotud toimingu käivitamine:
Server.Connector.Dataverse.InvokeCustomApi("post", "accounts(00000000-0000-0000-0000-000000000001)/Microsoft.Dynamics.CRM.new_CustomBoundAction", "{ \"parameter1\": \"value1\" }");
Köitmata toimingu käivitamine:
Server.Connector.Dataverse.InvokeCustomApi("post", "new_Action", "{ \"parameter1\": \"value1\" }");
Näide: vastus
{
"StatusCode": 204,
"Body": "",
"IsSuccessStatusCode": true,
"ReasonPhrase": "No Content",
"ServerError": false,
"ServerErrorMessage": null,
"Headers": {
"x-ms-cds-service-request-id": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
}
Puuraidur
Logija abil saate kirjutada diagnostikateateid, mida saate vaadata DevToolsi laiendis.
Näide:
Server.Logger.Log("Information message");
Server.Logger.Warn("Warning message");
Server.Logger.Error("Error message");
Kontekst
Server.Context Objekt annab teavet praeguse serveriloogika kutsumise kohta. Saadaolevad atribuudid sõltuvad sellest, kas serveriloogika käivitati HTTP-päringu või Liquidi malli kaudu.
Atribuudid
| Nimi | Saadaval: | Kirjeldus |
|---|---|---|
ActivityId |
HTTP ja vedelik | Serveri loogika kutsumise ainuidentifikaator. Kasutage seda väärtust logide korreleerimiseks ja toimingu tõrkeotsinguks. |
Body |
HTTP | TOORES HTTP-päringu keha. |
FunctionName |
HTTP ja vedelik | Käivitatava JavaScripti funktsiooni nimi. Vedelal kutsumisel vastab operation see väärtus sildi parameetrile serverlogic . |
Headers |
HTTP | HTTP-päringu päised. |
HttpMethod |
HTTP | HTTP-päringumeetod (nt GET, , PUTPOST, , PATCHvõi DELETE. |
Input |
Liquid | Sisendstring, mis input esitatakse sildi Liquid parameetri serverlogic kaudu. Kui sisend sisaldab struktureeritud andmeid, sõeluge need enne kasutamist JSON-ina. |
QueryParameters |
HTTP | PÄRINGUstringi parameetrid HTTP-päringust. |
ServerLogicName |
HTTP ja vedelik | Kutsutava serveriloogikakirje nimi. |
Url |
HTTP | HTTP-taotluse täielik URL. |
Accessi HTTP-päringu kontekst
Järgmises näites id loetakse päringuparameeter ette, kui HTTP-päringu kaudu käivitatakse serveriloogika:
var id = Server.Context.QueryParameters["id"];
Samuti pääsete juurde taotluse metaandmetele.
function getRequestInformation() {
return JSON.stringify({
activityId: Server.Context.ActivityId,
functionName: Server.Context.FunctionName,
httpMethod: Server.Context.HttpMethod,
serverLogicName: Server.Context.ServerLogicName,
url: Server.Context.Url
});
}
Access Liquidi kutsumise kontekst
Kui serveriloogika käivitatakse vedelikust, kasutage Server.Context.Input sildi input parameetri kaudu esitatud väärtuse lugemiseks.
Näiteks järgmine vedelik edastab JSON-sisendi:
{% assign inputData = '{"category":"active","maximumResults":5}' %}
{% serverlogic output: result, name: 'customer-summary', operation: 'getSummary', input: inputData %}
Serveri loogikatoiming saab sõeluda vedelike kutsumise sisend- ja juurdepääsuteavet.
function getSummary() {
var input = JSON.parse(Server.Context.Input || "{}");
return JSON.stringify({
category: input.category,
maximumResults: input.maximumResults,
activityId: Server.Context.ActivityId,
functionName: Server.Context.FunctionName,
serverLogicName: Server.Context.ServerLogicName
});
}
Järgmine etapp
Kuidas suhelda Dataverse'i tabelitega serveriloogika abil