Événement
Championnats du monde Power BI DataViz
14 févr., 16 h - 31 mars, 16 h
Avec 4 chances d’entrer, vous pourriez gagner un package de conférence et le rendre à la Live Grand Finale à Las Vegas
En savoir plusCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
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 de manière approfondie. Veuillez suivre les liens pour plus d’informations afin de bien comprendre les scénarios d’utilisation de ces paramètres.
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 ajoutez 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 7 méthodes de raccourci exposées avec le IOrganizationService. Vous devez utiliser la classe de requête nommée avec la méthode IOrganizationService.Execute.
Exception : lors de la définition de partitionid
, ceci est défini comme un 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 :
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
(PUBLICATION)Delete
(SUPPRESSION)MakeAvailableToOrganizationTemplate
Update
(CORRECTIF)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 :
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 :
account
a la détection des doublons activéename
du compte correspond exactement à une ligne existante 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 :
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
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 table 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.
La logique synchrone doit être appliquée pendant la transaction et peut avoir un impact significatif sur les performances des opérations individuelles. Lors de l’exécution d’opérations en bloc, le temps supplémentaire pour 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
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 très élevé, cela peut entraîner des problèmes de performances pour le système. Si cela se produit, vous pouvez choisir de contourner le déclenchement des flux en utilisant le paramètre optionnel 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
Utilisez 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
Note
Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)
Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).
Événement
Championnats du monde Power BI DataViz
14 févr., 16 h - 31 mars, 16 h
Avec 4 chances d’entrer, vous pourriez gagner un package de conférence et le rendre à la Live Grand Finale à Las Vegas
En savoir plusFormation
Parcours d’apprentissage
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Certification
Implémentez et étendez les applications de finance e d’opérations dans Microsoft Dynamics 365.
Documentation
Contourner la logique Dataverse personnalisée - Power Apps
Apportez des modifications de données qui contournent la logique Dataverse personnalisée.
Utiliser des messages avec le SDK pour .NET (Microsoft Dataverse) - Power Apps
Comprendre comment les messages sont utilisés pour appeler des opérations à l’aide du SDK pour .NET.
Infrastructure d′événements (Microsoft Dataverse) - Power Apps
Découvrez l’infrastructure d’événements et son lien avec la transaction de base de données.