Aller au contenu principal

Composant DataList

DataList permet d'afficher et de manipuler les données d'un Business Object dans une page. Il lit les champs, les définitions de requête et les actions du Business Object. Il convient donc aux listes basées sur un modèle, telles que les commandes, les équipements ou les clients.

Après avoir lu ce guide, vous saurez :

  • Lier un Business Object et une DQL Query
  • Utiliser FX pour transmettre à DQL les valeurs de composants de saisie, du Page Context ou de paramètres d'URL
  • Configurer les colonnes, les liens de colonne, la pagination et les styles d'affichage
  • Utiliser Fixed Filters pour imposer un périmètre de données de base que les utilisateurs ne peuvent pas supprimer
  • Configurer la recherche rapide sur la première ligne avec Query Fields et la recherche avancée avec Query Form
  • Actualiser DataList ou remplacer les données locales du tableau à l'aide de boutons de la barre d'outils
  • Configurer des Business Object Actions comme opérations de ligne

DataList est une liste de modèles orientée Business Object et ne propose pas de source de données Custom URL. Pour appeler directement une API HTTP arbitraire, utilisez la source Custom URL décrite dans le guide du composant ProTable. DataList ne prend pas en charge les listes de tâches ; celles-ci seront fournies par le composant dédié TaskList.

1. Prérequis​

1.1 Préparer un Business Object​

Accédez à Spark Designer → Objects Designer et vérifiez que le Business Object cible possède la configuration suivante :

  1. Il est associé à une source de données disponible et à une table physique.
  2. Les champs à afficher sont disponibles pour l'affichage en liste.
  3. Les champs utilisés pour le filtrage ou la recherche sont définis comme recherchables, filtrables, indexés ou identifiants.
  4. Le champ servant d'identifiant unique de ligne est stable et sans doublon, généralement id.
  5. Si des opérations de ligne sont nécessaires, les Object Actions correspondantes sont définies dans le Business Object.

Si aucun candidat n'apparaît pour Fixed Filters ou Query Fields, vérifiez d'abord si les champs du Business Object sont définis comme recherchables, filtrables, indexés ou identifiants.

Pour proposer une recherche avancée avec Query Form, créez également un Data Form pour le même Business Object et activez Query dans Usage Scenarios. Query Form est facultatif et n'affecte pas Fixed Filters ni Query Fields.

1.2 Créer une DQL si nécessaire​

DQL permet d'enregistrer des conditions de requête Business Object réutilisables. Accédez à :

Objects Designer → Data → Filters

Cliquez sur Add DQL pour créer une requête. Le système génère automatiquement la Query Key ; vous n'avez pas à la gérer manuellement.

Par exemple, pour effectuer une recherche partielle facultative sur le code d'un animal :

code LIKE :code

Dans la définition des paramètres, rendez le paramètre code facultatif. À l'exécution :

  • Si une valeur est fournie, la requête effectue une recherche « contient » sur le code.
  • Si le paramètre est vide, la condition n'est pas incluse dans la requête.
  • Transmettez directement la saisie de l'utilisateur au paramètre LIKE ; il n'est pas nécessaire d'ajouter % manuellement.

Si un paramètre DQL est obligatoire, DataList doit fournir une valeur valide lors de l'exécution de la requête, sinon celle-ci échoue.

1.3 Confirmer la stratégie d'isolation des données​

La nécessité d'un champ de tenant dépend de la stratégie d'isolation du modèle et de la source de données :

  • Un objet utilisant une source de données dédiée, ou ne nécessitant pas d'isolation par tenant, peut s'appuyer sur l'isolation au niveau de la source sans ajouter de champ de tenant.
  • Lorsque plusieurs tenants partagent une table physique, définissez explicitement un unique champ de tenant dans le mapping du Business Object.
  • DQL ne gère que les conditions métier et ne peut pas remplacer les règles d'isolation imposées par la couche modèle.

2. Ajouter DataList​

  1. Ouvrez la page cible dans Page Designer.
  2. Développez le groupe Data dans la palette de composants.
  3. Faites glisser DataList dans un conteneur compatible.
  4. Sélectionnez DataList et configurez la section Basic dans le panneau des propriétés.
  5. Attribuez à DataList un nom de composant stable et facile à reconnaître, tel que petList ou orderList.

Un nom stable permet d'identifier facilement le composant dans FX, les interactions des boutons et les actions Component API.

3. Configurer le modèle et DQL​

3.1 Sélectionner un Model​

Sélectionnez un Business Object dans la propriété Model. DataList charge alors :

  • Les champs affichables
  • Les champs interrogeables
  • Les Business Object Actions
  • Les DQL Queries disponibles

Après avoir changé de Model, vérifiez de nouveau Columns, Fixed Filters, Query Fields, Query Form, DQL Parameters et Row Operations. Les champs, formulaires ou actions de l'ancien modèle peuvent ne pas être compatibles avec le nouveau.

3.2 Sélectionner une DQL Query​

Dans DQL Query, sélectionnez une DQL publiée pour le Business Object actuel. La DQL est facultative :

  • Sans DQL, DataList utilise la requête de base du modèle et y ajoute les filtres configurés sur la page.
  • Avec une DQL, DataList exécute celle-ci et continue d'ajouter Fixed Filters, Query Fields et les conditions de Query Form.

La DQL, Fixed Filters, Query Fields et Query Form sont combinés avec AND.

3.3 Configurer DQL Parameters​

Après avoir sélectionné une DQL paramétrée, DQL Parameters affiche le nom de chaque paramètre. Ces noms proviennent de la définition DQL ; la page doit uniquement en configurer les valeurs.

Cliquez sur FX en regard d'un paramètre, ajoutez une variable dans Value Resolver et choisissez sa source. Les sources courantes sont :

SourceCas d'utilisation
Component ValueLire la valeur actuelle d'un Input, Select, Radio, Date Picker, Uploader ou d'un autre composant de la page
Page ContextLire le Page Context ou des paramètres métier
URL ParameterLire un paramètre de requête dans l'URL du navigateur
Current RowLire un champ de l'enregistrement courant dans un contexte de ligne
Static ValueTransmettre un texte, un nombre ou une valeur booléenne fixe

Après avoir ajouté une variable, référencez-la dans Target Value :

[[petCode]]

Un composant de type Range renvoie deux éléments. Référencez séparément les valeurs de début et de fin :

[[queryRange.0]]
[[queryRange.1]]

Vous pouvez référencer plusieurs variables dans un même Target Value lorsqu'un paramètre doit les combiner. En présence de nombreux paramètres, la zone DQL Parameters défile dans une hauteur limitée et ne repousse pas indéfiniment les propriétés suivantes vers le bas.

Cliquer sur Add Variable dans la boîte de dialogue FX ajoute uniquement une liaison de variable. Configurez sa source et Target Value, puis enregistrez la boîte de dialogue.

4. Configurer Columns​

Développez Columns et sélectionnez les champs du Business Object à afficher. Leur ordre correspond à celui des colonnes à l'exécution.

Recommandations :

  • Placez dans la première colonne le nom ou le code qui identifie le mieux l'enregistrement.
  • Organisez les quantités, statuts, dates et autres champs dans l'ordre de lecture métier.
  • Évitez d'afficher trop de champs rarement utilisés. Présentez les détails via un lien de colonne, une opération de ligne, une Dialog ou un Drawer.
  • Vérifiez que la valeur utilisée comme Row Unique Key est unique dans tous les enregistrements.

Pour ouvrir une page de détails lors d'un clic sur une colonne, modifiez la configuration de lien de cette colonne :

  1. Activez le lien de colonne.
  2. Sélectionnez la page de destination dans Target Page.
  3. Saisissez dans Param Name le paramètre reçu par la page cible, généralement id.
  4. Sélectionnez dans Row Field le champ de la ligne actuelle à transmettre.

Par exemple, transmettre l'id de la ligne actuelle sous le paramètre id produit des paramètres de navigation similaires à :

?id=<id de la ligne actuelle>

5. Configurer Pagination​

Développez Pagination et définissez la taille de page par défaut. À l'exécution, DataList transmet le numéro de page et la taille de page à la requête du modèle.

Recommandations :

  • Utilisez 10 à 20 enregistrements par page pour une liste d'administration classique.
  • Augmentez la taille lorsque la liste contient peu de champs et que la hauteur disponible est suffisante.
  • Pour un volume important, n'utilisez pas une taille excessive afin de charger tous les enregistrements en une seule fois.

Lorsqu'un bouton de recherche appelle reloadTable, DataList relance la requête depuis la première page afin de ne pas rester sur une page ultérieure qui n'existe peut-être plus.

6. Configurer les filtres fixes et la zone de recherche​

DataList sépare les contraintes invisibles de périmètre des données des conditions de recherche manipulables par les utilisateurs :

ConfigurationVisible à l'exécutionRôle
Fixed FiltersNonConditions fixes que chaque requête doit respecter
Query FieldsOuiContrôles de recherche rapide affichés sur la première ligne de la barre de filtres
Query FormOuiFormulaire de recherche avancée affiché après un clic sur More
Show Filter BarSans objetContrôle l'affichage de Query Fields, Query Form et des actions de recherche

Contrairement à TaskList, DataList ne fournit aucun champ de recherche par défaut. Pour afficher une zone de recherche, configurez au moins un Query Field ou sélectionnez un Query Form, puis laissez Show Filter Bar activé.

6.1 Configurer Fixed Filters​

Les Fixed Filters sont automatiquement ajoutés à chaque requête. Ils ne sont pas visibles à l'exécution et ne peuvent pas être supprimés par l'utilisateur. Ils restent actifs même lorsque Show Filter Bar est désactivé.

Ils conviennent notamment aux cas suivants :

  • La page ne doit afficher qu'un type métier donné
  • Les enregistrements archivés ou supprimés doivent toujours être exclus
  • Les résultats doivent être limités à un projet, une organisation ou un enregistrement parent du Page Context
  • Un paramètre d'URL doit limiter la liste à l'enregistrement de détail courant

Dans Fixed Filters, cliquez sur Add, puis configurez Field, Operator et Value pour chaque condition. Saisissez directement Value ou cliquez sur FX pour référencer Page Context, URL Parameter, Component Value ou une variable statique dans le Value Resolver partagé.

Fixed Filters prend en charge les opérateurs courants suivants :

OpérateurSignificationExemple de valeur
EQÉgal àOPEN
NEQDifférent deDELETED
LIKEContientPET-01
GESupérieur ou égal à100
GTSupérieur à100
LEInférieur ou égal à500
LTInférieur à500
BETWEENIntervalle2026-07-01,2026-07-31
INAppartient à un ensembleOPEN,PROCESSING
NOT_INN'appartient pas à un ensembleDELETED,CLOSED

Séparez les valeurs de IN et NOT_IN par des virgules. Pour BETWEEN, utilisez valeur de début,valeur de fin. Une valeur vide ne génère aucune condition de filtre.

6.2 Activer ou désactiver Show Filter Bar​

Show Filter Bar contrôle toute la zone de recherche à l'exécution :

  • Activé : affiche la zone de recherche lorsqu'au moins un Query Field ou un Query Form est configuré.
  • Désactivé : masque Query Fields, Query Form, Search, More et Reset sans affecter Fixed Filters.
  • Activé sans Query Fields ni Query Form : n'affiche pas de zone de recherche vide.

Désactivez Show Filter Bar lorsque le périmètre de la requête est fixe et que les utilisateurs ne doivent pas réduire davantage les résultats.

6.3 Configurer Query Fields​

Query Fields définit les contrôles de recherche rapide sur la première ligne de la barre de filtres. Ouvrez la boîte de dialogue Query Fields, cliquez sur Add, puis configurez chaque ligne :

PropriétéDescription
FieldSélectionnez un champ interrogeable du Business Object courant ; un même champ ne peut pas être sélectionné plusieurs fois
OperatorLes opérateurs disponibles dépendent du type réel du champ
PlaceholderTexte indicatif affiché dans le contrôle d'exécution pour expliquer son usage de recherche

Utilisez les icônes haut et bas pour réordonner les champs et l'icône de suppression pour retirer un champ. Les contrôles d'exécution suivent cet ordre. Dans la boîte de dialogue, les libellés Field, Operator et Placeholder sont placés au-dessus des contrôles, et Operator réserve assez d'espace pour les noms localisés plus longs.

Query Fields affiche les contrôles et limite les opérateurs selon le type de champ :

Type de champOpérateur par défautOpérateurs disponiblesContrôle à l'exécution
Text, String, TextareaContainsContains, Equals, Not equalChamp texte
Number, Decimal, MoneyEqualsEquals, Not equal, Greater than or equal, Greater than, Less than or equal, Less thanChamp numérique
Enum, Select, BooleanEqualsEquals, Not equal, In, Not inListe déroulante ; In et Not in utilisent une sélection multiple
Date, DateTime, TimestampRangeRangeSélecteur de plage de date ou de date-heure
User, DepartmentEqualsContains, Equals, Not equalSélecteur d'utilisateur ou de département

À l'exécution, les contrôles ne répètent pas de Label visible ; le Placeholder explique le rôle de chaque champ. Les dates et dates-heures utilisent Range : le début est compilé en GE, la fin en LE, et les deux bornes sont incluses.

6.4 Créer et sélectionner un Query Form​

Query Form est facultatif et accueille les conditions avancées qui ne tiennent pas toutes sur la première ligne. DataList référence un Data Form de Objects Designer, et non un Task Form.

Pour créer un Query Form :

  1. Ouvrez Spark Designer → Objects Designer, puis Data Forms.
  2. Créez ou modifiez un Data Form pour le même Business Object que DataList.
  3. Activez Query dans Usage Scenarios.
  4. Conservez uniquement les champs interrogeables utiles aux utilisateurs, puis configurez des titres, Placeholders et Field Width adaptés.
  5. Enregistrez le Data Form, revenez dans Page Designer et sélectionnez-le dans la propriété Query Form de DataList.

Query Form conserve la grille Field Width de 24 colonnes configurée dans Data Form. Par exemple, quatre champs de largeur 6 restent sur une seule ligne dans la zone More à l'exécution ; des largeurs 8, 8 et 8 affichent trois champs par ligne. Pour forcer un retour à la ligne, portez le total de la ligne à 24 ou ajustez l'ordre et la largeur des champs dans Data Form.

La liste Query Form contient uniquement les Data Forms disponibles pour le Business Object courant et compatibles avec le scénario Query. Si elle est vide, vérifiez que le Data Form est lié au même Business Object, que Query est activé et que la version courante est enregistrée.

Après un clic sur l'icône More à l'exécution, Query Form apparaît sous la ligne de recherche rapide. Ses champs suivent ces règles :

  • Seuls les champs interrogeables et visibles du Business Object courant sont affichés.
  • Text utilise une recherche par inclusion ; les champs scalaires ordinaires utilisent l'égalité.
  • Date, DateTime et Timestamp utilisent automatiquement des requêtes Range.
  • Le mode Query n'impose pas la validation Required et les champs vides ne participent pas à la requête.
  • Uploader, Multi Row Input, Rich Editor et JSON Editor ne sont pas affichés comme contrôles de recherche.

6.5 Search, More et Reset​

  • Search : lit les valeurs courantes de Query Fields et Query Form, puis relance la requête depuis la première page.
  • Icône More : apparaît uniquement lorsqu'un Query Form est configuré et développe ou réduit la zone de recherche avancée.
  • Icône Reset : efface les valeurs de Query Fields et Query Form, réduit More, puis relance la requête depuis la première page.
  • Enter : lance directement la requête depuis un Query Field de type texte.

Les valeurs vides ne participent pas à la requête. La requête finale combine les conditions suivantes :

Autorisations et conditions d'isolation du Business Object
AND DQL Query
AND Fixed Filters
AND Query Fields
AND Query Form

7. Configurer Toolbars (facultatif)​

DataList prend en charge une barre d'outils à gauche et une à droite. Toolbars contient les commandes de liste et les composants personnalisés ; il ne s'agit pas d'un prérequis pour la barre de recherche intégrée. Pour les recherches ordinaires sur les champs, privilégiez Query Fields et Query Form au lieu de dupliquer Search et Reset dans une Toolbar.

Toolbars reste adapté lorsque :

  • Les paramètres DQL lisent des composants Input, Select ou Date Picker personnalisés sur la page
  • La liste fournit des commandes telles que Create, Import ou Export
  • La page nécessite un Uploader, un Dropdown ou un bouton métier
  • Une action Component API doit actualiser la liste ou remplacer les données locales du tableau

Sélectionnez DataList et ouvrez Toolbars dans le panneau des propriétés :

  1. Cliquez sur Add dans Left Toolbar et choisissez un Input, Date Picker, Select ou un autre composant de recherche.
  2. Cliquez sur Add dans Toolbar et choisissez un Button, Dropdown ou un autre composant d'action.
  3. Sélectionnez un composant ajouté et configurez ses propriétés Label, Name et ses interactions.

Disposition courante :

  • Left Toolbar : contrôles personnalisés de paramètres DQL, Uploader ou autres saisies métier.
  • Toolbar : boutons Create, Import, Export et autres actions.

Après avoir sélectionné un composant de barre d'outils, continuez à modifier le composant lui-même dans le panneau des propriétés. Donnez à chaque composant de recherche un nom stable et unique afin que les paramètres DQL et les interactions puissent le référencer.

7.1 Actualiser DataList depuis un bouton de requête DQL personnalisé​

Ajoutez un bouton Search et configurez son interaction uniquement lorsque des contrôles Toolbar personnalisés pilotent DQL Parameters ou une autre requête personnalisée :

  1. Sélectionnez le bouton Search et ouvrez Interaction editor.
  2. Ajoutez une action Component API.
  3. Dans Target Component, sélectionnez la DataList actuelle, par exemple petList.
  4. Dans Function, sélectionnez reloadTable.
  5. Enregistrez l'interaction.

Lors du clic, DQL Parameters résout de nouveau les valeurs actuelles des composants, puis DataList relance la requête depuis la première page.

7.2 Mettre à jour les données locales avec setTableData​

Lorsqu'un bouton appelle d'abord une API personnalisée et doit afficher directement le tableau renvoyé dans DataList, appelez :

setTableData(data)

data doit être un tableau d'enregistrements. Cette fonction remplace les données du tableau et réinitialise l'état de pagination. Pour une requête Business Object standard, préférez reloadTable afin que la pagination, les filtres et le total restent gérés de manière cohérente par la requête du modèle.

7.3 Uploader de barre d'outils et bouton Import​

Pour charger un fichier avant de l'importer, utilisez la structure suivante :

  1. Ajoutez un Uploader à la barre d'outils et attribuez-lui un nom stable, par exemple importFiles.
  2. Ajoutez un bouton Import.
  3. Dans les paramètres de requête du bouton Import, utilisez FX pour lire la Component Value de importFiles.
  4. Une fois la requête réussie, appelez reloadTable sur DataList.

Les pièces jointes chargées depuis la barre d'outils sont gérées via la visionneuse de pièces jointes. La barre ne doit pas développer la liste complète des fichiers et déformer la mise en page. Un Uploader placé dans un formulaire est un champ de formulaire ; son affichage et sa soumission diffèrent de ceux d'un Uploader de barre d'outils.

8. Configurer Row Operations​

Les Row Operations exécutent une Business Object Action sur l'enregistrement courant, par exemple modifier, activer, désactiver, archiver ou supprimer.

8.1 Prérequis​

Définissez d'abord l'action et ses paramètres dans le Business Object. DataList ne doit pas remplacer par une logique front-end temporaire les actions métier qui nécessitent réutilisation, validation ou audit.

8.2 Ajouter une opération de ligne​

  1. Développez Row Operations.
  2. Ajoutez une opération.
  3. Sélectionnez une Business Object Action.
  4. Configurez le nom et le mode d'affichage de l'opération.
  5. Liez les paramètres de l'Action à des champs Current Row, des valeurs statiques ou au Page Context.
  6. Organisez les différentes opérations dans l'ordre métier.

Par exemple, une action de suppression lie généralement son paramètre d'enregistrement à l'id de la ligne actuelle.

8.3 Configurer les interactions​

Lors de la modification de l'Interaction d'une opération de ligne, vous pouvez configurer :

  • Un message de confirmation avant l'exécution
  • L'ouverture d'une Dialog ou d'un Drawer
  • La définition du Page Context
  • L'appel d'une fonction d'un autre composant
  • L'actualisation de DataList après l'exécution

Les opérations dangereuses doivent comporter une étape de confirmation explicite. Une fois l'opération terminée, appelez reloadTable sur la DataList actuelle pour afficher les données à jour.

9. Propriétés Advanced​

Les propriétés avancées de DataList sont :

PropriétéDescription
Enable Row NumberAffiche le numéro de ligne
Table SizeDéfinit une densité large, middle ou small
Show HeaderAffiche la ligne d'en-tête contenant les titres de colonnes ; sa désactivation masque uniquement les titres, pas le titre DataList, Toolbar, la zone de recherche ni les lignes de données
BorderedAffiche ou masque les bordures du tableau
Row Unique KeyChamp d'identification unique de chaque ligne ; valeur par défaut : id

Row Unique Key doit être stable et unique. Utiliser un champ susceptible d'être dupliqué ou modifié, comme un nom ou un statut, peut perturber la sélection, les mises à jour et le rendu.

10. Exemple complet : recherche partielle par Pet Code avec un paramètre DQL​

Objectif : l'utilisateur saisit un Pet Code et clique sur Search pour effectuer une recherche partielle. Si le champ est vide, DataList affiche tous les enregistrements accessibles.

Si code est un champ interrogeable ordinaire, la méthode la plus simple consiste à l'ajouter dans Query Fields, choisir Contains et définir un Placeholder. L'exécution utilise alors Search et Reset intégrés. L'exemple ci-dessous illustre une DQL paramétrée réutilisable ou un paramètre DQL provenant d'un contrôle Toolbar personnalisé.

Étape 1 : créer la DQL​

Créez la DQL suivante dans Data → Filters du Business Object :

code LIKE :code

Rendez le paramètre code facultatif.

Étape 2 : ajouter le composant de recherche​

Sélectionnez DataList, ouvrez Toolbars, cliquez sur Add dans Left Toolbar, puis choisissez Input :

  • Label : Pet Code

Étape 3 : lier le paramètre DQL​

  1. Dans DataList, sélectionnez la DQL Query que vous venez de créer.
  2. Recherchez code dans DQL Parameters.
  3. Cliquez sur FX.
  4. Ajoutez une variable nommée petCode.
  5. Sélectionnez Component Value comme Source.
  6. Sélectionnez le composant Pet Code.
  7. Cliquez sur le contrôle « + » pour ajouter la variable.
[[petCode]]

Ajoutez une interaction Component API au bouton Search :

  • Target Component : la DataList actuelle
  • Function : reloadTable

Étape 5 : vérifier le résultat​

  1. Laissez Pet Code vide et cliquez sur Search. Tous les enregistrements accessibles doivent être renvoyés.
  2. Saisissez une partie du code et cliquez sur Search. Les enregistrements dont le code contient ce texte doivent être renvoyés.
  3. Effacez le champ et cliquez de nouveau sur Search. Les résultats ne doivent plus être filtrés par code.
  4. Si Fixed Filters, Query Fields ou Query Form sont également configurés, vérifiez que les résultats satisfont l'ensemble des conditions.

11. Enregistrer, prévisualiser et vérifier à l'exécution​

Une fois la configuration terminée, vérifiez-la dans cet ordre :

  1. Enregistrez la page.
  2. Ouvrez Preview et vérifiez la largeur des colonnes, le retour à la ligne de la barre d'outils, Query Fields, la grille Query Form et la pagination.
  3. Testez les paramètres DQL avec une valeur puis sans valeur.
  4. Testez Search, More et Reset intégrés, les liens de colonne et les opérations de ligne.
  5. Ouvrez la page Runtime réelle et répétez les requêtes et opérations principales.
  6. Vérifiez que l'alignement de la barre d'outils, la largeur des composants et les résultats des interactions sont identiques entre Preview et Runtime.

Le mode conception ne fournit que la configuration et une prévisualisation approximative. Les autorisations de données, les véritables chargements de pièces jointes, les appels API et les requêtes du modèle doivent être vérifiés dans Runtime.

12. Dépannage​

12.1 Aucun champ n'est disponible après la sélection d'un Model​

Vérifiez que le mapping de table du Business Object est terminé, que les champs sont disponibles pour l'affichage en liste ou l'interrogation, et que la version actuelle a été enregistrée ou publiée.

12.2 Aucun DQL Parameter n'apparaît après la sélection d'une DQL​

Seuls les paramètres déclarés sous la forme :PARAM_NAME dans la DQL apparaissent dans DQL Parameters. Validez et enregistrez d'abord la DQL dans Objects Designer, puis revenez sur la page et sélectionnez-la de nouveau.

12.3 Un paramètre vide ne renvoie toujours aucune donnée​

Vérifiez si le paramètre DQL est obligatoire. Pour qu'une valeur vide signifie « ne pas filtrer », rendez le paramètre facultatif et assurez-vous qu'il contrôle uniquement la condition à omettre.

12.4 Une requête LIKE ne renvoie aucun résultat​

Transmettez directement le texte saisi par l'utilisateur et n'ajoutez pas % dans la valeur FX. Vérifiez aussi que le type du champ prend en charge les recherches textuelles « contient ».

12.5 Les données ne changent pas après un clic sur un Search personnalisé de Toolbar​

Vérifiez dans l'ordre :

  1. Le bouton Search possède une action Component API.
  2. Target Component correspond à la bonne DataList.
  3. Function est reloadTable.
  4. Le paramètre DQL référence le bon composant via FX.
  5. Le nom du composant est unique et n'a pas été modifié après la configuration.

12.6 Query Fields ne s'affiche pas ou ne s'applique pas​

Vérifiez dans l'ordre :

  1. Show Filter Bar est activé.
  2. Au moins un champ a été ajouté dans Query Fields.
  3. Le champ Business Object est recherchable, filtrable, indexé ou identifiant.
  4. Operator est compatible avec le type du champ.
  5. Search intégré a été exécuté ; les valeurs vides ne participent pas à la requête.

12.7 La liste Query Form est vide​

Vérifiez que le Data Form est lié au même Business Object que DataList, que Usage Scenarios contient Query et que la version de développement courante est enregistrée. Un Data Form Create, Edit ou View ordinaire n'est pas proposé comme Query Form.

12.8 La liste des opérations de ligne est vide​

Définissez d'abord une Object Action dans le Business Object et vérifiez que DataList est liée à ce même Business Object.

12.9 La page affiche toujours d'anciennes données après une mise à jour de ligne​

Appelez reloadTable sur DataList dans la chaîne d'interactions après la réussite de l'opération. Si vous utilisez setTableData, transmettez un tableau complet d'enregistrements et non un seul enregistrement ou l'objet de réponse externe de l'API.

12.10 Preview fonctionne, mais Runtime signale une erreur d'autorisation ou d'isolation​

Vérifiez la version du Business Object publiée dans l'environnement Runtime, les autorisations de la source de données, les autorisations de données de l'utilisateur et la configuration d'isolation du modèle. N'utilisez pas les paramètres DQL du front-end pour contourner les règles d'isolation de la couche modèle.

13. Liste de contrôle de la configuration​

  • DataList est liée au bon Business Object
  • Columns contient uniquement les champs à afficher
  • Row Unique Key est stable et unique
  • La DQL a été validée et les paramètres obligatoires correspondent au besoin métier
  • Les sources FX et Target Values de DQL Parameters sont correctes
  • Fixed Filters n'exclut pas par erreur des enregistrements valides
  • L'état de Show Filter Bar correspond au besoin de la page
  • Query Fields utilise les champs, opérateurs, Placeholders et l'ordre corrects
  • Si une recherche avancée est nécessaire, Query Form est lié au même Business Object et prend en charge le scénario Query
  • Le bouton Search personnalisé de Toolbar appelle reloadTable sur la DataList actuelle
  • Les liens de colonne transmettent les bons champs de ligne
  • Row Operations lie les bons paramètres Current Row
  • Preview et Runtime ont tous deux été vérifiés

Une fois ces réglages terminés, DataList peut servir de point d'entrée fiable pour les listes de Business Objects et fonctionner avec les composants de recherche de la page, DQL et les actions métier.