Utiliser Survey123 avec des couches d’entités existantes

Par défaut, lorsque vous publiez une enquête dans ArcGIS Survey123 Connect, une couche d’entités est créée avec la structure de l’enquête. Vous pouvez également décider d’associer l’enquête à une couche d’entités existante.

Préparer une couche d’entités

Si vous souhaitez utiliser une couche d’entités avec Survey123, il doit s’agir d’un élément dans ArcGIS Enterprise ou dans ArcGIS Online. Cela concerne les couches d’entités hébergées et les couches d’entités publiées sur des serveurs fédérés et non fédérés.

Remarque :

Si vous souhaitez utiliser des services d’entités non fédérés, une configuration supplémentaire est requise : vous devrez créer manuellement un élément de couche d’entités dans l’organisation ArcGIS représentant le service. Pour plus d’informations, consultez cet article de la base de connaissances sur la façon de se connecter à des services ArcGIS Server non fédérés.

Le propriétaire et les utilisateurs de l’enquête doivent avoir accès à la couche d’entités et celle-ci doit être modifiable. Tenez également compte des points suivants :

  • Pour créer de nouvelles enquêtes, les utilisateurs ont besoin de la fonctionnalité Create.
  • Pour mettre à jour des enquêtes existantes, les utilisateurs ont besoin de la fonctionnalité Update sur la couche.
  • Si les utilisateurs capturent des images, un clip audio ou des fichiers, hasAttachments doit être défini sur true.

Les répétitions ne peuvent pas référencer des couches ou des tables associées, sauf si la couche ou la table enfant utilise un champ GUID pour la relation. Même s’il ne s’agit pas d’une condition requise pour les versions de ArcGIS Server prises en charge par Survey123, il est conseillé d’utiliser un champ GUID pour la relation dans la couche enfant.

Si vous prévoyez de modifier des enquêtes, veillez à ce que la couche d’entités autorise les valeurs nulles ou à ce que l’enquête utilise des champs obligatoires. Survey123 utilise des valeurs nulles lors de la mise à jour lorsqu’une réponse est supprimée et n’est pas remplacée. Par conséquent, Survey123 n’envoie pas d’enquête depuis une couche d’entités qui n’autorise pas les valeurs nulles.

Deux fonctionnalités supplémentaires doivent être définies sur true (vrai) pour la couche d’entités :

  • supportsAttachmentsByUploadId : cette fonctionnalité est automatiquement activée si les pièces jointes sont activées sur la couche d’entités. Cela permet à l’application de charger toutes les pièces jointes associées à une enquête avant d’envoyer l’enquête. En cas d’échec de chargement d’une pièce jointe, l’envoi de l’enquête est annulé, empêchant ainsi la perte de données.
  • supportsApplyEditsWithGlobalIds : la couche d’entités doit permettre l’application de mises à jour avec des ID globaux. Cela permet à l’application de créer et de gérer les ID globaux dans les entités créées (le serveur ne crée pas un nouvel ID global pour les entités créées).

Pour qu’une couche d’entités prenne en charge l’application de mises à jour avec les identifiants globaux, les exigences suivantes doivent être respectées :

  • Les couches dans la couche d’entités doivent avoir une colonne GlobalId avec un indice unique. Pour ce faire, la méthode la plus simple consiste à activer la synchronisation lors de la publication de la couche d’entités.
  • Si vous utilisez une géodatabase multi-utilisateurs, les couches peuvent utiliser le versionnement de branche ou le versionnement traditionnel. Pour plus d’informations, consultez la rubrique Types de versionnement.
  • Une couche d’entités ou une table doit contenir des ID globaux, avant l’activation de pièces jointes dans l’une ou l’autre.
  • Si la couche d’entités contient des couches prenant en charge les valeurs m, la mise à jour sans valeur m doit être activée.

Pour en savoir plus sur la prise en charge de la mise à jour dans une couche d’entités, consultez supportsApplyEditsWithGlobalIds dans la rubrique Couche (service d’entités) de la documentation d’ArcGIS REST API.

Remarque :

Survey123 prend uniquement en charge les relations GUID un vers plusieurs lors de l’utilisation de couches d’entités et tables associées existantes. Les relations un à un ne sont pas prises en charge.

Créer une enquête à partir d’une couche d’entités

Vous pouvez créer une enquête à partir d’une couche d’entités existante dans Survey123 Connect. Connectez-vous à l’organisation ArcGIS, puis cliquez sur New survey (Nouvelle enquête). Sélectionnez la catégorie Feature service (Service d’entités). Accédez à une couche d’entités et sélectionnez-la, puis cliquez sur Create survey (Créer une enquête). Une feuille XLSForm est générée à partir de la couche d’entités. Vous pouvez ensuite publier cette enquête immédiatement ou la personnaliser davantage. Par exemple, vous pouvez ajouter davantage de libellés descriptifs aux questions ou les regrouper.

Si la couche d’entités que vous avez sélectionnée possède plusieurs couches, l’enquête est générée sur la base de la première couche. Pour baser une enquête sur une autre couche de la couche d’entités, vous devez créer l’enquête manuellement et mettre à jour les propriétés form_id et submission_url sur l’onglet settings (paramètres) de la feuille de calcul. Pour plus d’informations, consultez la section Créer une enquête qui correspond à une couche d’entités ci-dessous.

Remarque :

Si l’enquête que vous créez nécessite des questions de type audio ou fichier, vous devez les ajouter manuellement à l’enquête. Une fois votre enquête générée, ouvrez sa feuille de calcul et ajoutez-y vos questions. Pour plus d’informations, reportez-vous à la rubrique Questions médias. Par ailleurs, les pièces jointes doivent être activées dans la couche d’entités.

Créer une enquête qui correspond à une couche d’entités

Vous pouvez créer manuellement une enquête qui correspond à une couche d’entités existante, mais vous devez mettre à jour les propriétés form_id et submission_url sur l’onglet settings (paramètres) de la feuille de calcul pour définir un lien entre l’enquête et l’élément de la couche d’entités dans le portail ou dans ArcGIS Online.

La propriété form_id définit explicitement le nom de la couche dans la couche d’entités utilisée par l’enquête. Pour plus d'informations, consultez cet article de la base de connaissances sur la façon de créer une enquête correspondant à un service d’entités.

La propriété submission_url est l’URL de l’élément de la couche d’entités.

URL d’envoi dans le formulaire Survey123
Conseil :

Vous devez fournir l’URL de l’élément de la couche d’entités, comme indiqué ci-dessus. Il est fréquent d’utiliser l’URL de la couche d’entités à la place, ce qui n’est pas possible.

Pour créer l’URL, vous devez concaténer l’ID de l’élément avec la racine du contenu du portail. L’exemple figurant dans l’image ci-dessus présente un lien renvoyant à un élément ArcGIS Online. Le lien vers le même élément dans un portail se présente comme suit :

https://<host>:<port>/arcgis/sharing/rest/content/items/21a6c530b31a4523bdff7gg94c9c5d9a

Si vous avez besoin d’une enquête n’exigeant que certains champs d’une couche d’entités existante, il est recommandé de générer une enquête à partir de la couche d’entités (comme décrit dans la section ci-dessus) et de supprimer les questions superflues avant de publier l’enquête. Les propriétés form_id et submission_url sont ainsi automatiquement créées.