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.
Dataverse fournit un ensemble de paramètres optionnels ou de valeurs d’en-tête de demande qu’un développeur d’une application cliente peut utiliser pour modifier le comportement de demandes individuelles. Cet article décrit les valeurs de paramètre et les en-têtes de demande que vous pouvez utiliser pour obtenir les comportements dont vous avez besoin.
Note
Cet article présente ces paramètres mais ne les explique pas en profondeur. Suivez les liens pour plus d’informations afin de bien comprendre les scénarios d’utilisation de ces paramètres.
Utilisation
La manière dont vous utilisez ces paramètres facultatifs varie selon que vous utilisez le kit de développement logiciel (SDK) Dataverse pour .NET ou l’API Web.
Habituellement, vous ajouterez le paramètre à la collection OrganizationRequest.Parameters de la classe de demande nommée.
Note
Vous ne pouvez pas spécifier ces paramètres à l’aide des sept méthodes de raccourci exposées avec IOrganizationService. Vous devez utiliser la classe de requête nommée avec la méthode IOrganizationService.Execute.
Une exception est lors de la définition du paramètre partitionid. Le paramètre partitionid est défini en tant qu’attribut de l’instance d’entité. Plus d’informations : Effectuer une opération de données avec la partition spécifiée
Pour plus d′informations :
- Utiliser les messages avec le SDK pour .NET
- Voir les exemples suivants
Associer un composant de solution à une solution
Lorsque vous effectuez des opérations de données sur un composant de solution, vous pouvez l’associer à une solution en spécifiant le nom unique de la solution avec le paramètre SolutionUniqueName.
Vous pouvez utiliser ce paramètre avec ces messages :
AddPrivilegesRole-
Create(POST) -
Delete(SUPPRIMER) MakeAvailableToOrganizationTemplate-
Update(PATCH)
Les exemples suivants créent un composant de solution de ressource Web et l’ajoutent à la solution avec le nom unique ExampleSolution.
static void CreateWebResourceInSolution(IOrganizationService service)
{
Entity webResource = new("webresource");
webResource["displayname"] = "Simple HTML web resource";
webResource["content"] = "PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxib2R5PgogICAgPGgxPkhlbGxvIFdvcmxkPC9oMT4KICA8L2JvZHk+CjwvaHRtbD4=";
webResource["webresourcetype"] = new OptionSetValue(1);
webResource["name"] = "sample_SimpleHTMLWebResource.htm";
webResource["description"] = "An example HTML web resource";
CreateRequest request = new();
request.Target = webResource;
request["SolutionUniqueName"] = "ExampleSolution";
service.Execute(request);
}
Pour plus d′informations :
Pour plus d′informations :
- Créez une table personnalisée à l’aide du code
- Créer et mettre à jour les définitions de table à l’aide de l’API Web
Supprimer la détection des doublons
Si vous souhaitez que Dataverse génère une erreur lorsqu’un enregistrement que vous créez est déterminé comme un doublon, ou lorsque vous mettez à jour un enregistrement existant de telle sorte que les règles de détection des doublons seront évaluées pour un autre enregistrement, vous devez créer ou mettre à jour la ligne via le paramètre SuppressDuplicateDetection avec une valeur définie sur false.
Les exemples suivants renvoient une erreur lorsque les conditions suivantes sont définies sur true :
- Détection des doublons est activé pour l’environnement lorsqu’une ligne est créée ou mise à jour.
- La table
accounta la détection des doublons activée - Une règle détection des doublons est publiée qui vérifie si la valeur du
namedu compte correspond exactement à une ligne existante - Il existe un compte existant avec le nom
Sample Account.
static void DemonstrateSuppressDuplicateDetection(IOrganizationService service)
{
Entity account = new("account");
account["name"] = "Sample Account";
CreateRequest request = new()
{
Target = account
};
request.Parameters.Add("SuppressDuplicateDetection", false);
try
{
service.Execute(request);
}
catch (FaultException<OrganizationServiceFault> ex)
{
throw ex.Detail.ErrorCode switch
{
-2147220685 => new InvalidOperationException(ex.Detail.Message),
_ => ex,
};
}
}
Pour plus d′informations :
- Détecter les données en double à l’aide du SDK pour .NET
- Détecter les données en double à l’aide de l’API Web
Ajouter une variable partagée au contexte d’exécution du plug-in
Utilisez le paramètre tag pour inclure une valeur de variable partagée accessible dans un plug-in. Ces informations supplémentaires permettent à un plug-in d’appliquer une logique qui dépend de l’application cliente.
Note
Ce paramètre est destiné aux applications clientes pour pouvoir définir n’importe quelle valeur qu’elles souhaitent. Aucune fonctionnalité Microsoft ne devrait exiger que vous définissiez une valeur spécifique dans le code de votre application cliente pour activer différents comportements.
Pour accéder à la valeur d’un plug-in, utilisez la collection IExecutionContext.SharedVariables
if (context.SharedVariables.ContainsKey("tag")){
string tagValue = context.SharedVariables["tag"];
}
Les exemples suivants transmettent cette valeur : A string value lors de la création d’un enregistrement de compte.
static void DemonstrateTag(IOrganizationService service)
{
Entity account = new("account");
account["name"] = "Sample Account";
CreateRequest request = new()
{
Target = account
};
request.Parameters.Add("tag", "A string value");
service.Execute(request);
}
Informations complémentaires : Variables partagées
Effectuer une opération de données avec la partition spécifiée
Lorsque vous utilisez des tables élastiques avec une stratégie de partitionnement, vous pouvez transmettre une valeur de chaîne unique avec le paramètre partitionid pour accéder aux données de tables non relationnelles dans une partition de stockage.
Les exemples suivants utilisent la valeur partitionid de deviceId lors de la récupération d’un enregistrement contoso_sensordata.
private static Entity RetrieveRecord(
IOrganizationService service,
Guid contosoSensorDataId,
string deviceId,
string sessionToken)
{
EntityReference entityReference = new("contoso_sensordata", contosoSensorDataId);
RetrieveRequest request = new()
{
ColumnSet = new ColumnSet("contoso_value"),
Target = entityReference,
["partitionId"] = deviceId, //To identify the record
["SessionToken"] = sessionToken //Pass the session token for strong consistency
};
var response = (RetrieveResponse)service.Execute(request);
return response.Entity;
}
Alternativement, vous pouvez utiliser la valeur partitionid en utilisant le style de clé secondaire.
- En savoir plus sur l’utilisation des clés secondaires avec les tables élastiques
- En savoir plus sur la spécification d’un partitionid
Contourner la logique Dataverse personnalisée
La logique synchrone doit être appliquée pendant la transaction et peut avoir un impact significatif sur les performances des opérations individuelles. Dans le cas des opérations en bloc, le temps supplémentaire consacré à ces opérations individuelles peut augmenter le temps nécessaire. Utilisez le paramètre BypassBusinessLogicExecution lorsque vous souhaitez améliorer les performances lors de l’exécution d’opérations de données en masse.
Important
L’utilisateur appelant doit avoir le privilège prvBypassCustomBusinessLogic.
L’exemple suivant définit le paramètre facultatif BypassBusinessLogicExecution à la fois pour la logique personnalisée synchrone et asynchrone lors de la création d’un nouvel enregistrement de compte à l’aide de la classe CreateRequest du SDK pour .NET.
static void DemonstrateBypassBusinessLogicExecution(IOrganizationService service)
{
Entity account = new("account");
account["name"] = "Sample Account";
CreateRequest request = new()
{
Target = account
};
request.Parameters.Add("BypassBusinessLogicExecution", "CustomSync,CustomAsync");
service.Execute(request);
}
En savoir plus sur les façons de contourner la logique Dataverse personnalisée
Contourner le flux Power Automate
Lorsque des opérations de données en bloc se produisent et déclenchent des flux, Dataverse crée des tâches système pour exécuter les flux. Lorsque le nombre de tâches système est important, cela peut entraîner des problèmes de performances pour le système. Si des problèmes de performances se produisent, vous pouvez choisir de contourner le déclenchement des flux à l’aide du paramètre facultatif SuppressCallbackRegistrationExpanderJob.
La table CallbackRegistration gère les déclencheurs de flux, et une opération interne appelée expander appelle les déclencheurs de flux enregistrés.
Note
Lorsque cette option est utilisée, les propriétaires de flux ne reçoivent pas de notification indiquant que leur logique de flux a été contournée.
static void DemonstrateSuppressCallbackRegistrationExpanderJob(IOrganizationService service)
{
Entity account = new("account");
account["name"] = "Sample Account";
CreateRequest request = new()
{
Target = account
};
request.Parameters.Add("SuppressCallbackRegistrationExpanderJob", true);
service.Execute(request);
}
Plus d’informations : Contourner les flux Power Automate
Retourner des données non masquées
Lorsqu’une colonne est configurée pour utiliser la fonctionnalité d’évaluation des règles de masquage, vous pouvez utiliser le paramètre facultatif UnMaskedData pour demander que la valeur non masquée soit renvoyée.
RetrieveMultipleRequest request = new()
{
Query = query,
["UnMaskedData"] = true
};
var response = (RetrieveMultipleResponse)service.Execute(request);
En savoir plus sur la récupération des données non masquées
Voir aussi
Utiliser les messages avec le SDK pour .NET
Composer des demandes HTTP et traiter les erreurs : autres en-têtes
Contourner la logique métier personnalisée