De par sa conception, ModelBuilder sait comment les outils modifieront des données avant que l'outil ne soit exécuté. Ce comportement est nécessaire pour pouvoir continuer à créer un workflow après avoir inclus un outil qui modifie des données. Les outils Ajouter un champ et Calculer un champ sont la meilleure illustration de ce comportement, comme le montre la figure ci-dessous. Si un nouveau champ est ajouté à l'aide de l'outil Ajouter un champ, la variable en sortie de l'outil Ajouter un champ sera mise à jour pour contenir le nouveau champ. Lorsque l'outil Calculer un champ est ouvert, il voit le nouveau champ, même si l'outil Ajouter un champ n'a pas encore été exécuté. Ce comportement est nécessaire pour pouvoir spécifier d'autres paramètres de l'outil Calculer un champ et pour que le workflow du modèle se poursuive sans exécuter en premier l'outil Ajouter un champ.
ModelBuilder est capable de lire les modifications que la plupart des outils apporteront aux données avant que l'outil soit exécuté. Cependant, les données ou valeurs dérivées de certains outils ne peuvent pas être anticipées par ModelBuilder. Dans ces cas, les données en sortie dérivées ne peuvent pas être mises à jour afin d'inclure ces changements avant l'exécution. Ces données sont considérées comme données dérivées incomplètes.
Utilisation des données dérivées incomplètes
Lorsqu'un processus crée des données dérivées incomplètes, alors que ces données dérivées doivent être injectées dans un autre processus, il existe deux moyens de contourner cette limitation :
- Saisir une valeur - Si les changements spécifiques dans les données dérivées incomplètes sont sus, les valeurs peuvent être introduites manuellement dans un paramètre dans la boîte de dialogue de l'outil.
- Exécuter un processus - Dans ModelBuilder, le processus qui crée des données dérivées incomplètes peut être exécuté individuellement. Une fois le processus exécuté, les données dérivées sont alors complètes.
Saisir une valeur
L'outil Créer une table ajoute la champ Field1 à la nouvelle table, mais ce nouveau champ n'apparaîtra pas dans la liste des champs qui peuvent être supprimés à l'aide de l'outil Supprimer un champ ; l'outil Créer une table crée des données dérivées incomplètes. A terme, le champ Field1 doit être supprimé de la table, mais il n'est pas compris dans la liste générée automatiquement des champs qui peuvent être supprimés de la table.
- Comme l'existence de Field1 dans la table est connue une fois l'outil Créer une table exécuté, ajoutez manuellement Field1 à la liste de champs à supprimer à l'aide du bouton Ajouter un champ dans la boîte de dialogue de l'outil Supprimer un champ.
- Après avoir ajouté Field1 dans la liste des champs à supprimer, un avertissement stipulant que Field1 n'existe pas s'affiche, comme illustré ci-dessous. Cet avertissement peut être ignoré, lorsque l'outil Supprimer un champ aura été exécuté, Field1 existera.
Exécution d'un processus sélectionné
- Dans ModelBuilder, vous pouvez exécuter des processus individuels. Pour ce faire, sélectionnez l'outil, cliquez avec le bouton droit, puis cliquez sur Exécuter.
Exemples d'outils générant des données dérivées incomplètes
L'outil Importer depuis un fichier d'échange lit un fichier d'échange (fichier .e00) qui contient les données de couverture. Cet outil ne peut déterminer aucun des noms de champ de jeu de données en sortie, leurs attributs ou le type de géométrie jusqu'à ce que l'outil soit exécuté. De nombreux autres outils de la boîte à outils Conversion créent également des données dérivées incomplètes.
Tous les outils de script génèrent des données dérivées incomplètes, à moins que l'outil de script ait été programmé avec une classe ToolValidator pour mettre à jour la définition de la variable de données dérivées. Pour en savoir plus, reportez-vous à la rubrique Personnalisation du comportement d'un outil de script.
L'outil Fractionner, qui crée des classes d'entités dans un espace de travail, ne connaît pas le nombre ni les noms des classes d'entités qui seront créées avant son exécution. Ces données sont considérées comme données dérivées incomplètes.
L'outil Créer une table, qui ajoute automatiquement certains champs selon le type de sortie de table (géodatabase, .dbf ou INFO) ne connaît pas les noms des champs qu'il ajoutera tant qu'il n'est pas exécuté. Ces données sont considérées comme données dérivées incomplètes.