Aller au contenu principal

Livrer des données initiales avec une solution

Objectif​

Faire voyager dans le paquet de la solution les lignes dont elle a besoin — données de référence, lignes de configuration, jeu d’exemples — afin que l’importation de la solution dans un environnement vide le laisse prêt à l’emploi plutôt que prêt à être rempli.

Prérequis​

  • Vous êtes connecté avec un rôle de créateur (ou d’administrateur de la plateforme).
  • La table dont les lignes doivent voyager est un composant de la solution, et les lignes existent dans l’environnement depuis lequel vous exportez.

Étapes​

  1. Ouvrez la table dans Tables et allez sur l’onglet Vues.
  2. Sélectionnez Nouveau pour ouvrir le concepteur de vues.
  3. Saisissez un nom d’affichage — par exemple Thresholds that ship — et un nom logique après le préfixe de l’éditeur, par exemple approval_threshold_seed.
  4. Définissez Type de vue sur Données initiales, et choisissez la nature des lignes dans Les lignes sont :
    • Configuration : des lignes dont la solution a besoin pour fonctionner, comme des seuils d’approbation ou une liste de régions. Chaque importation les apporte, y compris en Production.
    • Démonstration : des lignes qui mettent la solution en valeur, comme des clients inventés. Une importation ne les apporte que sur demande, et jamais en Production.
  5. Faites glisser dans l’en-tête de la grille chaque champ qui doit voyager. Laissez de côté ce qui appartient à cet environnement plutôt qu’à la ligne — un montant engagé, une date de dernière exécution, un compteur.
  6. Ajoutez un filtre si seules certaines lignes doivent voyager — par exemple Statut égal à Actif. Sans filtre, toutes les lignes voyagent.
  7. Sélectionnez Enregistrer.
  8. Exportez la solution depuis la page Solutions. Le paquet contient désormais un document de données initiales pour la table, avec les lignes renvoyées par la vue.
  9. Importez le paquet dans un autre environnement. Les lignes de configuration l’accompagnent. S’il contient des lignes de démonstration, l’importation pose d’abord la question : cochez Inclure les données de démonstration pour les apporter. À la fin de l’importation, un message indique combien de lignes ont été créées, combien ont été mises à jour, nomme celles qui ont été ignorées et précise combien de lignes de démonstration ont été laissées de côté.

La configuration vient toujours ; la démonstration seulement sur demande​

Le choix Les lignes sont de la vue Données initiales décide de ce qu’une importation fait des lignes.

ConfigurationDémonstration
C’estce dont la solution a besoin pour fonctionner : seuils, régions, paramètres lus par un scriptce qui la met en valeur : clients inventés, une année d’historique d’exemple
Une importationl’apporte toujoursne l’apporte que si Inclure les données de démonstration est coché
Productionouijamais : la case est désactivée, et la plateforme le refuse

La démonstration n’atteint jamais la Production, car des lignes importées là-bas se retrouveraient parmi celles de vos clients sans rien pour les distinguer, et la désinstallation de la solution ne les retirerait pas. La configuration l’atteint toujours, car un environnement qui en est privé ne fonctionne pas.

Ne choisissez Configuration que pour des lignes identiques partout où la solution s’exécute. Une ligne qu’un environnement modifie pour lui-même est écrasée à l’importation suivante.

Ce qui se passe en coulisses​

Une vue Données initiales n’est jamais montrée à personne : c’est une question que pose l’exportation. Son filtre répond à quelles lignes, et ses colonnes à quels champs. Une table dotée de plusieurs vues de ce type utilise celle marquée par défaut, sinon la première par nom logique.

Chaque ligne voyage avec son identifiant, et l’importation insère ou met à jour par cet identifiant : une ligne que la cible n’a pas est créée avec le même identifiant ; une ligne qu’elle a déjà est mise à jour sur les seules colonnes empaquetées, et conserve toutes ses autres valeurs. Rien n’est jamais supprimé. Comme l’identifiant est le même dans chaque environnement, une ligne initiale peut pointer vers une autre — une ligne budgétaire vers son programme — et l’importation écrit les tables dans le bon ordre pour que cela fonctionne. Une recherche pointant vers une ligne de la même table est renseignée une fois que toutes les lignes existent.

Chaque ligne passe par le chemin d’écriture ordinaire des enregistrements : elle est validée par rapport à la table, attribuée à l’importation, contrôlée par rapport aux recherches de la cible, et les étapes de plug-in de la table s’exécutent sur elle — y compris une étape apportée par la même solution.

Ce qu’une ligne initiale ne fait pas, c’est démarrer un processus métier. Un processus qui démarre à la création d’un enregistrement concerne quelqu’un qui en crée un ; une ligne initiale est l’image qu’a la solution d’une table dans l’état où elle a été laissée — une demande déjà approuvée, une autre déjà rejetée. Déclencher le processus pour chaque ligne empaquetée lancerait une exécution par ligne et laisserait la première étape du processus écraser le statut avec lequel la ligne a été livrée. Cela signifie aussi qu’une ligne initiale dans un statut d’attente n’a aucune tâche derrière elle : un paquet transporte des lignes, pas des exécutions. Si la démonstration a besoin d’une tâche active, créez un enregistrement dans l’environnement importé — celui-là sera acheminé.

Une ligne que la cible refuse — le plus souvent une recherche vers un enregistrement que la cible n’a pas — est ignorée et nommée, par table, identifiant et motif, au lieu de faire échouer l’importation. Les tables, formulaires et vues sont déjà arrivés à ce stade, et une importation qui échouerait pour une seule ligne laisserait l’environnement à moitié importé.

Certaines choses ne voyagent délibérément pas : le propriétaire (les utilisateurs sont propres à chaque locataire), les horodatages de création et de modification et la version de ligne (ils appartiennent à la cible), et les colonnes Fichier et Image (leurs octets vivent dans l’environnement source). Les colonnes de numérotation automatique sont générées par la cible.

Dépannage​

  • L’importation indique qu’une ligne a été ignorée. Lisez le motif — c’est la même phrase qu’afficherait un formulaire. Une recherche vers un enregistrement inexistant signifie qu’il manque à la cible une ligne que le paquet supposait présente ; ajoutez les lignes de cette table au paquet, ou l’enregistrement à la cible.
  • Une ligne que j’avais modifiée dans la cible a été écrasée. C’est ce que fait une nouvelle importation : les colonnes empaquetées appartiennent à la solution. Tenez les valeurs propres à un environnement à l’écart des colonnes de la vue de données initiales.
  • L’exportation refuse avec « returns N rows ». Un paquet transporte au plus 10 000 lignes par table. Restreignez le filtre de la vue — les données initiales sont des données de référence, pas un historique — ou chargez plutôt les lignes par une importation CSV.
  • Rien n’a voyagé. Vérifiez que le type de la vue est Données initiales et qu’elle se trouve sur une table que contient la solution. Si ses lignes sont en Démonstration, vérifiez que Inclure les données de démonstration était coché lors de l’importation.
  • La case Inclure les données de démonstration est grisée. L’environnement est un environnement de Production, où les données de démonstration ne sont jamais importées. Les lignes de configuration arrivent quand même.
  • Des lignes dont la solution a besoin n’ont pas atteint la Production. Leur vue Données initiales indique Démonstration. Passez-la à Configuration, exportez de nouveau la solution et importez-la.
  • La désinstallation de la solution a laissé les lignes derrière elle. Les lignes d’une table qui appartient à la solution partent avec la table. Les lignes qu’elle a ajoutées à une table appartenant à une autre solution restent, car la table reste.

Scénarios associés​