Base de connaissances de Case IQ

Comment pouvons-nous aider ?

Langage d'expression Case IQ

Vous pouvez programmer l'application Case IQ pour qu'elle remplisse automatiquement certains champs de formulaire en évaluant une « expression », qui est une représentation interprétable par ordinateur utilisée pour accéder aux données du système à l'aide d'opérateurs arithmétiques, relationnels et logiques. L'application évaluera l'expression pour déterminer la valeur à remplir dans le champ. Un champ défini par une expression au lieu d’une saisie directe de l’utilisateur est appelé « champ calculé ». Vous pouvez créer des champs calculés à l'aide du Générateur de formulaires (voir Utiliser le Générateur de formulaires) et en ajoutant une règle « Définir la valeur du champ » (voir Ajouter une règle).

Si vous choisissez de créer un champ calculé, une zone de texte « expression » s'affichera, dans laquelle vous pourrez indiquer au système comment calculer la valeur du champ à l'aide du langage d'expression Case IQ (ISEL). ISEL est basé sur une implémentation Node.js du langage d'expression JavaScript (JEXL). Cet article couvre toutes les bases d' ISEL afin que vous puissiez commencer à écrire des expressions dans Case IQ, notamment les éléments suivants :

  • Les conventions linguistiques de base et la syntaxe de la version de JEXL sur laquelle ISEL est basé.
  • Les fonctions uniques disponibles dans ISEL.
  • Un glossaire d'exemples ISEL, que vous pouvez copier à partir de ce document et coller dans l'application.

Vous n'aurez pas besoin d'installer la bibliothèque JEXL ou ses dépendances pour commencer ! Le champ d'expression Case IQ est un bac à sable, ou une machine virtuelle en ligne isolée, dans laquelle vous pouvez commencer immédiatement à saisir des expressions.

Type de données des champs calculés sur les formulaires

Lorsque vous ajoutez un champ calculé à une présentation de formulaire (voir Utilisateur du générateur de formulaire), réfléchissez à la manière dont vous souhaitez que le champ soit utilisé dans l'application lors du choix de son type de données, par exemple une zone de texte, une date, un nombre, etc. Pensez à la façon dont un utilisateur s'attendrait à voir les informations du champ calculé présentées ou formatées dans l'application. Par exemple, vous pouvez utiliser un champ de case à cocher pour les expressions qui renvoient un résultat « Oui » ou « Non ». Cependant, il serait plus difficile d'exécuter une recherche de dossiers basée sur la valeur d'une case à cocher, car vous devrez exécuter une recherche avancée (voir Recherche dans Case IQ).

 

Cas d'utilisation

Nous avons rassemblé des expressions pour les situations courantes suivantes dans lesquelles vous souhaiterez peut-être que le système remplisse automatiquement la valeur d'un champ. Si vous voyez une expression applicable à votre situation, copiez le texte de l'expression de cet article et collez-le dans le champ « expression » de Case IQ. Votre application aura probablement des noms de champs différents, alors assurez-vous de remplacer les noms de champs dans l'expression en fonction de votre application. Nous avons créé ces exemples d'expressions en suivant les conventions ISEL décrites dans les onglets « Langage et syntaxe d'expression », « Fonctions ISEL » et « Objets contextuels » de cet article.

Tous les exemples d'expressions sont créés pour le formulaire de dossier, à l'exception de « Calculer l'âge d'une partie ». Si vous souhaitez ajouter un champ calculé à un autre formulaire, remplacez l'objet par le nom du formulaire.


La date d'aujourd'hui

Remplissez un champ avec la date actuelle à laquelle le dossier est enregistré.

Définir le champ

Nom Taper Valeurs
Aujourd'hui Date N / A.

Champ Expression pour aujourd’hui :

if(isEmpty(this.value)) then now else this.value

Calculer l'âge d'une fête

Calculez l'âge d'une personne en fonction de sa date de naissance indiquée sur le formulaire de fête. Dans cet exemple, le champ « Âge » a été ajouté au formulaire de partie, donc la partie est utilisée comme objet dans l'expression.

Champs de saisie

Nom Taper Valeur
Date de naissance Date N/A, champ système.

Définir le champ

Nom Taper Valeurs
Âge Entier N / A.

Champ Expression pour l’âge :

yearsBetween(now, party.dateOfBirth)

Pour cent

Recherchez le pourcentage entre les valeurs de deux champs de dossier.

Champs de saisie

Nom Taper Valeur
Champ 1 Entier, argent ou nombre N/A, entrée de l'utilisateur.
Champ 2 Entier, argent ou nombre N/A, entrée de l'utilisateur.

Définir le champ

Nom Taper Valeurs
Pour cent Nombre N / A.

Expression pour le champ Pourcentage :

divide(case.field1, case.field2)*100

Catégorisation

Catégorisez un dossier en fonction des réponses à plusieurs questions radio ou cases à cocher posées à l'utilisateur soumettant le dossier. Par la suite, vous pouvez utiliser la catégorie calculée comme critère d'affichage pour les workflows, les étapes du workflow ou d'autres champs de formulaire.

Champs de saisie

Nom Taper Valeur
question 1 Case à cocher N / A.
question 2 Radio ou liste de sélection « Réponse 1 », « Réponse 2 » ou « Réponse 3 ».
question 3 Radio "Oui ou non".
Question 4 Nombre N/A, entrée de l'utilisateur.

Définir le champ

Nom Taper Valeurs
Catégorie Radio, liste de sélection ou zone de texte. « Catégorie A » ou « Catégorie B ».

Champ Expression pour la catégorie :

(
	(case.question1 == true ? 5 : 0) + 
	(case.question2 == "Answer 3" ? 2 : (case.question2 == "Answer 2" ? 1 : 0)) + 
	(case.question3 == "Yes" ? 1 : 0 ) + 
	case.question4
) > 6 ? "Category A" : "Category B"

Priorité par coût

Calculez la priorité d'un dossier en fonction de son coût total. La « Priorité » sera définie sur « Élevée » lorsque le « Coût total » est supérieur ou égal à 1 000 $, « Moyenne » lorsque le « Coût total » est supérieur ou égal à 500 $ et inférieur ou égal à 1 000 $, et « Faible » lorsque le « Coût total » est inférieur ou égal à 500 $. Cela peut être combiné avec des règles et des actions pour définir des indicateurs spécifiques en fonction du champ calculé.

Champs de saisie

Nom Taper Valeur
Coût total Argent N/A, entrée de l'utilisateur.

Définir le champ

Nom Taper Valeurs
Priorité Radio, liste de sélection ou zone de texte. « Élevé », « Moyen » ou « Faible ».

Champ Expression pour la priorité :

case.totalCost >= 1000.00 ? 
	'High' : 
	(case.totalCost >= 500 ? 'Medium' : 
	(case.totalCost <= 499.00 ? 'Low' : '')
	)

Priorité par type de dossier

Calculez la priorité en fonction des propriétés du dossier, telles que le « type de dossier ». Dans cet exemple, la « Priorité » sera définie sur « Élevée » lorsque le type de dossier est « Type de dossier 1 », « Moyenne » lorsque le type de dossier est « Type de dossier 2 » et « Faible » lorsque le type de dossier est « Type de dossier 3 ». ». Cela peut être combiné avec des règles et des actions pour définir des indicateurs spécifiques en fonction du champ calculé.

Champ de saisie

Nom Taper Valeurs
Type de dossier Liste de sélection « Type de dossier 1 », « Type de dossier 2 » ou « Type de dossier 3 ».

Définir le champ

Nom Taper Valeurs
Priorité Radio, liste de sélection ou zone de texte. « Élevé », « Moyen » ou « Faible ».

Champ Expression pour la priorité :

case.caseType == 'Case Type 1' ? 
	'High' : 
	(case.caseType == 'Case Type 2' ? 'Medium' : 
	(case.caseType == 'Case Type 3' ? 'Low' : '')
	)

L'évaluation des risques

Évaluez le risque en fonction du type de dossier, de la probabilité (1-5), de la conséquence (1-5) et de la définition de l'évaluation du risque. Cette expression est basée sur la matrice d'évaluation des risques de Case IQ.

Champs de saisie

Nom Taper Valeurs
Probabilité Liste de sélection 1, 2, 3, 4, 5.
Conséquence Liste de sélection 1, 2, 3, 4, 5.

Définir les champs

Nom Taper Valeurs
Évaluation des risques Nombre Calculé.
L'évaluation des risques Radio, liste de sélection ou zone de texte. « Extrême », « Élevé », « Moyen » ou « Faible ».

Champ Expression pour l’évaluation du risque :

sum(case.likelihood, case.consequence)

Champ Expression pour l’évaluation des risques :

sum(case.likelihood, case.consequence) <= 6 ? 
	((case.likelihood + case.consequence) < 5 ? "Low" : "Medium") : 
	((case.consequence + case.likelihood) > 7 ? "Extreme" : "High")

Date d'échéance

Calculer la date à laquelle un dossier doit être rendu en ajoutant 15 ou 30 jours ouvrables à la date de création en fonction du « type de dossier ».

Champs de saisie

Nom Taper Valeurs
Date d'enregistrement Date du système N/A, champ système.
Type de dossier Liste de sélection « Type de dossier 1 », « Type de dossier 2 » ou « Type de dossier 3 ».

Définir le champ

Nom Taper Valeurs
Date d'échéance Date Calculé.

Champ Expression pour la date d’échéance :

case.caseType == 'Case Type 1' ? 
	addBusinessDays(case.dateRecorded, 15) : 
	addBusinessDays(case.dateRecorded, 30)

Résumé

Calcul du contenu d'un champ de zone de texte qui inclut la concaténation de chaînes et le formatage de divers autres champs tels que le type de dossier, la date de création, la priorité, les catégories, etc.

Champs de saisie

Nom Taper Valeurs
Type de dossier Liste de sélection N'importe lequel.
Priorité Liste de sélection N'importe lequel.
Catégorie Liste de sélection N'importe lequel.

Définir le champ

Nom Taper Valeurs
Résumé Zone de texte N / A.

Expression pour le champ Résumé :

concat('The Case Type is ' 
	+ case.caseType 
	+ '. The Created Date is ' 
	+ case.dateRecorded 
	+ '. The Case Priority is ' 
	+ case.priority 
	+ '. The Case Category is ' 
	+ case.category 
	+ '.'
)

Totaux

Calculez un champ monétaire dont la valeur est une somme d'autres champs monétaires (c'est-à-dire le montant total facturé ou dû).

Champs de saisie

Nom Taper Valeurs
Paiement 1 Argent N/A, entrée de l'utilisateur.
Paiement 2 Argent N/A, entrée de l'utilisateur.
Paiement 3 Argent N/A, entrée de l'utilisateur.

Définir le champ

Nom Taper Valeurs
Total Argent N / A.

Expression pour le champ Total :

sum(case.payment1, case.payment2, case.payment3)

Rédiger

Rejoindre les informations du dossier dans un champ de zone de texte pour inclure le contenu dans les modèles et la distribution d'e-mails ou de fichiers. Peut inclure des propriétés telles que le nom et l'adresse e-mail du demandeur ou du dernier utilisateur actif et des propriétés de contexte système global telles que « Nom du système » et « Adresse de support ».

Cet exemple utilise uniquement les champs système comme entrées, ce qui signifie que vous n'aurez pas besoin d'ajouter des champs à un formulaire pour les champs de saisie. Il vous suffit d'ajouter le champ que vous souhaitez Case IQ définisse.

Champs de saisie

Nom Taper Valeurs
Numéro de dossier Texte système N/A, champ système.
Date d'enregistrement Date du système N/A, champ système.
État de cas Texte système N/A, champ système.

Définir le champ

Nom Taper Valeurs
Rédiger Zone de texte Calculé.

Champ Expression pour la rédaction :

join([case.caseNumber, "was recorded on", case.recordedDate, "and has status of", case.status], " ") + "."

Format de numéro de dossier dynamique avec type de dossier

Configurez un format de numéro de dossier dynamique en fonction du type de dossier à l'admission. Consultez les détails sur la configuration du format du numéro de dossier et une explication de chaque composant de numéro de dossier dans l’article Format du numéro de dossier. Dans cet exemple, le préfixe du numéro de dossier changera en fonction du champ « Type de dossier ». Cette expression générera des numéros de dossier au format suivant :

CASETYPE-MM-AA-000

  • « CASETYPE » : le système remplira cet élément avec l'un des préfixes suivants, en fonction de la sélection du type de dossier :
    • COMP
    • INV
    • REQUÊTE
    • AUTRE
  • « - » : le caractère que vous saisirez dans le champ « Séparateur » sera utilisé pour séparer chaque composante du numéro de dossier.
  • « MM » : le mois de création du dossier selon le format que vous sélectionnez dans le champ « Format du mois ».
  • « AA » : l'année de création du dossier en utilisant le format que vous sélectionnez dans le champ « Format de l'année ».
  • « 000 » : le nombre de dossiers séquentiels générés par le système en fonction du nombre de dossiers ajoutés à la demande, en comptant à partir de 1. La longueur de la séquence sera déterminée par votre sélection dans le champ « Taille minimale de la séquence ».

Champs de saisie

Nom Taper Valeurs
Type de dossier Liste de sélection « Plainte », « Enquête » ou « Requête ».

Définir le champ

Nom Taper Valeurs
Numéro de dossier Texte système N/A, champ système.

Expression à saisir dans le champ « Expression » de la page Configuration du numéro de dossier :

case.caseType == "Complaint" 
	? "COMP" 
	: (case.caseType == "Investigation" 
		? "INV" 
		: (case.caseType == "Query" 
			? "QUERY" 
			: "OTHER"
		)
	)) 
	+ this.separator 
	+ format(now, this.monthFormat) 
	+ this.separator 
	+ format(now, this.yearFormat) 
	+ this.separator 
	+ padStart(this.sequence, 3, "0")

Format de numéro de dossier dynamique utilisant un champ de date supplémentaire

Configurez un format de numéro de dossier dynamique qui inclut un champ de date supplémentaire défini lors de l'admission. Consultez les détails sur la configuration du format du numéro de dossier et une explication de chaque composant de numéro de dossier dans l’article Format du numéro de dossier. Dans cet exemple, le mois et l'année du numéro de dossier seront définis par un champ de date disponible sur le formulaire d'admission, appelé « Date de réclamation ». Cette expression générera des numéros de dossier au format suivant :

AAAA-MM-000

  • « AAAA » : l'année définie dans le champ « Date de réclamation » lors de l'admission en utilisant le format que vous sélectionnez dans le champ « Format de l'année ».
  • « - » : le caractère que vous saisirez dans le champ « Séparateur » qui servira à séparer chaque composante du numéro de dossier.
  • « MM » : le mois défini dans le champ « Date de réclamation » lors de l'admission en utilisant le format que vous sélectionnez dans le champ « Format du mois ».
  • « 000 » : le nombre de dossiers séquentiels générés par le système en fonction du nombre de dossiers ajoutés à la demande, en comptant à partir de 1. La longueur de la séquence sera déterminée par votre sélection dans le champ « Taille minimale de la séquence ».

Champs de saisie

Nom Taper Valeurs
Date de réclamation Date ou date et heure N/A, entrée de l'utilisateur.

Définir le champ

Nom Taper Valeurs
Numéro de dossier Texte système N/A, champ système.

Expression à saisir dans le champ « Expression » de la page Configuration du numéro de dossier :

format(case.claimDate, this.yearFormat) 
+ this.separator 
+ format(case.claimDate, this.monthFormat) 
+ this.separator 
+ padStart(this.sequence, 3, "0")

Définir la valeur d'un champ statique

Si vous souhaitez configurer un champ dont la valeur peut être définie par le système évaluant une expression, tout en restant modifiable par un utilisateur, vous pouvez utiliser une action de règle « Définir la valeur du champ ». Consultez la section « Définir la valeur du champ » sous l'onglet « Actions » de l'article Ajouter une règle pour plus de détails sur la création d'actions « Définir la valeur du champ ». Cette expression définira la valeur du champ de type de dossier en fonction de la source de l'enregistrement.

Champs de saisie

Nom Taper Valeurs
Source de l'enregistrement Liste de sélection du système "Web", "Externe" ou "E-mail".

Définir le champ

Nom Taper Valeurs
Type de dossier Liste de sélection « Type de dossier 1 », « Type de dossier 2 » ou « Type de dossier 3 ».

Champ Expression pour le type de dossier :

format(case.claimDate, this.yearFormat) 
+ this.separator 
+ format(case.claimDate, this.monthFormat) 
+ this.separator 
+ padStart(this.sequence, 3, "0")

Conserver les données soumises sur le portail dans les champs en lecture seule

Vous pouvez créer des champs de dossier qui seront en lecture seule dans l'application interne pour conserver les données originales soumises par le déclarant via le portail. Configurez un champ en double dans lequel les utilisateurs internes peuvent modifier la réponse saisie dans le champ. Dans cet exemple, les utilisateurs du portail peuvent saisir du texte dans le champ « Détails de l'incident du portail », mais le champ ne sera pas modifiable sur la page du dossier dans l'application interne. Les utilisateurs internes peuvent à la place saisir des informations dans le champ « Détails de l'incident ». Cependant, si un utilisateur du portail ne saisit pas d'informations dans le champ « Détails de l'incident du portail », celui-ci sera renseigné avec le texte « Détails de l'incident ».

Champs de saisie

Nom Taper Valeurs
Détails de l'incident Zone de texte N/A, entrée de l'utilisateur.

Définir le champ

Nom Taper Valeurs
Détails de l'incident du portail Zone de texte Calculé.

Expression pour le champ Détails de l'incident du portail :

case.portalIncidentDetails ? 
	case.portalIncidentDetails : case.incidentDetails

Conserver le type de dossier soumis lors de l'admission dans les champs en lecture seule

Comme dans l'exemple précédent, vous pouvez créer un champ pour conserver le type de dossier sélectionné lors de la soumission initiale du dossier. Le système copiera l'option « Type de dossier » sélectionnée par le déclarant dans le champ « Type de dossier d'admission ». Les utilisateurs internes pourront mettre à jour le champ « Type de dossier » selon leurs besoins, mais le « Type de dossier d'admission » ne pourra pas être modifié.

Champs de saisie

Nom Taper Valeurs
Type de dossier Liste de sélection « Type de dossier 1 », « Type de dossier 2 » ou « Type de dossier 3 ».

Définir le champ

Nom Taper Valeurs
Type de dossier d'admission Zone de texte Calculé.

Champ Expression pour le type de dossier d’admission :

if(isEmpty(this.value)) then case.caseType else this.value
 
 

Langage d'expression et syntaxe

JEXL est un analyseur et évaluateur d'expressions contextuel qui utilise une syntaxe similaire à celle de JavaScript. Comme ISEL est une version simplifiée de JEXL, ce document couvre uniquement les conventions JEXL pertinentes pour ISEL.

Définir le contexte de l'expression ?

Lorsque vous écrivez une expression dans Case IQ, vous n'avez pas besoin de définir le contexte ou le moteur. Entrez simplement votre expression en utilisant les opérateurs et la syntaxe documentés dans ce guide.

 

Si vous souhaitez en savoir plus sur JEXL, consultez lesressources JEXL sur Apache Commons.

Introduction au format d'expression

Les expressions doivent suivre un format spécifique pour que le système comprenne les actions que vous souhaitez qu'il exécute et dans quels champs. Ils peuvent inclure une combinaison des éléments suivants :

Élément d'expression Description
Fonction Indique à Case IQ l'action que vous souhaitez qu'il effectue, comme ajouter, soustraire ou compter. Reportez-vous à la liste des fonctions ISEL que vous pouvez utiliser dans les expressions de l'API ISEL.
Objet

Identifie le conteneur d'informations auquel vous souhaitez faire référence dans l'expression. Les formulaires sont l'objet le plus couramment utilisé dans les expressions ISEL. Écrivez le nom du formulaire où se trouve le champ que vous souhaitez calculer, comme le formulaire de dossier.

N'incluez pas d'espaces entre les noms de formulaires contenant plusieurs mots. Par exemple, si vous souhaitez faire référence à un formulaire appelé « Interview avec la direction », vous saisirez interview avec la direction comme nom d'objet dans votre expression.

Il existe 3 objets supplémentaires que vous pouvez utiliser dans les expressions : now, system et user. Voir plus de détails sur l’utilisation de ces objets, y compris leurs propriétés, dans la section Objets contextuels.

Variable

Indique les informations d'objet spécifiques que vous souhaitez que le système utilise dans l'expression. Dans Case IQ, les variables seront généralement les champs d'un formulaire. Identifiez un champ en saisissant son nom, tel que le champ caseType.

Le nom du champ est le nom système du champ dans l'application. Le système enregistre les noms de champs en casse chameau, où (1) le premier mot est en minuscule, (2) tous les mots suivants commencent par une lettre majuscule et (3) il n'y a pas d'espace entre les mots.

Les balises des champs couramment utilisés dans les expressions sont répertoriées dans l'Annexe A. Pour des champs supplémentaires, consultez l'Annexe B pour connaître les étapes détaillées permettant d'identifier le nom de champ correct.

Comme le système évalue les expressions lorsqu'un formulaire est enregistré, le système ne pourra pas analyser les expressions qui incluent un autre champ calculé en tant que variable dans une expression. Par exemple, vous ne pourrez pas calculer la somme de deux champs calculés dans une expression. Consultez la section Transformer les expressions dans l'onglet Fonctions ISEL de cet article pour plus d'informations sur la façon d'inclure plusieurs fonctions dans une expression.

Valeur ou littéral Un nombre constant ou une chaîne de caractères que vous souhaitez que le système utilise dans l'expression.
Opérateur Indique au système (1) quelle action effectuer ou (2) comment comparer les variables ou les valeurs de l'expression. Consultez la section suivante de ce guide, Opérateurs, pour une liste de tous les opérateurs que vous pouvez utiliser dans les expressions.

Vous pouvez combiner les fonctions et opérateurs répertoriés dans ce guide avec des objets et des variables de votre application pour créer des expressions ISEL. Par exemple, vous pouvez configurer un champ pour qu'il soit automatiquement rempli avec tout montant saisi dans un champ du formulaire de dossier, par exemple le champ « Dépenses totales », plus 15 % de taxe. Pour le champ que vous souhaitez que le système remplisse avec cette somme, vous devez saisir ce qui suit dans la zone de texte « Expression » :

Cette expression indiquerait au système de multiplier le montant du champ « Dépense totale » par 1,15 et de remplir le champ calculé avec le montant qu'il a calculé.

Vous n'êtes pas obligé d'inclure des valeurs statiques dans vos expressions et pouvez choisir de n'utiliser que des variables comme entrées. Par exemple, vous pouvez calculer les dépenses totales d'un dossier en ajoutant deux champs de dossier, appelés « Dépenses en espèces » et « Dépenses par carte de crédit », puis remplir un champ avec la somme de ces montants. Vous entreriez ce qui suit dans la zone de texte « Expression » pour le champ que vous souhaitez que le système remplisse.

Comme ISEL est basé sur JEXL, utilisez la même syntaxe et les mêmes opérateurs que pour écrire des expressions JEXL, qui sont abordées dans cette section du guide. Cependant, ISEL contient des fonctions uniques, qui sont couvertes dans la section suivante de ce guide, API ISEL. Pour toutes les fonctions ISEL, vous pouvez soit utiliser le format décrit dans les sections Fonctions de chaîne, Fonctions mathématiques et Fonctions de date de ce guide, soit transformer vos expressions, afin d'avoir la possibilité d'inclure plusieurs fonctions dans la même ligne, comme détaillé dans Transformation. Expressions.

Aide sur les noms d'objets, de fonctions et de variables

Au fur et à mesure que vous tapez votre expression, Case IQ vous suggérera les objets, fonctions et variables disponibles que vous pouvez utiliser.

Vous ne connaissez pas le nom de l'objet, de la fonction ou de la variable que vous souhaitez utiliser dans votre expression ? Case IQ peut dresser une liste pour vous ! Cliquez sur la zone de texte Expression, puis appuyez sur Ctrl et Espace sur votre clavier et Case IQ affichera une liste de toutes les fonctions et objets que vous pouvez utiliser. Après avoir entré un nom d'objet suivi d'un point, vous pouvez appuyer sur Ctrl et Espace pour extraire une liste de toutes les variables de l'objet.

 

Les opérateurs

Utilisez un symbole d'opérateur dans les expressions pour indiquer au système quelle action effectuer ou comment comparer les variables ou les valeurs de l'expression. Par exemple, vous pouvez effectuer des opérations arithmétiques avec les opérateurs :

Vous pouvez également combiner une « chaîne », ou un objet stockant un texte, avec une variable en utilisant l'opérateur +, comme dans l'exemple ci-dessous :

Le tableau suivant répertorie tous les opérateurs que vous pouvez utiliser pour créer des expressions avec ISEL. Pour la plupart des opérateurs, vous pouvez utiliser soit le symbole, soit le mot ou l'expression anglais dans les expressions.

Type d'opérateur Opération Symbole Mot/expression anglais
Unaire Nier (pas) ! pas
Énoncez la condition d’une expression conditionnelle (voir la section Expressions conditionnelles et opérateurs ternaires ci-dessous). N'est pas applicable si (état)
Incrément (en ajoute un) ++ incrément
Décrémenter (en soustrait un) -- décrémenter
Renvoie le type d'une variable sous forme de chaîne. N'est pas applicable Type de
Binaire Ajouter, concaténer + concaténer
Soustraire - moins
Multiplier * fois
Diviser / diviser
Diviser et étager (diviser et arrondir le quotient à un nombre entier) // N'est pas applicable
Module (trouver le reste après avoir divisé 2 nombres) % module
Le pouvoir de ^ pouf
ET logique && et
OU logique || ou
Convertit une valeur en un type de données ISEL (par exemple chaîne, booléen, valeur numérique). N'est pas applicable comme
Indiquez ce qui doit se produire lorsque la condition est vraie et fausse (voir la section Expressions conditionnelles et opérateurs ternaires ci-dessous). ? [résultat lorsque la condition est vraie] : [résultat lorsque la condition est fausse] then [résultat lorsque la condition est vraie] sinon [résultat lorsque la condition est fausse]
Comparaison Égal == équivaut à
Inégal != pas égal
Plus grand que > N'est pas applicable
Meilleur que ou égal >= N'est pas applicable
Moins que < N'est pas applicable
Inférieur ou égal <= N'est pas applicable
Élément dans un tableau ou une chaîne N'est pas applicable dans

Vous pouvez utiliser l'opérateur in pour vérifier le texte dans une chaîne (par exemple "Green" dans "Derek Greene") ou un élément "tableau", ou un groupe de valeurs (par exemple "Enquête" dans ['Complaint', 'Investigation ', 'Requête'] ou 'Enquête' dans case.arrayField). Cependant, utilisez l'opérateur == lorsque vous recherchez un tableau d' objets, appelé collection (voir la section Collections de ce guide pour en savoir plus).

Expressions conditionnelles et opérateurs ternaires

Vous pouvez utiliser des expressions conditionnelles pour définir deux résultats différents lorsque le système évalue l'expression en fonction de la situation. Les expressions conditionnelles contiennent trois segments dans l'un des formats suivants :

condition ? if_true : if_false

ou

if(condition) then if_true else if_false

Dans le segment de condition, vous saisissez une déclaration qui peut être trouvée vraie ou fausse. Le système vérifiera si l’expression de condition est vraie. Si c'est vrai, le deuxième segment de votre expression sera évalué. Si c'est faux, le système ignorera le deuxième segment et évaluera le troisième segment à la place. Si vous omettez la section if_true de votre expression, le résultat du segment de condition sera renvoyé à la place.

Par exemple, vous pouvez définir automatiquement un champ de dossier avec une priorité « Élevée » si le dossier est défini comme confidentiel et une priorité « Faible » lorsqu'il n'est pas confidentiel. Supposons que vous disposiez d'un champ radio, d'une liste de sélection ou d'une zone de texte appelé « Priorité » sur le formulaire de dossier, vous pouvez créer une action de règle « Définir la valeur du champ » pour le champ « Priorité » et saisir ce qui suit dans la zone de texte « Expression » pour accomplir ceci :

Avec cette expression, le système vérifiera si le dossier a été défini comme confidentiel, selon le premier segment de l'expression. Si tel est le dossier, il fera référence au deuxième segment de l'expression, qui indique au système de définir « Priorité » sur « Élevée ». Lorsque le dossier n'est pas confidentiel, le système s'assurera que la « Priorité » est « Faible ».

Vous pouvez créer des expressions avec plusieurs conditions en imbriquant plusieurs conditions dans une expression conditionnelle ou en utilisant la fonction ifeach. Les expressions conditionnelles imbriquées peuvent renvoyer plus de deux valeurs différentes. Pour imbriquer une condition, saisissez-la dans le segment if_false d'une expression. Voir l'expression conditionnelle imbriquée suivante écrite dans deux formats différents à titre d'exemple :

if(case.caseType equals "Case Type 1") then "High" else 
                                                                                        	if(case.caseType equals "Case Type 2") then "Medium" else 
                                                                                        		if(case.caseType equals "Case Type 3") then "Low" else ""

ou

case.caseType == "Case Type 1" ? "High" : 
                                                                                        	(case.caseType == "Case Type 2" ? "Medium" : 
                                                                                        		(case.caseType == "Case Type 3" ? "Low" : "")
                                                                                        	)

Cette expression imbriquée renvoie « Élevé », « Moyen » ou « Faible » en fonction de l'une des trois valeurs possibles du champ « Type de dossier », qui pourrait être utilisée pour définir un champ prioritaire par « Type de dossier » par exemple.

Vous pouvez utiliser la fonction ifeach pour créer des expressions dans lesquelles plusieurs conditions doivent être vraies pour renvoyer une valeur (voir la section « Fonctions de chaîne » dans l'onglet Fonctions ISEL de cet article pour une explication de chaque argument de fonction). L'exemple de fonction ifeach ci-dessous évalue deux conditions avant de renvoyer une valeur :

ifeach([case.confidential == true, case.caseType == 'Investigation'], 'High Priority', 'Low Priority')

Cette expression renverra « Haute priorité » uniquement lorsque le dossier est à la fois défini comme confidentiel et que son « Type de dossier » est « Enquête ». « Faible priorité » sera renvoyé lorsque le dossier est confidentiel ou que son « Type de dossier » n'est pas « Enquête ».

Types natifs

Les types de données suivants sont intégrés à ISEL.

Les types Exemples
Booléens vrai faux
Cordes "Bonjour "utilisateur"", "Salut !"
Valeurs numériques 6, -7,2, -3,14159
Objets {Bonjour le monde!"}
Tableaux ['Bonjour le monde!']

Groupes

Utilisez des parenthèses, (), pour désigner les groupes et contrôler l'ordre des opérations pour les calculs.

Expression Résultat
(83 + 1) / 2 42
1 < 3 && (4 > 2 || 2 > 4) vrai

Identifiants

Faites référence aux variables de l'objet (c'est-à-dire aux champs du formulaire) en saisissant le nom de l'objet, un point, puis le nom de la variable. Par exemple, case.caseType.

Vous pouvez également faire référence à des valeurs spécifiques d'une variable en utilisant des crochets ([]) autour de la valeur dans l'expression. Entrez le nom de l'objet, un point, le nom de la variable, un crochet ouvert, la valeur de la variable, puis un crochet fermé. Par exemple, case.confidential[true].

Vous pouvez utiliser cette syntaxe pour identifier des valeurs spécifiques dans un tableau, telles qu'une liste de sélection et ses options. Supposons que votre candidature contienne une liste de sélection appelée « Emplacement » avec les options suivantes : « Toronto », « Montréal » et « Vancouver ». Les valeurs d'un tableau sont classées par numéro, en commençant à 0. Le tableau ci-dessous montre comment identifier chaque option de liste de sélection « Emplacement » dans une expression.

Expression Résultat
cas.emplacement[0] Toronto
cas.emplacement[1] Montréal
cas.emplacement[2] Vancouver

Collections

Vous pouvez filtrer n'importe quelle collection dans votre application en entrant une expression de filtre entre crochets et en référençant les propriétés de la collection à l'aide d'un point, c'est-à-dire object.collection[.variable in filter expression], ce qui donnera un tableau des objets pour lesquels l'expression du filtre est vraie. Si vous souhaitez que le résultat soit une variable d'objet unique, entrez la variable après l'expression de filtre : object.collection[.filter expression].variable.

Par exemple, les enregistrements de pièces jointes dans Case IQ contiennent une collection appelée « Fichiers ». La collection « Fichiers » comprend les objets suivants :

name
                                                                                                        sizeBytes
                                                                                                        nameWithoutExtension
                                                                                                        encoding
                                                                                                        mimeType
                                                                                                        objectId
                                                                                                        description

Si vous souhaitez extraire une liste de fichiers joints dépassant une certaine taille, par exemple 30 Ko (ou 30 720 octets), vous devez saisir l'expression suivante :

attachment.files[.sizeBytes > 30720]

Cette expression renverrait un tableau de tous les fichiers joints dépassant 30 720 octets, ce qui signifie que le nom, les octets, etc. de chaque fichier répondant aux critères seraient extraits. Si vous vouliez simplement une liste de leurs noms de fichiers, vous saisiriez plutôt l'expression suivante :

attachment.files[.sizeBytes > 30720].name
 
 

Fonctions ISEL

La plupart des fonctions ISEL sont « indépendantes du type », ce qui signifie qu'elles fonctionneront avec des nombres, des tableaux, des chaînes ou des types booléens. Vous n'avez donc pas besoin de vérifier si le type de fonction correspond au type de valeur que vous saisissez.

Apostrophes dans les chaînes

Le système peut interpréter à tort les apostrophes dans les valeurs de chaîne comme des guillemets simples, ce qui signifie qu'il terminera la chaîne à ce point. Il existe 2 manières différentes d'indiquer que l'apostrophe fait partie de la chaîne :

  1. Alternez les guillemets simples (') et doubles (") dans la chaîne. Par exemple, si vous saisissez « preuve de John » dans une expression, le système comprendra que le guillemet simple est une apostrophe.
  2. Utilisez une barre oblique inverse (\) avant l'apostrophe dans la chaîne. Par exemple, vous pouvez saisir « la preuve de John » dans une expression et le système la reconnaîtra comme une valeur de chaîne.
 

Fonctions de chaîne

Fonction Description
concat(valeur 1, valeur 2,...) Crée un nouveau tableau ou une nouvelle chaîne en concaténant ou en joignant les valeurs ensemble dans l'ordre dans lequel elles sont saisies. Vous pouvez saisir des tableaux, des chaînes ou d'autres objets comme valeurs pour les joindre sous forme de tableau ou de chaîne unique. La valeur renvoyée sera un tableau si au moins une des valeurs saisies est un tableau. Si deux des valeurs saisies sont des chaînes, une chaîne sera renvoyée.
contient (objet, valeur 1, valeur 2, ...) Détermine si l'objet contient value, renvoyant une valeur booléenne. Vous pouvez soit saisir le formulaire sur lequel vous écrivez l'expression, soit un tableau en tant qu'objet. Si plusieurs arguments de valeur sont saisis, la fonction retournera vrai si l'objet a l'une des valeurs et faux si l'objet ne contient aucune des valeurs.
compte(valeur 1, valeur 2, ...) Renvoie la longueur des tableaux ou des chaînes sous forme de nombre. Si plusieurs valeurs sont saisies, la somme de la longueur de chaque valeur sera renvoyée.
aplatir (valeur) Prend un tableau d'objets séparés et les combine en un seul objet tableau.
de (objet 1, objet 2) Renvoie la valeur de l'objet 2 filtrée à partir de l'objet 1 où elles correspondent. l'objet 1 et l'objet 2 peuvent être des objets ou des tableaux. Par exemple, from(['caseType'], case) renverra la valeur actuelle du champ Case Type.
has(objet, champ 1, champ 2...) Détermine si l'objet contient un champ, renvoyant une valeur booléenne. Si plusieurs arguments de champ sont saisis, la fonction retournera vrai si l'objet possède l'un des arguments de champ et faux si l'objet ne contient aucun des arguments de champ.
ifeach([condition 1, condition 2, ...], if_true, if_false) Évalue si chaque condition est vraie ou fausse. Si toutes les conditions sont vraies, le résultat de la fonction sera if_true. Si au moins une des conditions est évaluée comme fausse, le résultat de la fonction sera if_false. Vous pouvez saisir une condition ou un tableau de plusieurs conditions. Par exemple, ifeach([case.confidential == true, case.caseType == 'Investigation'], 'High Priority', 'Low Priority') renverra 'High Priority' lorsque le dossier est défini comme confidentiel et comme dossier d'enquête. taper. Cependant, « Faible priorité » sera renvoyé lorsque le dossier n'est pas défini comme confidentiel ou comme type de dossier d'enquête.
estEmpty(valeur 1, valeur 2, ...) Examine la valeur et détermine si elle est vide. Il retournera vrai si la valeur est un tableau vide, une chaîne, un objet sans propriétés, nul ou non défini. Pour tous les autres scénarios, il renverra false. Si plusieurs valeurs sont saisies, la fonction retournera vrai si toutes les valeurs sont vides et faux si toutes ne sont pas vides.
join(valeur 1, valeur 2, ..., séparateur) Combine une liste de valeurs de tableau ou de chaîne dans une nouvelle chaîne. Le séparateur est facultatif. Vous pouvez choisir de séparer les valeurs dans la chaîne renvoyée avec une chaîne comme séparateur.
gauche (valeur, nombre) Crée un nouveau tableau, une chaîne ou un nombre en fonction de la valeur et en prenant le nombre d'éléments en num en commençant à gauche de la valeur. La valeur renvoyée sera du même type d'objet que la valeur et l'ordre des valeurs des éléments sera conservé. Si value est un nombre, un nombre sera renvoyé égal à la valeur divisée par 10 à la puissance num, décalant ainsi la décimale vers la gauche.
minuscule (valeur) Convertit chaque lettre de la chaîne de valeur en minuscules.
map(valeur, tableau 1, tableau 2) Renvoie une valeur du tableau 2 lorsque la valeur est égale à une valeur du tableau 1. La fonction examinera la position de la valeur dans le tableau 1 et sélectionnera la valeur du tableau 2 à la même position. Par exemple, l'expression map(case.department, ['Customer Service', 'Operations'], ['1', '2']) renverrait '1' lorsque case.department est « Customer Service » et renverrait ' 2' lorsque case.department est « Opérations ».
padStart (valeur, nombre, remplissage) Ajoute la chaîne de remplissage au début de la chaîne de valeur pour avoir la longueur du nombre minimum de caractères dans num. La fonction continuera à ajouter du remplissage jusqu'à ce que la valeur soit longue de nombre de caractères. Vous pouvez l'utiliser pour compléter la séquence de numéros de dossier pour une expression de format de numéro de dossier dynamique. Par exemple, l'expression padStart(caseNumber.sequence, 4, '0') renverrait « 0006 » où le numéro de dossier suivant dans la séquence (caseNumber.sequence) est 6. La prochaine valeur renvoyée sera « 0007 ».
bonCase (valeur) Convertit la première lettre de chaque mot de la chaîne de valeur en majuscules et convertit les lettres suivantes de chaque mot en minuscules.
réduire(collection, propriété de la collection) Réduit une collection (un tableau d'objets) à l'une de ses propriétés sous forme de tableau. La fonction recherche dans collection la propriété de collection et renvoie uniquement la propriété des valeurs de collection pour chaque objet de collection. Par exemple, réduire([{id : 1, valeur : 5}, {id : 2, valeur : 10}], 'value') renverrait « [5, 10] »
inverse (valeur) Inverse l'ordre d'un tableau ou des caractères d'une chaîne. Si la valeur est un nombre positif, elle sera renvoyée sous forme négative et vice versa pour une valeur négative. Si la valeur est booléenne, le booléen opposé sera renvoyé.
droite(valeur, nombre) Crée un nouveau tableau, une chaîne ou un nombre basé sur la valeur et en prenant le nombre d'éléments en num en partant de la droite de la valeur. La valeur renvoyée sera du même type d'objet que la valeur et l'ordre des valeurs des éléments sera conservé. Si value est un nombre, un nombre sera renvoyé égal à la valeur multipliée par 10 à la puissance num, décalant ainsi la décimale vers la droite.
tranche (tableau, numéro 1, numéro 2) Renvoie une partie du tableau en fonction des positions de début et de fin indiquées par num 1 et num 2. Le tableau renvoyé inclura toutes les valeurs du tableau de la position num 1 à la position num 2. Par défaut, num 1 est 0 et num 2 est la longueur du tableau. Par exemple, l'expression slice(['1','2','3','4','5','6'],1,4) renverra '2','3','4','5
split(valeur, séparateur, limite) Divise la chaîne de valeur en plusieurs éléments d'un tableau où la chaîne correspond à la chaîne de séparation.
la limite est facultative. Vous pouvez choisir de limiter le nombre d'éléments à inclure dans le tableau en entrant un entier non négatif comme limite. Si vous fournissez une limite, le système divisera la valeur là où le séparateur apparaît, mais s'arrêtera lorsque le nombre limite d'éléments se trouvera dans le tableau résultant.
majuscule (valeur) Convertit chaque lettre de la chaîne de valeur en majuscules.

Fonctions mathématiques

Les fonctions mathématiques d' ISEL sont également indépendantes du type. Cependant, les types de valeurs saisies seront convertis en nombres mathématiques en suivant ces règles :

  • Le système tentera de transformer une chaîne en nombre. Si ce n’est pas le dossier, sa valeur par défaut sera 0.
  • Pour les booléens, une valeur vraie sera convertie en 1 et fausse en 0.
  • Le système traitera chaque valeur d'un tableau dans une expression et renverra un nouveau tableau. Les nouvelles valeurs seront affichées dans le même ordre, sauf si les fonctions somme, soustraction, multiplication et division ont été utilisées dans l'expression. Pour ces fonctions, un seul nombre sera calculé en effectuant l'opération sur chaque valeur du tableau.
Fonction Description
somme(valeur 1, valeur 2, ...) Ajoutez une série de valeurs.
soustraire(valeur 1, valeur 2, ...) Soustrayez une série de valeurs. Les valeurs seront soustraites dans l'ordre dans lequel elles sont saisies dans l'expression.
multiplier(valeur 1, valeur 2, ...) Trouver le produit d'une série de valeurs.
diviser(valeur 1, valeur 2, ...) Trouvez combien de fois la valeur 1 entre dans la valeur 2. S'il y a plus de deux valeurs, le système divisera les valeurs dans l'ordre dans lequel elles sont saisies dans l'expression.
mod(valeur 1, valeur 2) Trouvez le module ou le reste après avoir divisé la valeur 1 en valeur 2.
abs(valeur) Trouver la valeur absolue d'un nombre. Les nombres négatifs seront convertis en nombres positifs, mais les nombres positifs ne seront pas modifiés.
min(valeur 1, valeur 2, ...) Trouvez le nombre le plus bas dans une série de valeurs.
max(valeur 1, valeur 2, ...) Trouvez le nombre le plus élevé dans une série de valeurs.
sqrt(valeur) Renvoie la racine carrée d'une valeur.
pow(valeur, exposant) Calculer la valeur à la puissance de l'exposant.
péché (valeur, utilisationDegrés) Renvoie le sinus trigonométrique de value. useDegrees est facultatif. Vous pouvez demander au système d'afficher le résultat en degrés, en tapant true à la place de useDegrees, ou d'utiliser des radians, en tapant false à la place de useDegrees ou en le laissant vide.
cos(valeur, utilisationDegrés) Renvoie le cosinus trigonométrique de value. useDegrees est facultatif. Vous pouvez demander au système d'afficher le résultat en degrés, en tapant true à la place de useDegrees, ou d'utiliser des radians en tapant false à la place de useDegrees ou en le laissant vide.
tan(valeur, utilisationDegrés) Renvoie la tangente trigonométrique de value. useDegrees est facultatif. Vous pouvez demander au système d'afficher le résultat en degrés, en tapant true à la place de useDegrees, ou d'utiliser des radians en tapant false à la place de useDegrees ou en le laissant vide.
journal (valeur) Calcule le logarithme (base 10) de la valeur.

Fonctions de dates

ISEL possède de nombreuses fonctions uniques pour les valeurs de type date. Les fonctions qui ajoutent ou soustraient du temps à une valeur de date renverront une valeur de date. Par exemple, vous pouvez écrire l'expression suivante pour remplir un champ avec la date de création du dossier plus 2 jours :

addDays(case.dateRecorded, 2)
Fonction Description
addYears(valeur de date, années) Ajoute un nombre d'années (Years) à la valeur de date, qui peut être une valeur variable ou statique.
addQuarters(valeur de date, trimestres) Ajoute un nombre de trimestres (quarts) à la valeur de la date.
addMonths (valeur de date, mois) Ajoute un nombre de mois (mois) à la valeur de date.
addWeeks(valeur de date, semaines) Ajoute un nombre de semaines (weeks) à la valeur de date.
addDays (valeur de date, jours) Ajoute un nombre de jours (days) à la valeur de date.
addBusinessDays (valeur de date, jours) Ajoute un certain nombre de jours ouvrables (jours) à la valeur de date, ce qui signifie que le système ignorera les week-ends et les jours fériés lors de l'ajout de jours.
addHours(valeur de date, heures) Ajoute un nombre d'heures (hours) à la valeur de date.
addMinutes (valeur de date, minutes) Ajoute un nombre de minutes (minutes) à la valeur de la date.
addSeconds (valeur de date, secondes) Ajoute un nombre de secondes (secondes) à la valeur de la date.
addMilliseconds(valeur de date, millisecondes) Ajoute un nombre de millisecondes (millisecondes) à la valeur de date.
soustraireAnnées(valeur de date, années) Soustrait un nombre d'années (années) de la valeur de la date.
soustraireQuartiers(valeur de date, trimestres) Soustrait un certain nombre de trimestres (trimestres) de la valeur de la date.
soustraireMois(valeur de date, mois) Soustrait un nombre de mois (mois) de la valeur de la date.
soustraireWeeks(valeur de date, semaines) Soustrait un nombre de semaines (weeks) de la valeur de la date.
soustraireJours(valeur de date, jours) Soustrait un nombre de jours (days) de la valeur de la date.
soustraireHeures (valeur de date, heures) Soustrait un nombre d'heures (hours) de la valeur de la date.
soustraireMinutes (valeur de date, minutes) Soustrait un nombre de minutes (minutes) de la valeur de la date.
soustraireSeconds (valeur de date, secondes) Soustrait un nombre de secondes (secondes) de la valeur de la date.
soustraireMillisecondes (valeur de date, millisecondes) Soustrait un nombre de millisecondes (millisecondes) de la valeur de la date.
isBeforeDate (valeur de date 1, valeur de date 2,..., référence) Vérifie si les valeurs de date sont antérieures à la date de référence. Renvoie des valeurs vraies ou fausses distinctes pour chaque valeur de date saisie.
isSameDate (valeur de date 1, valeur de date 2, ..., référence) Vérifie si les valeurs de date sont les mêmes que la date de référence. Renvoie des valeurs vraies ou fausses distinctes pour chaque valeur de date saisie.
isAfterDate (valeur de date 1, valeur de date 2, ..., référence) Vérifie si les valeurs de date sont postérieures à la date de référence. Renvoie des valeurs vraies ou fausses distinctes pour chaque valeur de date saisie.
isSameDateOrBefore (valeur de date 1, valeur de date 2, ..., référence) Vérifie si les valeurs de date sont soit la même date, soit antérieures à la date de référence. Renvoie des valeurs vraies ou fausses distinctes pour chaque valeur de date saisie.
isSameDateOrAfter (valeur de date 1, valeur de date 2, ..., référence) Vérifie si les valeurs de date sont soit la même date, soit postérieures à la date de référence. Renvoie des valeurs vraies ou fausses distinctes pour chaque valeur de date saisie.
isBetweenDates (valeur de date 1, valeur de date 2, ..., startDate, endDate) Vérifie si les valeurs de date sont après startDate et avant endDate. Renvoie des valeurs vraies ou fausses distinctes pour chaque valeur de date saisie.
isLeapYear(valeur de date 1, valeur de date 2, ...) Vérifie si les valeurs de date se produisent pendant une année bissextile. Renvoie des valeurs vraies ou fausses distinctes pour chaque valeur de date saisie.
millisecondesEntre (valeur de date 1, valeur de date 2) Calcule le nombre de millisecondes entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2.
secondesEntre (valeur de date 1, valeur de date 2) Calcule le nombre de secondes entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2.
minutesEntre (valeur de date 1, valeur de date 2) Calcule le nombre de minutes entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2.
heuresEntre(valeur de date 1, valeur de date 2, useDecimals) Calcule le nombre d'heures entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2. useDecimals est facultatif. Vous pouvez demander au système d'afficher le résultat incluant les heures partielles (sous forme de décimales) en tapant true à la place de useDecimals ou arrondi au nombre entier d'heures le plus proche en tapant false à la place de useDecimals ou en le laissant vide.
joursEntre(valeur de date 1, valeur de date 2, useDecimals) Calcule le nombre de jours entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2. useDecimals est facultatif. Vous pouvez demander au système d'afficher le résultat incluant les jours partiels (sous forme de décimales), en tapant true à la place de useDecimals ou arrondi au nombre entier de jours le plus proche en tapant false à la place de useDecimals ou en le laissant vide.
semainesEntre(valeur de date 1, valeur de date 2, useDecimals) Calcule le nombre de semaines entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2. useDecimals est facultatif. Vous pouvez demander au système d'afficher le résultat incluant les semaines partielles (sous forme de décimales) en tapant true à la place de useDecimals ou arrondi au nombre entier de semaines le plus proche en tapant false à la place de useDecimals ou en le laissant vide.
moisEntre(valeur de date 1, valeur de date 2, useDecimals) Calcule le nombre de mois entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2. useDecimals est facultatif. Vous pouvez demander au système d'afficher le résultat incluant les mois partiels (sous forme de décimales) en tapant true à la place de useDecimals ou arrondi au nombre entier de mois le plus proche en tapant false à la place de useDecimals ou en le laissant vide.
quartersBetween (valeur de date 1, valeur de date 2, useDecimals) Calcule le nombre de trimestres entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2. useDecimals est facultatif. Vous pouvez demander au système d'afficher le résultat, y compris les trimestres partiels (sous forme de décimales) en tapant true à la place de useDecimals ou d'arrondir au nombre entier de trimestres le plus proche en tapant false à la place de useDecimals ou en le laissant vide.
annéesEntre(valeur de date 1, valeur de date 2, useDecimals) Calcule le nombre d'années entre la valeur de date 1 et la valeur de date 2. la valeur de date 1 sera soustraite de la valeur de date 2. useDecimals est facultatif. Vous pouvez demander au système d'afficher le résultat incluant les années partielles (sous forme de décimales) en tapant true à la place de useDecimals ou d'arrondir au nombre entier d'années le plus proche en tapant false à la place de useDecimals ou en le laissant vide.
toDate (valeur, format date/heure, strict)

Convertit la valeur d'une chaîne en date. La fonction peut accepter différents formats de date saisis en valeur, par exemple 5 janvier 2020 ou 2020-01-05. Vous pouvez indiquer un format dans lequel la fonction doit convertir la valeur en la saisissant au format datetime. Par exemple, avec l'expression toDate(case.dateRecorded, 'MM-DD-YY'), le champ « Date Recorded » sera converti au format « MM-DD-YY ». Si vous ne fournissez pas l'argument de format datetime, le format de date et d'heure par défaut du système sera utilisé.

Avec l'argument strict, vous pouvez indiquer si le système peut faire des inférences lors de l'analyse de la chaîne en une valeur de date. Si vous entrez true à la place de strict, le système ne peut formater la valeur qu'en utilisant les informations transmises dans la fonction et ne fera aucune déduction. Pour permettre au système de faire des déductions, entrez false à la place de strict ou laissez ce champ vide.

format(valeur, format dateheure, fuseau horaire)

Convertit la valeur dans un autre format de date et/ou d'heure et un autre fuseau horaire. Le format datetime et le fuseau horaire sont facultatifs. Si vous ne fournissez aucun des deux arguments, le format de date et d'heure et le fuseau horaire par défaut du système seront utilisés. Cette fonction vous permet de convertir les valeurs date et datetime de plusieurs manières :

  • Convertir une date dans un autre format, par exemple format('January 13 2021', system.defaultDateFormat) renverrait '13-Jan-2021'. Si vous n'indiquez pas de fuseau horaire, la valeur par défaut du système sera utilisée pour calculer la date.
  • Remplacez une date/heure courte par la date et l'heure complètes écrites, par exemple format('2022-11-30 6:00 AM', 'dddd, MMMM Do YYYY, h:mm a')Janvier 13 2021', system.defaultDateFormat) reviendrait « mercredi 30 novembre 2022, 3h00 ».
  • Convertit une date/heure en un autre fuseau horaire, par exemple format('13-Dec-2022 00:00 AM', system.defaultDateTimeFormat, 'America/Vancouver') renvoie '12-Dec-2022 4:00 PM'
  • Incluez uniquement l'heure d'une date/heure, par exemple format('2022-11-30 6:00 AM', system.defaultTimeFormat, 'America/Toronto') renvoie « 6:00 AM ».
isDate(valeur 1, valeur 2, ...) Vérifie si la valeur est un type de date valide. Renvoie vrai si toutes les valeurs sont des dates et faux si ce n'est pas le dossier. La date et les chaînes contenant du texte de date sont acceptées.
onSameDay(valeur 1, valeur 2, ...) Vérifie si la valeur 1 est la même date que la valeur 2. Renvoie vrai si toutes les valeurs de date se produisent le même jour et faux si au moins une ne se produit pas le même jour.
onSameWeek(valeur 1, valeur 2, ...) Vérifie si la valeur 1 se situe dans la même semaine civile que la valeur 2. Renvoie vrai si toutes les valeurs de date se produisent dans la même semaine civile et faux si au moins une ne se produit pas.
onSameMonth(valeur 1, valeur 2, ...) Vérifie si la valeur 1 se situe dans le même mois civil que la valeur 2. Renvoie vrai si toutes les valeurs de date se produisent dans le même mois civil et faux si au moins une ne se produit pas.
onSameYear(valeur 1, valeur 2, ...) Vérifie si la valeur 1 se situe au cours de la même année civile que la valeur 2. Renvoie vrai si toutes les valeurs de date se produisent au cours de la même année civile et faux si au moins une ne se produit pas.

Transformer les expressions

Vous pouvez transformer des expressions pour les écrire dans un format différent, ce qui vous permet d'utiliser plusieurs fonctions sur une seule ligne. Utilisez le caractère pipe de transformation, |, pour transformer une expression en suivant cet ordre d'éléments :

object.variable | function(value)

Au lieu des formats de fonction décrits dans les sections Fonctions de chaîne, Fonctions mathématiques et Fonctions de date, vous pouvez utiliser le format transformé pour écrire la même expression. Par exemple, pour ajouter des jours à la date de création du dossier (dateRecorded), vous pouvez soit écrire :

ou

Vous pouvez également combiner plusieurs fonctions dans une seule expression en utilisant la syntaxe de transformation, c'est-à-dire object.variable | fonction1(valeur) | fonction2(valeur) | fonction3(valeur). Les fonctions seront évaluées dans l'ordre entré dans l'expression. Par exemple, dans l'expression case.number | somme(4) | multiplier(5), le système ajouterait 4 à la variable numérique, puis la multiplierait par 5.

 
 

Objets de contexte

ISEL a un contexte implicite, ce qui signifie que les objets auxquels vous pouvez faire référence dans les expressions sont déjà identifiés par le système et que vous n'avez pas besoin de créer un contexte pour votre expression. Lors de la rédaction de votre expression, l'objet disponible est le formulaire sur lequel se trouve le champ sur lequel vous créez l'expression.

Maintenant objet

c'est maintenant un objet simple qui n'a pas de variables. Entrez maintenant une expression pour faire référence à la date et à l'heure actuelles auxquelles le formulaire a été enregistré ou où la règle Définir la valeur du champ a été déclenchée.

Objet système

L'objet système contient des informations de base sur l'application Case IQ dans laquelle vous travaillez. Vous pouvez utiliser le système et ses variables, répertoriées ci-dessous, tout comme les objets de formulaire utilisés jusqu'à présent dans les exemples de ce guide.

Variable Description
langage par défaut La langue que votre application utilise par défaut.
fuseau horaire par défaut
 
Le fuseau horaire de votre application par emplacement.
nom Le nom de votre application. Il s'agit généralement du nom de votre entreprise.
supportEmail L'adresse e-mail d'assistance de votre candidature.
version La version de configuration de votre application.
FormatDate par défaut Le format de date par défaut de votre candidature, généralement « JJ-MMM-AAAA ».
FormatDateLong par défaut Le format de date plus long par défaut, y compris le nom complet du mois, de votre candidature, généralement « MMMM D, AAAA ».
FormatDateHeure par défaut Le format de date et d'heure par défaut de votre application, généralement « JJ-MMM-AAAA h:mm A ».
par défautDateTimeLongFormat Le format de date et d'heure plus long par défaut, y compris le nom complet du mois, de votre application, généralement « MMMM D, YYYY h:mm A ».

Objet utilisateur

L'objet utilisateur vous permet de faire référence contextuellement au dernier compte utilisateur qui a mis à jour un enregistrement. Par exemple, vous pouvez saisir user.email dans une expression pour remplir un champ avec l'adresse e-mail de la dernière personne ayant mis à jour un dossier. Le tableau ci-dessous contient toutes les variables de l'utilisateur.

Variable Description
e-mail L'adresse e-mail du compte utilisateur.
prénom Le prénom du compte utilisateur
identifiant L’ID généré par le système créé par l’application pour le compte. Cela n'affichera pas l'ID utilisateur que la personne utilise pour se connecter à Case IQ.
langue La langue dans laquelle l'application est affichée pour le compte utilisateur.
nom de famille Le nom de famille du compte utilisateur.
Signature La signature électronique ajoutée à la fin de leurs e-mails envoyés depuis Case IQ.
IDRôleUtilisateur ID généré par le système créé par l'application pour le rôle d'utilisateur du compte. Utilisez userRoleID__name pour le nom du rôle utilisateur en langage clair tel qu'il apparaît sur la page du rôle utilisateur.
userRoleID__name Le rôle d'utilisateur du compte en langage clair.

Objet mathématique

En plus des objets formulaire, vous pourrez également utiliser l’objet mathématique. Vous pouvez utiliser l'objet mathématique pour effectuer des opérations arithmétiques à l'aide de constantes mathématiques, telles que pi. Tout comme les objets de formulaire dans ISEL , vous n'avez pas besoin de construire ou de configurer l'objet mathématique, ce qui signifie que vous pouvez commencer à l'utiliser immédiatement dans des expressions. Par exemple, pour faire référence à pi, saisissez ce qui suit dans votre expression :

Les propriétés suivantes sont disponibles pour l'objet mathématique dans ISEL :

Fonction Description Nombre approximatif
E Renvoie le numéro d'Euler. 2.718
LN2 Renvoie le logarithme népérien de 2. 0,693
LN10 Renvoie le logarithme népérien de 10. 2.302
LOG2E Renvoie le logarithme base 2 de E. 1.442
LOG10E Renvoie le logarithme base 10 de E. 0,434
PI Renvoie PI. 3.14
SQRT1_2 Renvoie la racine carrée de ½. 0,707
SQRT2 Renvoie la racine carrée de 2. 1.414

Ceci et les objets de champ

Les objets this et field vous permettent de faire référence contextuellement à l'entité pour laquelle vous créez l'expression. Par exemple, lors de la création d'une action de règle « définir la valeur du champ », vous pouvez utiliser l'objet champ pour faire référence aux propriétés du champ qui seront définies par la règle, notamment sa légende, son nom, son type et sa valeur. La saisie de field.caption renverra le texte de la légende du champ.

L'objet champ ne sera disponible que lorsque vous créez une expression pour un champ, telle que les actions de règle « définir la valeur du champ », les champs calculés et les champs agrégés. Vous pouvez utiliser l'objet this à la place pour extraire les mêmes informations, par exemple lors de l'écriture d'une expression pour le format de numéro de dossier. Lorsque vous tapez dans le champ « Expression » sur la page Numéro de dossier dans Paramètres, la saisie de this.prefix renverra le préfixe défini comme format de numéro de dossier.