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 site web - Guide
- Creation compte gmail - Guide
- Creation de compte google - 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