Paramètres en entrée et en sortie des services de géotraitement

Tous les outils réussis disposent de paramètres en entrée et en sortie. Sans paramètre en entrée, l'outil effectuerait le même traitement à chacune de ses exécutions. La modification de la valeur d'un paramètre en entrée produit un résultat différent. Les paramètres en sortie permettent à un outil de renvoyer le résultat. Le service de géotraitement qui alimente un service de géotraitement possède des règles bien définies sur les paramètres en entrée et en sortie. Ces règles, expliquées ci-dessous, garantissent que les outils appropriés au web peuvent être publiés afin que les clients puissent interagir avec eux comme prévu.

Paramètres en entrée

Lorsque vous créez un outil de géotraitement, plus de 100 types de données de paramètres uniques peuvent être utilisés pour fournir des entrées à un outil. Le choix d'un type de données sur un autre peut aider les personnes qui utilisent l'outil à fournir les entrées attendues pour votre outil. De nombreux types de données sont spécialisés et ne sont pas pris en charge au sein d'un service de géotraitement. Lorsque vous construisez un outil à utiliser en tant que service de géotraitement, il est préférable d'utiliser des types de données pris en charge. Un outil que vous créez et distribuez à des collègues peut être configuré légèrement différemment d’un outil que vous créez et qui est destiné à être publié en tant que service de géotraitement.

Les types de données pris en charge dans ArcGIS Pro sont ceux figurant dans la colonne de gauche de la table ci-dessous. Une fois publiés, ils seront convertis en types de données correspondants dans ArcGIS Enterprise.

Type de données dans ArcGIS ProType de données dans ArcGIS Enterprise

Jeu d’entités, Feature Layer (Couche d’entités)

GPFeatureRecordSetLayer

Raster Dataset (Jeu de données raster), Raster Layer (Couche raster)

GPRasterDataLayer

Record Set (Jeu d’enregistrements), Table View (Vue tabulaire)

GPRecordSet

Fichier

GPDataFile

Boolean (Booléen), Double, Long, String (Chaîne) (texte)

GPBoolean, GPDouble, GPLong, GPString

Date

GPDate

Unité linéaire

GPLinearUnit

Terrain

Terrain

Table de valeurs

GPValueTable

Champ

Un champ est une colonne dans une table qui stocke les valeurs d’un seul attribut.

Création

Pour les outils qui admettent un paramètre de champ en entrée, assurez-vous que le paramètre de champ a une dépendance envers un paramètre, tel qu’une couche d’entités ou une table.

Si vous utilisez une version comprise entre ArcGIS Pro 2.3 et ArcGIS Pro 2.9, seul le jeu d’entités et la couche d’entités en entrée sont pris en charge comme dépendance. Si vous publiez à partir de la version comprise entre ArcGIS Pro 3.0 ou ultérieure et ArcGIS Enterprise 11.0 ou ultérieure, le type de données Field (Champ) peut dépendre de tous les types de données en entrée des entités et de la table prises en charge

Exécution de l'outil

Lorsque vous exécutez l’outil avant la publication entre les versions ArcGIS Pro 2.3 et ArcGIS Pro 2.9, pour les couches d’entités dont dépendent ces paramètres de champ, sélectionnez une classe d’entités sur le disque. N’utilisez pas une couche d’entités en entrée.

À compter de ArcGIS Pro 3.0 ou ultérieure et en cas de publication vers ArcGIS Enterprise 11.0 ou ultérieure, il n’existe aucune restriction sur la façon dont vous choisissez les données en entrée. Vous pouvez utiliser une classe d’entités, une classe d’entités sur disque, une table ou une vue tabulaire pour les couches dont dépend un paramètre de champ.

Publication

Lorsque vous configurez les propriétés de l’outil, vérifiez que le paramètre Input Mode (Mode en entrée) des deux entités en entrée et des champs est défini sur User defined value (Valeur définie par l’utilisateur).

Consommation

Lorsque vous consommez le service de géotraitement dans ArcGIS Pro, tous les champs applicables sont automatiquement renseignés dans la liste déroulante une fois que vous avez sélectionné une entrée.

Remarque :

Le type de données Field (Champ) n’est pas pris en charge dans les applications créées dans ArcGIS Web AppBuilder ou Map Viewer Classic dans Portal for ArcGIS.

Table de valeurs

Une table de valeurs est un objet de type table flexible constitué de lignes et de colonnes qui contiennent différentes valeurs. Pour utiliser le type de données Value Table (Table de valeurs), vous devez disposer de ArcGIS Pro 3.0 ou version ultérieure et de ArcGIS Enterprise 11.0 ou version ultérieure. Pour en savoir plus sur ce type de donnée, voir Value Table. Les paramètres à valeurs multiples ne sont pas pris en charge dans une table de valeurs.

Création

Même si les noms de colonne d’un paramètre Value table (Table de valeurs) peuvent être vides ou en double, il est recommandé d’utiliser des noms de colonne uniques et non vides lors de la création des paramètres d’outil. Les noms de colonne uniques et non vides permettent aux utilisateurs de votre outil Web de faire la distinction entre les colonnes lorsqu’ils exécutent l’outil Web, notamment pour les colonnes ayant les mêmes types de données.

Publication

Vous pouvez publier un service de géotraitement doté d’un paramètre de table de valeurs en entrée ou en sortie avec Python. Si une colonne du paramètre de table de valeurs possède un filtre, le processus de publication tient compte du filtre.

En savoir plus sur la publication des services de géotraitement dans un script Python

Consommation

Vous pouvez utiliser un service de géotraitement doté d’un paramètre de table de valeurs avec ArcGIS Pro 3.0 ou Python. Les donnés de type table de valeurs ne sont pas prises en charge dans Web AppBuilder ou Map Viewer Classic.

Utiliser des services de géotraitement dans des scripts Python

Entrées non prises en charge

Si le paramètre que vous utilisez pour construire votre outil ne figure pas dans la liste ci-dessus, il n'est pas pris en charge pour un service de géotraitement. Lorsque vous partagez votre service de géotraitement, un paramètre non pris en charge est codé dans le service ou converti en type pris en charge. La compréhension de ces deux points vous permettra de créer un outil tout en permettant aux utilisateurs de votre outil d'interagir comme vous le souhaitez. La manière dont un type de paramètre non pris en charge est transformé dépend du paramètre. Lorsque vous partagez votre service de géotraitement, la transformation du paramètre peut être examinée à l’aide de l’option Configuring the tool properties (Configuration des propriétés de l’outil) Mise à jour de la section Content (Contenu). Les exemples suivants incluent certains des paramètres les plus courants et indiquent comment les modifier pour qu'ils fonctionnent dans un service de géotraitement.

Par exemple, le paramètre de classe d’entité prend à la fois en charge les shapefiles et les classes d’entités sur le disque. Toutefois, votre outil peut utiliser le paramètre de couche d’entités ou de jeu d’entités. Le paramètre de couche d’entités prend en charge la sélection dans une liste de couches. Cette liste de couches contient alors les couches de votre carte présentes au moment de la publication. Vous pouvez également utiliser le paramètre de jeu d'entités. Ce paramètre permet la saisie interactive des entités. Une application web qui utilise un service de géotraitement avec un jeu d'entités en entrée permet à l'utilisateur de créer des entités avec lesquelles le service interagira. Ces concepts s'appliquent également aux tables et jeux d'enregistrements. Ces méthodes permettent toutes à un utilisateur de fournir une entité en entrée. Toutefois, elles génèrent des services très différents après la publication. Votre workflow vous permettra de choisir le type de données qui convient le mieux.

Le type d’espace de travail et le type de dossier sont deux types de paramètres très utilisés qui deviennent précodés après la publication. Un processus peut utiliser un dossier ou un fichier de connexion .sde et effectuer une opération sur les éléments situés dans le dossier. Un espace de travail ne peut pas être transporté dans le service de géotraitement à partir du client. Au lieu de cela, il devient précodé dans le service publié. Cette référence précodée pointe vers un emplacement avec ces éléments référencés ou copiés, selon la configuration du stockage des données. Le service publié continue à utiliser l'espace de travail et son contenu comme il le faisait avant sa publication. La seule différence est que l'utilisateur du service ne peut pas modifier l'espace de travail.

Paramètres en sortie

Dans un processus standard, votre service de géotraitement possède au moins un paramètre en sortie. C'est par l'intermédiaire d'un paramètre en sortie qu'un service de géotraitement renvoie un résultat au client. Sans ce paramètre, le service ne peut rien renvoyer et donne l'impression d'avoir échoué. Tout comme les paramètres en entrée, les services de géotraitement ne prennent en charge qu'un sous-jeu de types de données pour les paramètres en sortie.

Conseil :
Si l’outil que vous créez n’a pas besoin d’un paramètre en sortie, car l’objectif de l’outil est d’effectuer une mise à jour ou une action à un moment défini, vous n’avez peut-être pas besoin d’un service de géotraitement. Dans ce cas, une tâche planifiée peut convenir davantage.

Les types de données en sortie pris en charge peuvent avoir un type de paramètre soit dérivé ou obligatoire et peuvent correspondre à ceux figurant dans la colonne de gauche de la table ci-dessous dans ArcGIS Pro. Une fois publiés, ils deviendront les types de données correspondants dans la colonne appropriée dans ArcGIS Enterprise.

Type de données dans ArcGIS ProType de données dans ArcGIS Enterprise

Classe d’entités

GPFeatureRecordSetLayer

Jeu de données raster

GPRasterDataLayer

Tableau

GPRecordSet

Fichier

GPDataFile

Boolean (Booléen), Double, Long, String (Chaîne) (texte)

GPBoolean, GPDouble, GPlong, GPString

Date

GPDate

Unité linéaire

GPLinearUnit

Terrain

Terrain

Table de valeurs

GPValueTable

Sorties précodées

Le point le plus important peut-être pour les paramètres est que toutes les sorties deviennent statiques pour l'utilisateur du service. Lorsqu'un service de géotraitement est utilisé dans une application bureautique ou web, aucune valeur n'est jamais fournie pour le paramètre en sortie. Ceci peut être surprenant la première fois que vous essayez d’exécuter le service, car aucune invite ne vous demande de définir le nom en sortie d’une classe d’entités. Lorsque vous partagez un service de géotraitement, le traitement qui le publie gère la sortie. Le nom en sortie qui existait au moment de l’exécution de l’outil dans ArcGIS Pro devient le nom du résultat en sortie du service. Le service gère l’écriture de la sortie dans in_memory ou dans un emplacement temporaire (scratchGDB ou scratchFolder) et renvoie la sortie au client après son exécution.

Sortie non prise en charge

Certains types de paramètres ne sont pas pris en charge dans un service de géotraitement, car ils ne peuvent pas être renvoyés au client. Les espaces de travail et types complexes, tels que les jeux de données réseau et les réseaux géométriques, en sont des exemples. Un espace de travail, par exemple, peut être un dossier, un jeu de classes d’entités ou un fichier de connexion .sde. Le service ne peut pas renvoyer de dossier ou de conteneur d'éléments. Si votre processus vous demande de renvoyer plusieurs éléments ou des éléments complexes composés de plusieurs éléments, vous pouvez être amené à compresser ces éléments et à renvoyer le fichier .zip. Si votre processus le permet, vous pouvez aussi utiliser l’outil Copier des entités et renvoyer un résultat de classe d’entités simplifié.