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

Composite

GPComposite

Terrain

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 Value table (Table de valeurs) possède un filtre, le processus de publication tiendra 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

Type de données Composite

Dans ArcGIS Pro, il n’existe pas de véritable type de données composite ; un type de données composite correspond simplement au nom d’un paramètre comportant plusieurs types de données. Après la publication en tant que service de géotraitement, le type de données peut être converti en GPComposite, qui est un type de données réel sur le serveur. Pour convertir un type de données de paramètre en composite, vous avez besoin de ArcGIS Pro 3.2 ou version ultérieure et de ArcGIS Enterprise 11.2.

Création

Bien que le paramètre accepte différents types de données avant la publication, assurez-vous que chaque type de données peut être converti et vérifiez le type de données cible après la publication à l’aide du tableau des paramètres en entrée. Vous pouvez utiliser le filtre Composite du composite pour définir les valeurs de chaque sous-type. Le filtre est respecté lors de la publication en tant que service. Vous pouvez définir les valeurs multiples d’un composite, mais vous ne pouvez pas avoir de composite contenant d’autres valeurs multiples, un autre composite ou un autre type de données ValueTable si vous voulez ultérieurement procéder à une publication en tant que composite.

Publication

Lors de la publication avec ArcGIS Pro 3.2, utilisez la case à cocher Keep data type as Composite (Conserver le type de données Composite) sur l’onglet Content (Contenu) de la fenêtre de partage. Utilisez cette option pour déterminer si les données de paramètre du service publié sont de type composite. La case à cocher est active uniquement lorsque vous procédez à la publication sur ArcGIS Enterprise 11.2 ou version ultérieure.

Si vous procédez à la publication avec une case à cocher désélectionnée ou inactive, ou avec un script Python, les données du service du paramètre ne sont pas de type composite. Il s’agit d’un seul type de données converti basé sur la valeur fournie lors de l’exécution de l’outil avant la publication. Si vous procédez à la publication et que la case à cocher est sélectionnée, les données du service du paramètre sont de type composite. Toutes les options disponibles du mode en entrée des types de données composites s’affichent. L’une de ces options est le mode mixte qui permet de sélectionner un mode en entrée différent pour chaque type de données du paramètre. Le mode mixte n’est pas disponible si le type de données est composite à valeurs multiples ou si un filtre de niveau supérieur s’applique à tous les types de données du paramètre.

Tous les types de données composites ne peuvent pas être convertis en types de données pris en charge sur le serveur à la publication. Si un type de données ne peut pas être converti en un type de données pris en charge côté serveur, il est supprimé ou devient un type de données GPString. Si plusieurs types de données du type composite correspondent aux mêmes types de données convertis, chacun d’entre eux est converti individuellement en ce type de données. Par exemple, si un paramètre en entrée a pour type de données LAS Dataset (Jeu de données LAS), Feature Set (Jeu d’entités) et Feature Layer (Couche d’entités), il devient un composite de GPFeatureRecordSetLayer et d’un autre GPFeatureRecordSetLayer une fois publié ; en effet, le type de données LAS Dataset (Jeu de données LAS) n’est pas pris charge, et les types de données Feature Set (Jeu d’entités) et Feature Layer (Couche d’entités) sont convertis vers le même type sur le serveur.

Consommation

Vous pouvez utiliser des services avec un paramètre composite à l’aide de ArcGIS Pro 3.2 ou d’un script Python. Si vous utilisez une version antérieure de ArcGIS Pro, seul le type de données de la valeur indiquée pour le paramètre avant la publication peut être employé. Le type de données composite n’est pas pris en charge dans les applications créées dans ArcGIS Web AppBuilder ou Map Viewer Classic dans Portal for ArcGIS.

Utilisez ArcGIS Pro 3.2 pour consommer un service avec tous les types de données pris en charge du paramètre composite. Puisque certains types ne sont pas pris en charge sur le serveur, les types de données que vous pouvez utiliser sont susceptibles d’être moins nombreux qu’avant la publication. Pour vérifier les types de données pris en charge du paramètre, sélectionnez le service à partir de ArcGIS Server Connection (Connexion au serveur ArcGIS Server) dans la fenêtre Catalog (Catalogue). Cliquez avec le bouton droit sur la tâche de service et sélectionnez View Metadata (Afficher les métadonnées) pour ouvrir la fenêtre et cochez Data Type (Type de données) pour le paramètre. Services de géotraitement disponibles,

Si les filtres sont définis pour chaque type de données avant la publication, ils sont respectés à l’exécution du service. Si plusieurs types de données convertis portent le même nom et si chacun d’entre eux possède son propre filtre, la consommation du service correspond à la valeur disponible avec chaque filtre.

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 au sein du 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 Value Table (Table de valeurs)

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

Composite

GPComposite

Type de données Composite

Lors de la publication avec ArcGIS Pro 3.2, utilisez la case à cocher Keep data type as Composite (Conserver le type de données Composite) sur l’onglet Content (Contenu) de la fenêtre de partage. Utilisez cette option pour déterminer si les données de paramètre du service publié sont de type composite. La case à cocher est active uniquement lorsque vous procédez à la publication sur ArcGIS Enterprise 11.2 ou version ultérieure.

Si vous procédez à la publication avec une case à cocher désélectionnée ou inactive, ou avec un script Python, les données du service du paramètre ne sont pas de type composite. Il s’agit du seul type de données converti basé sur la valeur fournie lors de l’exécution de l’outil avant la publication. Si vous procédez à la publication et que la case à cocher est sélectionnée, les données de l’outil Web du paramètre sont de type composite.

Tous les types de données composites du paramètre ne peuvent pas être convertis en types de données pris en charge sur le serveur à la publication. Si un type de données ne peut pas être converti en un type de données pris en charge côté serveur, il est supprimé ou devient un type GPString. Si plusieurs types de données du paramètre correspondent aux mêmes types de données convertis, chacun d’entre eux est converti individuellement en ce type de données.

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é.