Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
accounttabela, a sintaxe de código usa o EntitySetName deaccounts.
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