Palvelinobjektit

Palvelinlogiikka tarjoaa palvelimen nimitilan alaisia sisäisiä objekteja. Nämä objektit yksinkertaistavat kehitystä, koska voit kirjata lokeja, kutsua ulkoisia palveluita, käsitellä Dataversea tai käyttää pyyntötietoja.

HttpClient

HTTP-asiakasohjelman avulla voit integroida ulkoisiin palveluihin lähettämällä HTTP-pyyntöjä.

Muistio

Tällä hetkellä palvelinlogiikka tukee vain application/json- text/html ja application/x-www-form-urlencoded -sisältötyyppejä pyynnön leipätekstissä.

Esimerkit

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 PATCH

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 DELETE

let url = "https://contoso.com/objects/6";
let header = { contentType: "application/json" };

let response = await Server.Connector.HttpClient.DeleteAsync(url, header);

Esimerkki: Vastaus

{
    "StatusCode": 200,
    "Body": "JsonString",
    "IsSuccessStatusCode": true,
    "ReasonPhrase": "OK",
    "ServerError": false,
    "ServerErrorMessage": null,
    "Headers": {
        "Transfer-Encoding": "chunked",
        "Connection": "keep-alive",
        "Server": "",
        "Content-Type": "application/json"
    }
}

Sivuston asetukset

Tämän avulla voit lukea sivuston asetusarvoja nykyiselle verkkosivustolle.

Muistio

Älä tallenna salaisuuksia (kuten ohjelmointirajapinta-avaimia tai tunnistetietoja) suoraan palvelinlogiikkaan. Tallenna ne turvallisesti Azure Key Vault, hanki ne ympäristömuuttujien kautta ja viittaa niihin sivuston asetusten avulla.

Esimerkki

Server.SiteSetting.Get("Search/Enabled");

Ympäristömuuttuja

Lukee ympäristömuuttujan arvon.

Esimerkki

Server.EnvironmentVariable.get("SITEPATH");

Verkkosivusto

Antaa tiedot nykyisestä sivustotietueesta Dataversessa.

Esimerkki

Server.Website.adx_primarydomain;

Käyttäjä

Antaa kirjautuneen käyttäjän tiedot. Palauttaa tyhjäarvon, jos se on anonyymi.

Esimerkki

Server.User.fullname;

Dataverse

-objektin Server.Connector.Dataverse avulla voit suorittaa CRUD-toimintoja Dataverse-taulukoille ja käynnistää mukautettuja ohjelmointirajapintoja.

Muistio

  • Kun viittaat koodisi Dataverse-taulukoihin, sinun on käytettävä EntitySetName-nimeä esimerkiksi taulukon käyttämiseen account . Koodisyntaksissa käytetään kohteen EntitySetName-nimeä accounts.

Luo tietue

Luo uusi tietue.

Server.Connector.Dataverse.CreateRecord(string entitySetName, string payload)   

Esimerkki

Server.Connector.Dataverse.CreateRecord("accounts", "{\"name\": \"Contoso Ltd.\", \"telephone1\": \"555-555-0100\", \"websiteurl\": \"https://contoso.com\"}");

Hae tietue

Hakee yksittäisen tietueen tunnuksen mukaan.

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)

Esimerkki

Server.Connector.Dataverse.RetrieveRecord("accounts", "00000000-0000-0000-0000-000000000001", "$select=name,telephone1");

RetrieveMultipleRecords

Hakee tietuekokoelman.

Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName)
Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName, string options)
Server.Connector.Dataverse.RetrieveMultipleRecords(string entitySetName, string options, bool skipCache) 

Esimerkki

Server.Connector.Dataverse.RetrieveMultipleRecords("accounts", "$select=name,emailaddress1&$top=3");

Päivitä ennätys

Päivittää olemassa olevan tietueen tunnuksen mukaan.

Server.Connector.Dataverse.UpdateRecord(string entitySetName, string id, string payload)   

Esimerkki

Server.Connector.Dataverse.UpdateRecord("accounts", "00000000-0000-0000-0000-000000000001", "{ \"telephone1\": \"555-555-0100\" }");

Poista tietue

Poistaa tietueen tunnuksen mukaan.

Server.Connector.Dataverse.DeleteRecord(string entitySetName, string id) 

Esimerkki

Server.Connector.Dataverse.DeleteRecord("accounts", "00000000-0000-0000-0000-000000000001");

KutsuCustomApi

Server.Connector.Dataverse.InvokeCustomApi(string httpMethod, string url, string payload = null) 

Kutsu sidottua funktiota:

Server.Connector.Dataverse.InvokeCustomApi("get", "accounts(00000000-0000-0000-0000-000000000001)/Microsoft.Dynamics.CRM.new_CustomBoundFunction");

Kutsu sidottu toiminto:

Server.Connector.Dataverse.InvokeCustomApi("post", "accounts(00000000-0000-0000-0000-000000000001)/Microsoft.Dynamics.CRM.new_CustomBoundAction", "{ \"parameter1\": \"value1\" }");

Kutsu sitomaton toiminto:

Server.Connector.Dataverse.InvokeCustomApi("post", "new_Action", "{ \"parameter1\": \"value1\" }");

Esimerkki: Vastaus

{
    "StatusCode": 204,
    "Body": "",
    "IsSuccessStatusCode": true,
    "ReasonPhrase": "No Content",
    "ServerError": false,
    "ServerErrorMessage": null,
    "Headers": {
        "x-ms-cds-service-request-id": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
}

Metsuri

Lokitoiminnon avulla voit kirjoittaa diagnostiikkaviestejä, joita voidaan tarkastella DevTools-laajennuksessa.

Esimerkki:

Server.Logger.Log("Information message");
Server.Logger.Warn("Warning message");
Server.Logger.Error("Error message");

Konteksti

Tarjoaa metatietoja nykyisestä pyynnöstä, mukaan lukien kyselyparametrit, otsikot ja leipätekstin.

Ominaisuudet

Nimi Description
AktiviteettiId Yksilöivä pyyntötunnus
Runkoteksti Raakapyyntöjen runko
Toiminnon nimi Käynnistetty funktion nimi
Otsikot Pyynnön otsikot
HttpMethod HTTP-menetelmä
QueryParameters Kyselyn merkkijonon parametrit
ServerLogicName Palvelinlogiikan nimi
URL-osoite Koko pyynnön URL-osoite

Esimerkki

Lue kyselyparametri id URL-osoitteesta:

Server.Context.QueryParameters['id'];

Seuraava vaihe

Dataverse-taulukoiden käsitteleminen palvelinlogiikan avulla

Palvelinlogiikan yleiskatsaus
Laatijapalvelimen logiikka