Serverobjecten

Serverlogica biedt ingebouwde objecten onder de servernaamruimte. Deze objecten vereenvoudigen de ontwikkeling door u berichten te laten vastleggen, externe services aan te roepen, te werken met Dataverse of details van toegangsaanvragen.

HttpClient

Gebruik de HTTP-client om te integreren met externe services door HTTP-aanvragen te verzenden.

Note

Serverlogica ondersteunt momenteel alleen application/jsonen text/htmlapplication/x-www-form-urlencoded inhoudstypen in aanvraagbody.

Voorbeelden

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);

Voorbeeld: respons

{
    "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

Hiermee kunt u site-instellingswaarden voor de huidige website lezen.

Note

Sla geheimen (zoals API-sleutels of referenties) niet rechtstreeks op in serverlogica. Sla ze in plaats daarvan veilig op in Azure Key Vault, bron ze via omgevingsvariabelen en verwijs ernaar met behulp van site-instellingen.

Example

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

EnvironmentVariable

Leest de waarde van een omgevingsvariabele.

Example

Server.EnvironmentVariable.get("SITEPATH");

Website

Hier vindt u informatie over de huidige websiterecord in Dataverse.

Example

Server.Website.adx_primarydomain;

User

Hier vindt u details van de aangemelde gebruiker. Retourneert null indien anoniem.

Example

Server.User.fullname;

Dataverse

Met Server.Connector.Dataverse het object kunt u CRUD-bewerkingen uitvoeren op Dataverse-tabellen en aangepaste API's aanroepen.

Note

  • Wanneer u verwijst naar Dataverse-tabellen in uw code, moet u bijvoorbeeld EntitySetName gebruiken om toegang te krijgen tot de account tabel. De codesyntaxis gebruikt de EntitySetName van accounts.

CreateRecord

Nieuwe record maken.

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

Example

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

Record ophalen

Hiermee haalt u één record op id op.

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)

Example

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

RetrieveMultipleRecords

Haalt een verzameling records op.

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

Example

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

Verslag bijwerken

Hiermee wordt een bestaande record bijgewerkt op id.

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

Example

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

Verwijderen Record

Hiermee verwijdert u een record op id.

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

Example

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

InvokeCustomApi

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

Een afhankelijke functie aanroepen:

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

Een afhankelijke actie aanroepen:

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

Een niet-gebonden actie aanroepen:

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

Voorbeeld: respons

{
    "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

Gebruik de logger om diagnostische berichten te schrijven die kunnen worden weergegeven in de DevTools-extensie.

Voorbeeld:

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

Context

Biedt metagegevens over de huidige aanvraag, waaronder queryparameters, headers en hoofdtekst.

Eigenschappen

Naam Beschrijving
Activiteit-ID Unieke aanvraag-id
Body Hoofdtekst van onbewerkte aanvraag
FunctieNaam Naam van aangeroepen functie
Headers Kopteksten voor aanvraag
HTTP-methode HTTP-methode
QueryParameters Parameters voor zoekreeks
ServerLogicName Naam van de serverlogica
URL URL voor volledige aanvraag

Example

Lees de queryparameter id uit de URL:

Server.Context.QueryParameters['id'];

Volgende stap

Interactie met Dataverse-tabellen met behulp van serverlogica

Overzicht van serverlogica
Serverlogica ontwerpen