Ajouter des pièces jointes (Gestion des données)

Synthèse

Ajoute des pièces jointes de fichier aux enregistrements d'une classe d'entités ou de table d'une géodatabase. Les pièces jointes sont stockées dans la géodatabase dans une table de pièces jointes distincte qui conserve un lien avec le jeu de données cible. Les pièces jointes sont ajoutées au jeu de données cible à l’aide d’une table d’appariement qui indique, pour chaque enregistrement en entrée (ou groupe attributaire d’enregistrements), le chemin d’accès à un fichier à ajouter en tant que pièce jointe à cet enregistrement.

Pour en savoir plus sur l'utilisation des outils de géotraitement des pièces jointes

Illustration

Illustration de l’outil Ajouter des pièces jointes

Utilisation

  • Pour que des pièces jointes puissent être ajoutées à l’aide de cet outil, elles doivent être activées à l’aide de l’outil Activer les pièces jointes.

  • Les pièces jointes ajoutées à l’aide de cet outil sont copiées dans la géodatabase. Les fichiers de pièce jointe d’origine ne sont pas affectés. Si les fichiers d’origine sont modifiés, les modifications ne sont pas apportées automatiquement à la pièce jointe de la géodatabase. Pour synchroniser les modifications apportées à la géodatabase, supprimez les pièces jointes concernées à l’aide de l’outil Supprimer des pièces jointes. Rajoutez ensuite les fichiers modifiés comme nouvelles pièces jointes.

  • Si la valeur du paramètre Jeu de données en entrée contient un champ existant qui correspond au chemin d’accès de la pièce jointe à ajouter et que vous ne souhaitez pas utiliser de valeur distincte pour le paramètre Table d’appariement, spécifiez le même jeu de données pour les paramètres Jeu de données en entrée et Table d’appariement. L'outil sélectionnera automatiquement le champ d'identifiant d'objet pour les deux champs de jointure, et vous pouvez spécifier le champ de l'entrée qui contient les chemins d'accès aux fichiers de pièce jointe.

  • Il est possible de joindre plusieurs fichiers à une seule classe d'entités ou à un seul enregistrement de table. Pour cela, assurez-vous que la valeur du paramètre Table d’appariement contient plusieurs enregistrements pour cet ID en entrée. Par exemple, l’enregistrement 1 possède l’ID en entrée 1 et le nom de chemin d’accès pic1a.jpg et l’enregistrement 2, l’ID en entrée 1 et le nom de chemin d’accès pic1b.jpg.

Paramètres

ÉtiquetteExplicationType de données
Jeu de données en entrée

Table de géodatabase ou classe d’entités dans laquelle les pièces jointes sont ajoutées. Les pièces jointes ne sont pas ajoutées directement à cette table, mais à une table de pièces jointes associée qui conserve le lien avec le jeu de données en entrée.

Le jeu de données doit être stocké dans une géodatabase version 10.0 ou ultérieure et les pièces jointes doivent être activées pour la table.

Table View
Champ de jointure en entrée

Champ provenant de la valeur du paramètre Jeu de données en entrée dont des valeurs correspondent dans la valeur du paramètre Apparier le champ de jointure. Des pièces jointes sont ajoutées aux enregistrements dont les valeurs correspondent. Ce champ peut être un champ d'identifiant d'objet ou tout autre attribut d'identification.

Field
Table d'appariement

Table identifiant les enregistrements en entrée auxquels des pièces jointes sont ajoutées, ainsi que les chemins d’accès à ces pièces jointes.

Table View
Champ de jointure apparié

Champ provenant de la valeur du paramètre Table d’appariement qui indique à quels enregistrements de la valeur du paramètre Jeu de données en entrée les pièces jointes spécifiées sont ajoutées.

Field
Champ de chemin apparié

Champ provenant de la valeur du paramètre Table d’appariement qui contient les chemins d’accès aux pièces jointes à ajouter aux enregistrements de la valeur du paramètre Jeu de données en entrée.

Champ provenant de la valeur du paramètre in_match_table qui contient les chemins d’accès aux pièces jointes à ajouter aux enregistrements de la valeur du paramètre in_dataset.

Field
Dossier de travail
(Facultatif)

Dossier ou espace de travail dans lequel les fichiers de pièce jointe sont centralisés. En spécifiant un dossier actif, les chemins d’accès de la valeur du paramètre Champ de chemin apparié peuvent être les noms courts de fichiers relatifs au dossier actif.

Par exemple, si vous chargez les pièces jointes avec des chemins d’accès tels que C:\MyPictures\image1.jpg et C:\MyPictures\image2.jpg, utilisez la valeur de paramètre C:\MyPictures. Les chemins d’accès dans la valeur du paramètre Champ de chemin apparié peuvent alors être des noms courts, tels que image1.jpg et image2.jpg, au lieu de chemins d’accès complets.

Folder

Sortie obtenue

ÉtiquetteExplicationType de données
Jeu de données en entrée mis à jour

Jeu de données en entrée mis à jour.

Table View

arcpy.management.AddAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, in_match_path_field, {in_working_folder})
NomExplicationType de données
in_dataset

Table de géodatabase ou classe d’entités dans laquelle les pièces jointes sont ajoutées. Les pièces jointes ne sont pas ajoutées directement à cette table, mais à une table de pièces jointes associée qui conserve le lien avec le jeu de données en entrée.

Le jeu de données doit être stocké dans une géodatabase version 10.0 ou ultérieure et les pièces jointes doivent être activées pour la table.

Table View
in_join_field

Champ provenant de la valeur du paramètre in_dataset dont des valeurs correspondent dans la valeur du paramètre in_match_join_field. Des pièces jointes sont ajoutées aux enregistrements dont les valeurs correspondent. Ce champ peut être un champ d'identifiant d'objet ou tout autre attribut d'identification.

Field
in_match_table

Table identifiant les enregistrements en entrée auxquels des pièces jointes sont ajoutées, ainsi que les chemins d’accès à ces pièces jointes.

Table View
in_match_join_field

Champ provenant de la valeur du paramètre in_match_table qui indique à quels enregistrements de la valeur du paramètre in_dataset les pièces jointes spécifiées sont ajoutées.

Field
in_match_path_field

Champ provenant de la valeur du paramètre Table d’appariement qui contient les chemins d’accès aux pièces jointes à ajouter aux enregistrements de la valeur du paramètre Jeu de données en entrée.

Champ provenant de la valeur du paramètre in_match_table qui contient les chemins d’accès aux pièces jointes à ajouter aux enregistrements de la valeur du paramètre in_dataset.

Field
in_working_folder
(Facultatif)

Dossier ou espace de travail dans lequel les fichiers de pièce jointe sont centralisés. En spécifiant un dossier actif, les chemins d’accès dans la valeur du paramètre in_match_path_field peuvent être les noms courts de fichiers relatifs au dossier actif.

Par exemple, si vous chargez les pièces jointes avec des chemins d’accès tels que C:\MyPictures\image1.jpg et C:\MyPictures\image2.jpg, utilisez la valeur de paramètre C:\MyPictures. Les chemins d’accès dans la valeur du paramètre in_match_path_field peuvent alors être des noms courts, tels que image1.jpg et image2.jpg, au lieu de chemins d’accès complets.

Folder

Sortie obtenue

NomExplicationType de données
out_dataset

Jeu de données en entrée mis à jour.

Table View

Exemple de code

Exemple 1 d’utilisation de la fonction AddAttachments (fenêtre Python)

L’extrait de code ci-dessous illustre l’utilisation de la fonction AddAttachments dans la fenêtre Python.

import arcpy
arcpy.management.AddAttachments(
    r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", 
    "ParcelID", "Picture", r"C:\Pictures")
Exemple 2 d’utilisation de la fonction AddAttachments (script autonome)

Le script ci-dessous illustre l’utilisation de la fonction AddAttachments dans un script autonome.

"""
Example: You have a folder of digital photographs of vacant homes; the photos
are named according to the ParcelID of the house in the picture. Add
these photos to a parcel feature class as attachments.
"""

import arcpy
import os

input = r"C:\Data\City.gdb\Parcels"
inputField = "ParcelID"
matchTable = r"C:\Data\matchtable.csv"
matchField = "ParcelID"
pathField = "Picture" 
picFolder = r"C:\Pictures"

# Create a Match Table csv file
with open(matchTable, "w") as csv:
    # write a header row (the table will have two columns: ParcelID and Picture)
    csv.write(f"{matchField},{pathField}\n")
    
    # Iterate through each picture in the directory and write a row to the table
    for file in os.listdir(picFolder):
        if file.find(".jpg") > -1:
            csv.write(f"{file.replace('.jpg', '')},{file}\n")

# The input feature class must first have GDB attachments enabled
arcpy.management.EnableAttachments(input)

# Use the match table with the Add Attachments tool
arcpy.management.AddAttachments(input, inputField, matchTable, matchField, 
                                pathField, picFolder)