Objek pelayan

Logik pelayan menyediakan objek terbina dalam di bawah ruang nama pelayan. Objek ini memudahkan pembangunan dengan membenarkan anda log mesej, memanggil perkhidmatan luaran, bekerja dengan Dataverse atau mengakses butiran permintaan.

Pelanggan Http

Gunakan klien HTTP untuk disepadukan dengan perkhidmatan luaran dengan menghantar permintaan HTTP.

Nota

Pada masa ini logik pelayan hanya application/jsonmenyokong , text/html dan application/x-www-form-urlencoded jenis kandungan dalam badan permintaan.

Contoh

HTTP DAPATKAN

let url = "https://contoso.com/objects";
let header = { client_id: "00001111-aaaa-2222-bbbb-3333cccc4444" };

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

CATATAN HTTP

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

MELETAKKAN HTTP

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

TAMPALAN HTTP

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

HAPUS HTTP

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

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

Contoh: 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"
    }
}

Tetapan Laman

Membolehkan anda membaca nilai tetapan laman web untuk laman web semasa.

Nota

Jangan simpan rahsia (seperti kunci API atau kelayakan) secara langsung dalam logik pelayan. Sebaliknya, simpan mereka dengan selamat dalam Azure Key Vault, sumberkannya melalui pembolehubah persekitaran dan rujuknya menggunakan seting laman.

Sebagai contoh

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

Persekitaran Pembolehubah

Membaca nilai pembolehubah persekitaran.

Sebagai contoh

Server.EnvironmentVariable.get("SITEPATH");

Laman Web

Menyediakan butiran rekod laman web semasa dalam Dataverse.

Sebagai contoh

Server.Website.adx_primarydomain;

User

Memberikan butiran pengguna yang dilog masuk. Mengembalikan null jika tanpa nama.

Sebagai contoh

Server.User.fullname;

Dataverse

Objek ini Server.Connector.Dataverse membolehkan anda melaksanakan operasi CRUD pada jadual Dataverse dan memanggil API tersuai.

Nota

  • Apabila merujuk kepada jadual Dataverse dalam kod anda, anda perlu menggunakan EntitySetName, contohnya, untuk mengakses account jadual, sintaks kod menggunakan EntitySetName daripada accounts.

Cipta Rekod

Buat rekod baharu.

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

Contoh

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

Dapatkan Rekod

Mendapatkan semula satu rekod mengikut 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)

Sebagai contoh

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

Dapatkan Pelbagai Rekod

Mendapatkan koleksi rekod.

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

Sebagai contoh

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

Rekod kemas kini

Mengemas kini rekod sedia ada mengikut ID.

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

Sebagai contoh

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

PadamRekod

Memadamkan rekod mengikut ID.

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

Sebagai contoh

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

InvokeCustomApi

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

Panggil fungsi terikat:

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

Panggil tindakan terikat:

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

Panggil tindakan tidak terikat:

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

Contoh: 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

Gunakan logger untuk menulis mesej diagnostik yang boleh dilihat dalam sambungan DevTools.

Contoh:

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

Konteks

Menyediakan metadata tentang permintaan semasa, termasuk parameter pertanyaan, pengepala dan isi.

Sifat

Nama Perihalan
IdAktiviti ID permintaan unik
Isi Badan permintaan mentah
Nama Fungsi Nama fungsi yang dipanggil
Pengepala Minta pengepala
Kaedah Http kaedah HTTP
Parameter Pertanyaan Parameter rentetan pertanyaan
Nama Logik Pelayan Nama logik pelayan
Url URL permintaan penuh

Sebagai contoh

Baca parameter id pertanyaan daripada URL:

Server.Context.QueryParameters['id'];

Langkah seterusnya

Cara berinteraksi dengan jadual Dataverse menggunakan logik pelayan

Gambaran keseluruhan logik pelayan
Logik pelayan pengarang