Objetos de servidor

A lógica do servidor fornece objetos internos no namespace do servidor. Esses objetos simplificam o desenvolvimento permitindo que você registre mensagens, chame serviços externos, trabalhe com o Dataverse ou acesse detalhes da solicitação.

Cliente HTTP

Use o cliente HTTP para se integrar aos serviços externos enviando solicitações HTTP.

Note

Atualmente, a lógica do servidor dá suporte apenas application/jsona text/html tipos de conteúdo e application/x-www-form-urlencoded a tipos de conteúdo no corpo da solicitação.

Exemplos

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

EXCLUIR HTTP

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

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

Exemplo: Resposta

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

Permite ler valores de configuração de site para o site atual.

Note

Não armazene segredos (como chaves de API ou credenciais) diretamente na lógica do servidor. Em vez disso, armazene-os com segurança em Azure Key Vault, origem por meio de variáveis de ambiente e referenciá-los usando configurações de site.

Example

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

EnvironmentVariable

Lê o valor de uma variável de ambiente.

Example

Server.EnvironmentVariable.get("SITEPATH");

Site

Fornece detalhes do registro atual do site no Dataverse.

Example

Server.Website.adx_primarydomain;

Usuário

Fornece detalhes do usuário conectado. Retorna nulo se anônimo.

Example

Server.User.fullname;

Dataverse

O Server.Connector.Dataverse objeto permite que você execute operações CRUD em tabelas do Dataverse e invoque APIs personalizadas.

Note

  • Ao fazer referência a tabelas do Dataverse em seu código, você precisa usar o EntitySetName, por exemplo, para acessar a account tabela, a sintaxe de código usa o EntitySetName de accounts.

CriarRegistro

Crie um novo registro.

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\"}");

Recuperar Registro

Recupera um único registro por 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)

Example

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

RetrieveMultipleRecords

Recupera uma coleção de registros.

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

Registro de atualização

Atualiza um registro existente por 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\" }");

ExcluirRegistro

Exclui um registro por 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) 

Invocar uma função associada:

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

Invocar uma ação associada:

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

Invoque uma ação não associada:

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

Exemplo: Resposta

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

Use o agente para gravar mensagens de diagnóstico que podem ser exibidas na extensão DevTools.

Exemplo:

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

Contexto

Fornece metadados sobre a solicitação atual, incluindo parâmetros de consulta, cabeçalhos e corpo.

Properties

Name Description
Id da Atividade ID de solicitação exclusiva
Corpo Corpo da solicitação bruta
** NomeDaFunção Nome da função invocada
Headers Cabeçalhos de solicitação
Método HTTP método HTTP
QueryParameters Parâmetros de string de consulta
ServerLogicName Nome da lógica do servidor
URL URL de solicitação completa

Example

Leia o parâmetro id de consulta da URL:

Server.Context.QueryParameters['id'];

Próxima etapa

Como interagir com tabelas do Dataverse usando a lógica do servidor

Visão geral da lógica do servidor
Lógica do servidor Author