Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
accounttabel. De codesyntaxis gebruikt de EntitySetName vanaccounts.
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