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.

En savoir plus sur l’utilisation des outils du jeu d’outils Pièces jointes

Illustration

Illustration de l’outil Ajouter des pièces jointes

Utilisation

  • Cet outil ne tient pas compte des sélections.

  • 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 suivant 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 suivant illustre l’utilisation de la fonction AddAttachments dans un script autonome.

"""
Example: We have a folder of .jpg photographs and .pdf files;
We want to add these files as attachments to our input dataset.
Create a match table, enable input dataset if needed, add attachments.
"""
import arcpy

input_dataset = r"C:\Data\City.gdb\Parcels"
input_path = arcpy.Describe(input_dataset).path

# GenerateAttachmentsMatchtable parameters
# Required
match_table = r"C:\Data\City.gdb\parcelsMatchtable"
key_field = 'PARCELS'
# Optional
data_filter ='*.jpg; *.pdf'  # Remove *.pdf to load only the .jpg images as another option.
rel_path = "RELATIVE"
match_pattern = 'ANY'
# pic_folder required for match table, optional for add attachments if rel_path is ABSOLUTE
pic_folder = r"C:\Pictures\Parcels"

arcpy.management.GenerateAttachmentMatchTable(input_dataset, pic_folder, match_table, key_field,
                                              data_filter, rel_path, match_pattern)

# Check if input dataset is enabled for attachments
rel_class = arcpy.Describe(input_dataset).relationshipClassNames
rel_class_path = (f"{input_path}\\{relclass[0]}")
rel_class_att = arcpy.Describe(relclassPath).isAttachmentRelationship

if rel_class_att:
    pass
else:
    arcpy.management.EnableAttachments(input_dataset)

# AddAttachments parameters
add_match_table = match_table
input_join_fld = 'ObjectID'
match_join_fld = 'MatchID'
match_path_fld = 'Filename'

# Add attachments from generated match table to input data ATTACH table
arcpy.management.AddAttachments(input_dataset, input_join_fld, add_match_table,
                                match_join_fld, match_path_fld, pic_folder)

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes