Annulation de création d'observation identique
Manu
-
cengiz -
cengiz -
Bonjour,
Voilà dans mon code je voudrais pouvoir annuler la création de mon observation si mon tempDate se retrouve être identique à la celle déjà crée je ne trouve pas comment remplir la partie de mon code ou se situe le commentaire // Arrêter la création ?
Merci à vous !!
Voilà dans mon code je voudrais pouvoir annuler la création de mon observation si mon tempDate se retrouve être identique à la celle déjà crée je ne trouve pas comment remplir la partie de mon code ou se situe le commentaire // Arrêter la création ?
Merci à vous !!
using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; namespace Plugins { public class ObservationOnCreate : IPlugin { public object End { get; private set; } public void Execute(IServiceProvider serviceProvider) { // Obtain the organization service reference. IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); // Check InputParameters if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { try { // Obtain the target entity from the input parameters. Entity entity = (Entity)context.InputParameters["Target"]; //Convert timestamp for datetime. string tempDate = entity.GetAttributeValue<string>("mso_tempdate"); int ts = Int32.Parse(tempDate); DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(ts).ToLocalTime(); string formattedDate = dt.ToString("dd-MM-yyyy"); entity["msemr_effectiveend"] = dt; QueryExpression query = new QueryExpression(entity.LogicalName); query.ColumnSet.AddColumn("mso_tempdate"); query.Criteria.AddCondition("mso_tempdate", ConditionOperator.Equal, "mso_tempdate"); EntityCollection variables = service.RetrieveMultiple(query); if (variables != null && variables.Entities.Count > 0) { Entity observationExistante = variables.Entities.FirstOrDefault(); } //Comparer le resultat (de la recherche) avec "tempdate" if (entity.GetAttributeValue<string>("mso_tempdate") == tempDate) { //Arreter la creation } // Get attributeValue to create decimal int tempValue = entity.GetAttributeValue<int>("mso_tempvalue"); int unit = Math.Abs(entity.GetAttributeValue<int>("mso_tempunit")); string baseValue = tempValue.ToString().Substring(0, unit-1); string decimalValue = tempValue.ToString().Substring(unit - 1, 2); string finalValue = baseValue + "." + decimalValue; entity["msemr_valuetypequantityvalue"] = decimal.Parse(finalValue, CultureInfo.InvariantCulture); } catch (Exception ex) { throw new InvalidPluginExecutionException("An error occured in the plugin:", ex); } } } } }
A voir également:
- Annulation de création d'observation identique
- Creation de compte google - Guide
- Creation de site web - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Creation compte vinted - Guide
1 réponse
Bonjour de cette façon tu c'est fonctionnel , avec la condition du poids et de la date
CORDIALEMENT ? CENGIZ
Tu peux retirer cette partie :
CORDIALEMENT ? CENGIZ
int tempValue = entity.GetAttributeValue<int>("mso_tempvalue");
QueryExpression query = new QueryExpression(entity.LogicalName);
query.ColumnSet.AddColumns("mso_tempdate", "mso_tempvalue");
query.Criteria.AddCondition("mso_tempdate", ConditionOperator.Equal, tempDate);
query.Criteria.AddCondition("mso_tempvalue", ConditionOperator.Equal, tempValue);
EntityCollection observations = service.RetrieveMultiple(query);
if (observations.Entities.Count > 0)
{
throw new Exception();
}
Tu peux retirer cette partie :
if (variables != null && variables.Entities.Count > 0)
{
Entity observationExistante = variables.Entities.FirstOrDefault();
}
//Comparer le resultat (de la recherche) avec "tempdate"
if (entity.GetAttributeValue<string>("mso_tempdate") == tempDate)
{
//Arreter la creation