Prédicats

Qu'est-ce qu'un Prédicat ?

Un prédicat est une règle ou une condition utilisée pour filtrer et rechercher des données spécifiques. Dans notre système, les prédicats sont définis sous forme de JSON et sont utilisés pour appliquer des conditions sur les données lors de la génération de contenu.

Utilisation des Prédicats

Les prédicats permettent de :

  • Filtrer les résultats de recherche
  • Appliquer des conditions spécifiques à des ensembles de données
  • Valider des informations avant de les afficher

Les prédicats sont envoyés sous forme de JSON avec le texte contenant les placeholders à traiter.

Format des Prédicats

Les prédicats sont définis dans un format JSON. Chaque prédicat contient une liste de règles. Voici un exemple de prédicat pour l'affichage d'un champ :

{
    "rules": [
        {
            "target": "NoticeTypeCode",
            "operator": "is_not_null"
        },
        {
            "target": "NoticeCategoryCode",
            "operator": "is_not_null"
        },
        {
            "target": "DiffusionSupportCode",
            "operator": "in",
            "value": ["CP", "PR"]
        },
        {
            "target": "Ceremony",
            "operator": "is_not_null"
        },
        {
            "target": "CeremonyDate",
            "operator": "is_not_null"
        },
        {
            "target": "DocumentType",
            "operator": "equal",
          	"value": "confirmation"
        },
    ]
}

 

Description des Clés de Prédicat

  • rules : Une liste de règles à appliquer.
  • target : La cible sur laquelle la règle doit être appliquée (par exemple, un champ ou une propriété d'une entité).
  • operator : L'opérateur à utiliser pour la règle (voir les opérateurs disponibles ci-dessous).
  • value : La valeur à utiliser pour certains opérateurs (comme equal)
    • Note: Il est possible d'utiliser une valeur passée dans le contexte par exemple:
      {
          "rules": [
            	{
                  "target": "DiffusionSupportCode",
                  "operator": "in",
                  "value": ["CP", "PR"]
              },
              {
                "target": "CeremonyDate",
                "operator": "superior_or_equal",
                "value": ":FirstPublicationDate"
              }
          ]
      }
      
      ['DiffusionSupportCode' => 'CP', 'FirstPublicationDate' => new Date('01/01/2020')]
      

Opérateurs Disponibles

Voici les opérateurs actuellement disponibles pour définir vos règles de prédicat :

1. is_not_null (N'est pas Nul)

  • Description: Vérifie que la cible n'est pas nulle.
  • Exemple:
    {
        "target": "Ceremony",
        "operator": "is_not_null"
    }
    

2. is_null (Est Nul)

  • Description: Vérifie que la cible est nulle.
  • Exemple:
    {
        "target": "CeremonyDate",
        "operator": "is_null"
    }
    

3. in (Dans)

  • Description: Vérifie que la cible est dans une liste de valeurs spécifiées.
  • Exemple:
    {
        "target": "DiffusionSupportCode",
        "operator": "in",
        "value": ["CP", "PR"]
    }
    

4. not_in (Pas dans)

  • Description: Vérifie que la cible n'est pas dans une liste de valeurs spécifiées.
  • Exemple:
    {
        "target": "DiffusionSupportCode",
        "operator": "not_in",
        "value": ["CP", "PR"]
    }
    

5. equal (Égal)

  • Description: Vérifie que la cible est égale à une valeur spécifiée.
  • Exemple:
    {
        "target": "DiffusionSupportCode",
        "operator": "equal",
        "value": "WEB"
    }
    

6. not_equal (Différent)

  • Description: Vérifie que la cible est différente d'une valeur spécifiée.
  • Exemple:
    {
        "target": "DiffusionSupportCode",
        "operator": "not_equal",
        "value": "WEB"
    }
    

7. superior_or_equal (Supérieur ou égal)

  • Description: Vérifie que la cible est supérieure ou égale à une valeur spécifiée.
  • Exemple:
    {
        "target": "CeremonyDate",
        "operator": "superior_or_equal",
        "value": "01/01/2020"
    }
    

Nous travaillons actuellement sur l'ajout de nouvelles options de prédicats pour offrir plus de flexibilité et de puissance.

Exemples de Messages d'Erreur

Lors de la validation des prédicats, vous pouvez rencontrer différents messages d'erreur. Voici quelques exemples courants :

1. Type de Variable Non Autorisé

  • Message d'erreur: Predicate is not valid : ["Variable type 'string' not allowed for the format 'date'"]
  • Description: Cela se produit lorsque vous essayez d'utiliser une chaîne de caractères à la place d'une date pour un champ de type date par exemple.

2. Contexte Manquant

  • Message d'erreur: Predicate is not valid : ["Missing context : NoticeTypeCode"]
  • Description: Cela signifie qu'un contexte requis pour évaluer le prédicat est manquant. Assurez-vous que toutes les informations nécessaires sont fournies.

3. Opérateur Non Autorisé

  • Message d'erreur: Predicate is not valid : ["Operator 'badOperator' not allowed for the type 'noticeTypeCode'"]
  • Description: Cela se produit lorsque l'opérateur utilisé dans le prédicat n'est pas autorisé pour le type de champ spécifié. Vérifiez que vous utilisez un opérateur valide pour ce type de champ.