Pastaba.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti prisijungti arba pakeisti katalogus.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti pakeisti katalogus.
Serverio logika teikia įtaisytuosius objektus po serverio vardų sritimi. Šie objektai supaprastina kūrimą leisdami jums registruoti pranešimus, skambinti išorinėms tarnyboms, dirbti su "Dataverse" arba prieigos užklausos informacija.
Httpclient
Naudokite HTTP klientą, kad integruotumėte su išorinėmis tarnybomis siųsdami HTTP užklausas.
Pastaba.
Šiuo metu serverio logika palaiko tik application/json, text/htmlir application/x-www-form-urlencoded turinio tipus užklausos tekste.
Pavyzdžiai
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 POST
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 PATAISA
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 NAIKINIMAS
let url = "https://contoso.com/objects/6";
let header = { contentType: "application/json" };
let response = await Server.Connector.HttpClient.DeleteAsync(url, header);
Pavyzdys: atsakas
{
"StatusCode": 200,
"Body": "JsonString",
"IsSuccessStatusCode": true,
"ReasonPhrase": "OK",
"ServerError": false,
"ServerErrorMessage": null,
"Headers": {
"Transfer-Encoding": "chunked",
"Connection": "keep-alive",
"Server": "",
"Content-Type": "application/json"
}
}
Svetainės nustatymas
Leidžia skaityti dabartinės svetainės parametrų reikšmes.
Pastaba.
Nesaugokite paslapčių, pvz., API raktų ar kredencialų, tiesiogiai serverio logikoje. Vietoj to, saugokite juos saugiai Azure Key Vault, šaltinio juos naudodami aplinkos kintamuosius ir nurodykite juos naudodami svetainės parametrus.
Pavyzdys
Server.SiteSetting.Get("Search/Enabled");
EnvironmentVariable
Skaito aplinkos kintamojo reikšmę.
Pavyzdys
Server.EnvironmentVariable.get("SITEPATH");
Svetainę
Pateikia informaciją apie dabartinį svetainės įrašą programoje "Dataverse".
Pavyzdys
Server.Website.adx_primarydomain;
User
Pateikiama prisijungusio vartotojo išsami informacija. Grąžina nulį, jei yra anoniminis.
Pavyzdys
Server.User.fullname;
Dataverse
Naudokite objektą Server.Connector.Dataverse CRUD operacijoms su "Dataverse" lentelėmis atlikti ir pasirinktinėms API iškviesti.
Pastaba.
- Kai savo kode nurodote "Dataverse" lenteles, naudokite EntitySetName. Pavyzdžiui, norėdami pasiekti
accountlentelę, naudokite EntitySetNameaccounts.
Sukurti įrašą
Kurti naują įrašą.
Server.Connector.Dataverse.CreateRecord(string entitySetName, string payload)
Pavyzdys
Server.Connector.Dataverse.CreateRecord("accounts", "{\"name\": \"Contoso Ltd.\", \"telephone1\": \"555-555-0100\", \"websiteurl\": \"https://contoso.com\"}");
RetrieveRecord
Nuskaito vieną įrašą pagal ID.
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)
Pavyzdys
Server.Connector.Dataverse.RetrieveRecord("accounts", "00000000-0000-0000-0000-000000000001", "$select=name,telephone1");
RetrieveMultipleRecords
Nuskaito įrašų rinkinį.
Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName)
Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName, string options)
Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName, string options, bool skipCache)
Pavyzdys
Server.Connector.Dataverse.RetrieveMultipleRecords("accounts", "$select=name,emailaddress1&$top=3");
UpdateRecord
Atnaujina esamą įrašą pagal ID.
Server.Connector.Dataverse.UpdateRecord(string entitySetName, string id, string payload)
Pavyzdys
Server.Connector.Dataverse.UpdateRecord("accounts", "00000000-0000-0000-0000-000000000001", "{ \"telephone1\": \"555-555-0100\" }");
DeleteRecord
Panaikina įrašą pagal ID.
Server.Connector.Dataverse.DeleteRecord(string entitySetName, string id)
Pavyzdys
Server.Connector.Dataverse.DeleteRecord("accounts", "00000000-0000-0000-0000-000000000001");
InvokeCustomApi
Server.Connector.Dataverse.InvokeCustomApi(string httpMethod, string url, string payload = null)
Iškviesti susietą funkciją:
Server.Connector.Dataverse.InvokeCustomApi("get", "accounts(00000000-0000-0000-0000-000000000001)/Microsoft.Dynamics.CRM.new_CustomBoundFunction");
Iškviesti susietą veiksmą:
Server.Connector.Dataverse.InvokeCustomApi("post", "accounts(00000000-0000-0000-0000-000000000001)/Microsoft.Dynamics.CRM.new_CustomBoundAction", "{ \"parameter1\": \"value1\" }");
Iškviesti nesusietą veiksmą:
Server.Connector.Dataverse.InvokeCustomApi("post", "new_Action", "{ \"parameter1\": \"value1\" }");
Pavyzdys: atsakas
{
"StatusCode": 204,
"Body": "",
"IsSuccessStatusCode": true,
"ReasonPhrase": "No Content",
"ServerError": false,
"ServerErrorMessage": null,
"Headers": {
"x-ms-cds-service-request-id": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
}
Logger
Naudokite žurnalą norėdami rašyti diagnostikos pranešimus, kuriuos galite peržiūrėti "DevTools" plėtinyje.
Pavyzdys:
Server.Logger.Log("Information message");
Server.Logger.Warn("Warning message");
Server.Logger.Error("Error message");
Kontekstas
Objektas Server.Context pateikia informaciją apie dabartinę serverio logiką. Galimos ypatybės priklauso nuo to, ar serverio logika buvo iškviesta naudojant HTTP užklausą, ar iš "Liquid" šablono.
Ypatybės
| Pavadinimas / vardas ir pavardė | Galima naudoti | Aprašą |
|---|---|---|
ActivityId |
HTTP ir "Liquid" | Unikalusis serverio logikos iškvietimo identifikatorius. Naudokite šią reikšmę, jei norite susieti žurnalus ir šalinti operacijos triktis. |
Body |
HTTP | Neapdorotas HTTP užklausos tekstas. |
FunctionName |
HTTP ir "Liquid" | Iškviečiamos "JavaScript" funkcijos pavadinimas. Naudojant "Liquid" iškvietimą operation , ši reikšmė atitinka žymės parametrą serverlogic . |
Headers |
HTTP | HTTP užklausų antraštės. |
HttpMethod |
HTTP | HTTP užklausos metodas, pvz GET., , POST, PUT, , PATCHarba DELETE. |
Input |
„Liquid“ | Įvesties eilutė, input pateikiama per žymės Liquid parametrą serverlogic . Kai įvestyje yra struktūrinių duomenų, prieš juos naudodami išanalizuoti kaip JSON. |
QueryParameters |
HTTP | Užklausos eilutės parametrai iš HTTP užklausos. |
ServerLogicName |
HTTP ir "Liquid" | Iškviečiamo serverio logikos įrašo pavadinimas. |
Url |
HTTP | Visas HTTP užklausos URL. |
Prieigos HTTP užklausos kontekstas
Toliau pateiktame pavyzdyje perskaitytas id užklausos parametras, kai serverio logika iškviečiama per HTTP užklausą:
var id = Server.Context.QueryParameters["id"];
Taip pat galite pasiekti užklausos metaduomenis:
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 Liquid" iškvietimo kontekstas
Kai serverio logika iškviečiama iš "Liquid"input, naudokite Server.Context.Input norėdami skaityti reikšmę, pateiktą per žymės parametrą.
Pvz., šis skystis perduoda JSON įvestį:
{% assign inputData = '{"category":"active","maximumResults":5}' %}
{% serverlogic output: result, name: 'customer-summary', operation: 'getSummary', input: inputData %}
Serverio logikos operacija gali išanalizuoti įvesties ir prieigos informaciją apie "Liquid" iškvietimą:
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
});
}
Tolesnis veiksmas
Kaip sąveikauti su "Dataverse" lentelėmis naudojant serverio logiką