Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La logique serveur fournit des objets intégrés sous l’espace de noms du serveur. Ces objets simplifient le développement en vous permettant de consigner des messages, d’appeler des services externes, d’utiliser Dataverse ou d’accéder aux détails de la demande.
HttpClient
Utilisez le client HTTP pour l’intégrer à des services externes en envoyant des requêtes HTTP.
Note
Actuellement, la logique serveur prend uniquement application/jsonen charge les text/html types de application/x-www-form-urlencoded contenu dans le corps de la requête.
Exemples
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);
CORRECTIF 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);
HTTP DELETE
let url = "https://contoso.com/objects/6";
let header = { contentType: "application/json" };
let response = await Server.Connector.HttpClient.DeleteAsync(url, header);
Exemple : réponse
{
"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
Vous permet de lire les valeurs des paramètres de site pour le site web actuel.
Note
Ne stockez pas les secrets (comme les clés API ou les informations d’identification) directement dans la logique du serveur. Au lieu de cela, stockez-les en toute sécurité dans Azure Key Vault, sourcez-les via des variables d’environnement et référencez-les à l’aide des paramètres de site.
Example
Server.SiteSetting.Get("Search/Enabled");
EnvironmentVariable
Lit la valeur d’une variable d’environnement.
Example
Server.EnvironmentVariable.get("SITEPATH");
Website
Fournit des détails sur l’enregistrement de site web actuel dans Dataverse.
Example
Server.Website.adx_primarydomain;
Utilisateur
Fournit des détails sur l’utilisateur connecté. Retourne la valeur Null si elle est anonyme.
Example
Server.User.fullname;
Dataverse
L’objet Server.Connector.Dataverse vous permet d’effectuer des opérations CRUD sur des tables Dataverse et d’appeler des API personnalisées.
Note
- Lorsque vous faites référence à des tables Dataverse dans votre code, vous devez utiliser EntitySetName, par exemple, pour accéder à la
accounttable, la syntaxe du code utilise EntitySetName deaccounts.
CreateRecord
Créez un enregistrement.
Server.Connector.Dataverse.CreateRecord(string entitySetName, string payload)
Exemple
Server.Connector.Dataverse.CreateRecord("accounts", "{\"name\": \"Contoso Ltd.\", \"telephone1\": \"555-555-0100\", \"websiteurl\": \"https://contoso.com\"}");
RécupérerEnregistrement
Récupère un enregistrement unique par 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
Récupère un ensemble d’enregistrements.
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");
Mise à jourEnregistrement
Met à jour un enregistrement existant par 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\" }");
DeleteRecord
Supprime un enregistrement par 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)
Appeler une fonction liée :
Server.Connector.Dataverse.InvokeCustomApi("get", "accounts(00000000-0000-0000-0000-000000000001)/Microsoft.Dynamics.CRM.new_CustomBoundFunction");
Appelez une action liée :
Server.Connector.Dataverse.InvokeCustomApi("post", "accounts(00000000-0000-0000-0000-000000000001)/Microsoft.Dynamics.CRM.new_CustomBoundAction", "{ \"parameter1\": \"value1\" }");
Appelez une action non liée :
Server.Connector.Dataverse.InvokeCustomApi("post", "new_Action", "{ \"parameter1\": \"value1\" }");
Exemple : réponse
{
"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
Utilisez l’enregistreur d’événements pour écrire des messages de diagnostic qui peuvent être affichés dans l’extension DevTools.
Exemple :
Server.Logger.Log("Information message");
Server.Logger.Warn("Warning message");
Server.Logger.Error("Error message");
Contexte
Fournit des métadonnées sur la requête actuelle, notamment les paramètres de requête, les en-têtes et le corps.
Propriétés
| Nom | Description |
|---|---|
| Id d'activité | ID de requête unique |
| Corps | Corps de la requête brute |
| FunctionName | Nom de la fonction appelée |
| En-têtes | En-têtes de demande |
| Méthode HTTP | Méthode HTTP |
| QueryParameters | Paramètres de chaîne de requête |
| ServerLogicName | Nom de la logique du serveur |
| URL | URL de requête complète |
Example
Lire le paramètre id de requête à partir de l’URL :
Server.Context.QueryParameters['id'];
Étape suivante
Comment interagir avec des tables Dataverse à l’aide de la logique serveur
Informations associées
Vue d’ensemble de la logique serveur
Écrire une logique de serveur