---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Classe NowAttachmentService : iOS

# Classe NowAttachmentService : iOS {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 32 minutes de lecture

La classe NowAttachmentService fournit des fonctions qui vous permettent de charger et d'interroger des pièces jointes associées à des enregistrements au sein d'une table sur une ServiceNow instance.
Vous pouvez charger ou récupérer un seul fichier à chaque demande. NowAttachmentService respecte toutes les limitations du système sur les fichiers chargés, telles que la taille maximale du fichier et les types de pièces jointes autorisés. Vous pouvez contrôler ces paramètres à l'aide des propriétés d'instance com.glide.attachment.max_size, 1024 Mo par défaut, et glide.attachment.extensions.  
Remarque :  
DésormaisAttachmentService accepte toutes les valeurs de type de contenu (/). Spécifiez le type de contenu du fichier lors du chargement d'une pièce jointe. Le type de contenu est stocké avec les métadonnées du fichier, ce qui permet à d'autres outils d'identifier et d'analyser correctement le fichier.
{#NowAttachmentServiceiOSAPI__table_vx2_klw_5pb__entry__3}

| Nom | Type | Description |
|-|-|-|
| configuration | [Configuration Now ServiceConfiguration](https://servicenow-prod.fluidtopics.net/V01HrOtfNsIM7_JMqFBMSg#NowServiceConfigurationiOSStruct "La structure NowServiceConfiguration définit les informations de configuration d’un service d’fonctionnalités.") | Paramètres de configuration fournis lors de l'initialisation du service. |
[Tableau 1. Propriétés]

{#NowAttachmentServiceiOSAPI__table_vx2_klw_5pb}

## NowAttachmentService : pièce jointe (pour sysId : chaîne, validateAttachment : booléen) Levées asynchrones {#ariaid-title2}

Récupère la pièce jointe avec le sys_id spécifié et valide la pièce jointe en comparant le hachage calculé de la pièce jointe à la somme de contrôle SHA256 attendue.
Remarque :  
La validation d'une pièce jointe peut avoir un impact sur les performances. Vous pouvez ignorer l'étape de validation en définissant le validateAttachment paramètre sur `faux`. Vous pouvez valider la pièce jointe ultérieurement si nécessaire en appelant la fonction Attachment.validate().
{#NAttServiOS-attachment-async_S_B_O__table_dqr_hmx_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| pour sysId | Chaîne | Sys_id de la pièce jointe à récupérer. |
| validateAttachment | Booléen | Marqueur indiquant s'il faut valider la pièce jointe. Valeurs valides : * vrai : validez la pièce jointe. * faux : ne pas valider la pièce jointe. Valeur par défaut : true |
[Tableau 2. Paramètres]

{#NAttServiOS-attachment-async_S_B_O__table_dqr_hmx_spb} {#NAttServiOS-attachment-async_S_B_O__table_eqr_hmx_spb__entry__2}

| Type | Description |
|-|-|
| Pièce jointe Now | Renvoyé lorsque la méthode réussit. Pièce jointe spécifiée. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue. * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachment-async_S_B_O__NowDataErroriOS-ul-enum} |
[Tableau 3. Renvoie]

{#NAttServiOS-attachment-async_S_B_O__table_eqr_hmx_spb}  
Les exemples de code suivants montrent comment appeler cette méthode.

    func downloadAttachment(sysId: String) async throws -> NowAttachment {
        do {
            let nowAttachment = try await attachmentService.attachment(for: sysId, validateAttachment: false)
            return nowAttachment
        } catch {
            // Handle NowDataError
            throw error
        }
    }

## NowAttachmentService : pièce jointe (pour sysId : chaîne, validateAttachment : booléen, complétion : @escaping (Result\<NowAttachment, NowDataError\>)) {#ariaid-title3}

Récupère la pièce jointe avec le sys_id spécifié et valide la pièce jointe en comparant le hachage calculé de la pièce jointe à la somme de contrôle SHA256 attendue. Une fois terminé, il exécute le gestionnaire de complétion réussi.
Remarque :  
La validation d'une pièce jointe peut avoir un impact sur les performances. Vous pouvez ignorer l'étape de validation en définissant le validateAttachment paramètre sur `faux`. Vous pouvez valider la pièce jointe ultérieurement si nécessaire en appelant la fonction Attachment.validate().
{#NAttServiOS-attachment_S_B_O__table_dqr_hmx_spb__entry__3}{#NAttServiOS-attachment_S_B_O__mobilesdkiOS-completion_data_dataerror-row}

| Nom | Type | Description |
|-|-|-|
| pour sysId | Chaîne | Sys_id de la pièce jointe à récupérer. |
| validateAttachment | Booléen | Marqueur indiquant s'il faut valider la pièce jointe. Valeurs valides : * vrai : validez la pièce jointe. * faux : ne pas valider la pièce jointe. {#NAttServiOS-attachment_S_B_O__ul_ftq_1q5_4pb} Valeur par défaut : true |
| achèvement | @escaping (Result\<[NowAttachment](https://servicenow-prod.fluidtopics.net/0osAK6EdFnbjdTuUrSnQhA#NowAttachmentiOSStructure "La structure NowAttachment fournit des fonctions qui vous permettent de valider les pièces jointes en comparant leur hachage calculé."), NowDataError\>) | Gestionnaire de complétion à exécuter après la récupération de la pièce jointe. Valeurs de retour pour le gestionnaire de complétion : * Réussite : [NowAttachment](https://servicenow-prod.fluidtopics.net/0osAK6EdFnbjdTuUrSnQhA#NowAttachmentiOSStructure "La structure NowAttachment fournit des fonctions qui vous permettent de valider les pièces jointes en comparant leur hachage calculé.") : pièce jointe demandée * Échec : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachment_S_B_O__NowDataErroriOS-ul-enum} {#NAttServiOS-attachment_S_B_O__ul_uzx_thj_ppb} |
[Tableau 4. Paramètres]

{#NAttServiOS-attachment_S_B_O__table_dqr_hmx_spb} {#NAttServiOS-attachment_S_B_O__table_eqr_hmx_spb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 5. Renvoie]

{#NAttServiOS-attachment_S_B_O__table_eqr_hmx_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let sysId = UUID().uuidString  // UUID for the attachment
    private func downloadAttachment(sysId: String) {
      attachmentService.attachment(for: sysId, validateAttachment: false) { (result) in
        switch result {
          case .success(let attachment):
            // Attachment retrieved successful, return attachment
          case .failure(let error):
            // Attachment retrieved failed, return NowDataError
        }
      }
    }

## NowAttachmentService : pièce jointe (pour sysId : chaîne, validateAttachment : booléen) {#ariaid-title4}

Récupère la pièce jointe avec le sys_id spécifié et valide la pièce jointe en comparant le hachage calculé de la pièce jointe au hachage attendu.
Remarque :  
La validation d'une pièce jointe peut avoir un impact sur les performances. Vous pouvez ignorer l'étape de validation en définissant le validateAttachment paramètre sur `faux`. Si nécessaire, vous pouvez valider la pièce jointe ultérieurement en appelant la fonction Attachment.validate().  
Remarque :  
Cette méthode a été déconseillée. Vous devez utiliser l'implémentation async/await de la méthode à la place.
{#NAttServiOS-attachment_S_B__table_w4s_d3s_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| pour sysId | Chaîne | Sys_id de la pièce jointe à récupérer. |
| validateAttachment | Booléen | Marqueur indiquant s'il faut valider la pièce jointe. Valeurs valides : * vrai : validez la pièce jointe. * false : ne validez pas la pièce jointe. {#NAttServiOS-attachment_S_B__ul_ftq_1q5_4pb} Valeur par défaut : true |
[Tableau 6. Paramètres]

{#NAttServiOS-attachment_S_B__table_w4s_d3s_spb} {#NAttServiOS-attachment_S_B__table_x4s_d3s_spb__entry__2}

| Type | Description |
|-|-|
| AnyPublisher\<[NowAttachment](https://servicenow-prod.fluidtopics.net/0osAK6EdFnbjdTuUrSnQhA#NowAttachmentiOSStructure "La structure NowAttachment fournit des fonctions qui vous permettent de valider les pièces jointes en comparant leur hachage calculé."), NowDataError\> | Réussite : [NowAttachment](https://servicenow-prod.fluidtopics.net/0osAK6EdFnbjdTuUrSnQhA#NowAttachmentiOSStructure "La structure NowAttachment fournit des fonctions qui vous permettent de valider les pièces jointes en comparant leur hachage calculé.") : contient la pièce jointe spécifiée. Échec : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachment_S_B__NowDataErroriOS-ul-enum} |
[Tableau 7. Renvoie]

{#NAttServiOS-attachment_S_B__table_x4s_d3s_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let sysId = UUID().uuidString  // UUID for the attachment
    private func downloadAttachment(sysId: String) {
      let publisher = self.attachmentService.attachment(for: sysId, validateAttachment: false)
      publisher
        .receive(on: DispatchQueue.main)
        .sink { [weak self] completion in
          if case let .failure(error) = completion {
            // Attachment retrieved failed, return NowDataError
          }
        } receiveValue: { [weak self] (attachment) in
          // Attachment retrieved successful, return attachment
        }
        .store(in: &subscriptions)
    }

## NowAttachmentService : attachmentMetadata(filter : Filter, limit : Int) Lèvements asynchrones {#ariaid-title5}

Récupère les métadonnées de toutes les pièces jointes qui répondent aux critères spécifiés.
{#NAttServiOS-attachMeta-async_S_I_O__table_tcn_cfs_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| filtre | [Filtrer](https://servicenow-prod.fluidtopics.net/xT0wQvHlnDkAIfw88PCX0A#FilteriOSStructure "La structure de filtre permet de configurer des filtres qui définissent les données à renvoyer dans les résultats renvoyés d’une requête de point de terminaison REST.") | Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent être renvoyées. Par défaut : néant : renvoie les métadonnées de toutes les pièces jointes disponibles. Prend en considération le limit paramètre. |
| limite | Entier | Facultatif. Nombre maximal de métadonnées du fichier de pièce jointe à renvoyer. Par défaut : nul : renvoie toutes les métadonnées qui répondent aux spécifications du filter paramètre. |
[Tableau 8. Paramètres]

{#NAttServiOS-attachMeta-async_S_I_O__table_tcn_cfs_spb} {#NAttServiOS-attachMeta-async_S_I_O__table_ucn_cfs_spb__entry__2}

| Type | Description |
|-|-|
| \[NowAttachmentMetadata\] | Renvoyé lorsque la méthode réussit. Tableau contenant les métadonnées des pièces jointes correspondantes. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue. * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachMeta-async_S_I_O__NowDataErroriOS-ul-enum} |
[Tableau 9. Renvoie]

{#NAttServiOS-attachMeta-async_S_I_O__table_ucn_cfs_spb}  
Les exemples de code suivants montrent comment appeler cette méthode.

    let filter = Filter(criteria: [], sortBy: [.desc("created")],
                 queryCategory: nil)
    do {
        let metadata = try await attachmentService.attachmentMetadata(filter: filter, limit: 10)
        // Metadata retrieval successful
    } catch {
        // Metadata retrieval failed, NowDataError thrown
    }

## NowAttachmentService : attachmentMetadata(filter : Filter, limit : Int, completion : @escaping (Result\<\[NowAttachmentMetadata\], NowDataError\>)) {#ariaid-title6}

Récupère les métadonnées de toutes les pièces jointes qui répondent aux critères spécifiés.
{#NAttServiOS-attachMetadata_S_I_O__table_tcn_cfs_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| filtre | [Filtrer](https://servicenow-prod.fluidtopics.net/xT0wQvHlnDkAIfw88PCX0A#FilteriOSStructure "La structure de filtre permet de configurer des filtres qui définissent les données à renvoyer dans les résultats renvoyés d’une requête de point de terminaison REST.") | Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent être renvoyées. Par défaut : néant : renvoie les métadonnées de toutes les pièces jointes disponibles. Prend en considération le limit paramètre. |
| limite | Entier | Facultatif. Nombre maximal de métadonnées du fichier de pièce jointe à renvoyer. Par défaut : nul : renvoie toutes les métadonnées qui répondent aux spécifications du filter paramètre. |
| achèvement | @escaping (résultat\<\[[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe.")\], NowDataError\>) | Gestionnaire de complétion à exécuter une fois les métadonnées récupérées. Valeurs de retour pour le gestionnaire de complétion : * Réussite : NowAttachmentMetadata : objets contenant les métadonnées demandées. * Erreur : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachMetadata_S_I_O__NowDataErroriOS-ul-enum} {#NAttServiOS-attachMetadata_S_I_O__ul_uzx_thj_ppb} |
[Tableau 10. Paramètres]

{#NAttServiOS-attachMetadata_S_I_O__table_tcn_cfs_spb} {#NAttServiOS-attachMetadata_S_I_O__table_ucn_cfs_spb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 11. Renvoie]

{#NAttServiOS-attachMetadata_S_I_O__table_ucn_cfs_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let query = "active=true^short_descriptionLIKEbroken"
    let filter = Filter(query: query)
    attachmentService.attachmentMetadata(filter: filter, limit: limit) { (result) in
      DispatchQueue.main.async { [weak self] in
        switch result {
        case .success(let response):
          do {
            let data = try JSONEncoder().encode(response)
            // Retrieve metadata successfully, return data
          } catch {
            // Retrieve metadata failed, return error 
          }
        case .failure(let error):
          // Retrieve metadata failed, return NowDataError
        }	
      }
    }

## NowAttachmentService : attachmentMetadata(filter : Filter, limit : Int) {#ariaid-title7}

Récupère les métadonnées de toutes les pièces jointes qui répondent aux critères spécifiés.
Remarque :  
Cette méthode a été déconseillée. Vous devez utiliser l'implémentation async/await de la méthode à la place.
{#NAttServiOS-attachMetadata_S_I__table_ahv_32s_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| filtre | [Filtrer](https://servicenow-prod.fluidtopics.net/xT0wQvHlnDkAIfw88PCX0A#FilteriOSStructure "La structure de filtre permet de configurer des filtres qui définissent les données à renvoyer dans les résultats renvoyés d’une requête de point de terminaison REST.") | Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent être renvoyées. Par défaut : néant : renvoie les métadonnées de toutes les pièces jointes disponibles. Prend en considération le limit paramètre. |
| limite | Entier | Facultatif. Nombre maximal de métadonnées du fichier de pièce jointe à renvoyer. Par défaut : nul : renvoie toutes les métadonnées qui répondent aux spécifications du filter paramètre. |
[Tableau 12. Paramètres]

{#NAttServiOS-attachMetadata_S_I__table_ahv_32s_spb} {#NAttServiOS-attachMetadata_S_I__table_bhv_32s_spb__entry__2}

| Type | Description |
|-|-|
| AnyPublisher\<\[[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe.")\], NowDataError\> | Réussite : NowAttachmentMetadata : objets qui contiennent les métadonnées des pièces jointes correspondantes. Échec : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachMetadata_S_I__NowDataErroriOS-ul-enum} |
[Tableau 13. Renvoie]

{#NAttServiOS-attachMetadata_S_I__table_bhv_32s_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let query = "active=true^short_descriptionLIKEbroken"
    let filter = Filter(query: query)
    let publisher = self.attachmentService.attachmentMetadata(filter: filter)
    publisher
      .receive(on: DispatchQueue.main)
      .encode(encoder: JSONEncoder())
      .sink { [weak self] completion in
        if case let .failure(error) = completion {
          // Retrieve metadata failed, return NowDataError
      } receiveValue: { [weak self] (data) in
         // Retrieve metadata successfully, return data
      }
    .store(in: &subscriptions

## NowAttachmentService : attachmentMetadata(pour sysId : chaîne) Levées asynchrones {#ariaid-title8}

Récupère les métadonnées de la pièce jointe associée au sys_id spécifié.
{#NAttServiOS-attachMeta-async_S_O__table_ldt_3hs_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| pour sysId | Chaîne | Sys_id de la pièce jointe dont les métadonnées doivent être récupérées. |
[Tableau 14. Paramètres]

{#NAttServiOS-attachMeta-async_S_O__table_ldt_3hs_spb} {#NAttServiOS-attachMeta-async_S_O__table_mdt_3hs_spb__entry__2}

| Type | Description |
|-|-|
| NowAttachmentMetadata (en anglais seulement) | Renvoyé lorsque la méthode réussit. Métadonnées pour la pièce jointe demandée. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue. * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachMeta-async_S_O__NowDataErroriOS-ul-enum} |
[Tableau 15. Renvoie]

{#NAttServiOS-attachMeta-async_S_O__table_mdt_3hs_spb}  
Les exemples de code suivants montrent comment appeler cette méthode.

    do {
        let metadata = try await attachmentService.attachmentMetadata(for: sysId)
        // Metadata retrieval successful
    } catch {
        // Metadata retrieval failed, NowDataError thrown
    }

## NowAttachmentService : attachmentMetadata(for sysId : chaîne, complétion : @escaping (Result\<NowAttachmentMetadata, NowDataError\>)) {#ariaid-title9}

Récupère les métadonnées de la pièce jointe associée à la sys_id spécifiée, puis exécute le gestionnaire de complétion une fois les métadonnées récupérées.
{#NAttServiOS-attachMetadata_S_O__table_ldt_3hs_spb__entry__3}{#NAttServiOS-attachMetadata_S_O__mobilesdkiOS-completion_data_dataerror-row}

| Nom | Type | Description |
|-|-|-|
| pour sysId | Chaîne | Sys_id de la pièce jointe dont les métadonnées doivent être récupérées. |
| achèvement | @escaping (Result\<[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe."), NowDataError\>) | Gestionnaire de complétion à exécuter une fois les métadonnées récupérées. Valeurs de retour pour le gestionnaire de complétion : * Réussite : [NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe.") : métadonnées demandées * Échec : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachMetadata_S_O__NowDataErroriOS-ul-enum} {#NAttServiOS-attachMetadata_S_O__ul_uzx_thj_ppb} |
[Tableau 16. Paramètres]

{#NAttServiOS-attachMetadata_S_O__table_ldt_3hs_spb} {#NAttServiOS-attachMetadata_S_O__table_mdt_3hs_spb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 17. Renvoie]

{#NAttServiOS-attachMetadata_S_O__table_mdt_3hs_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let sysId = UUID().uuidString  // UUID for the attachment
    attachmentService.attachmentMetadata(for: sysId) { (result) in
      DispatchQueue.main.async { [weak self] in
        switch result {
          case .success(let response):
            do {
              let data = try JSONEncoder().encode(response)
              // Retrieve metadata successfully, return data
            } catch {
              // Retrieve metadata failed, return error      
            }
          case .failure(let error):
            // Retrieve metadata failed, return NowDataError
        }	
      }
    }

## NowAttachmentService : attachmentMetadata(pour sysId : chaîne) {#ariaid-title10}

Récupère les métadonnées de la pièce jointe associée au sys_id spécifié.
Remarque :  
Cette méthode a été déconseillée. Vous devez utiliser l'implémentation async/await de la méthode à la place.
{#NAttServiOS-attachMetadata_S__table_shc_ngs_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| pour sysId | Chaîne | Sys_id de la pièce jointe dont les métadonnées doivent être récupérées. |
[Tableau 18. Paramètres]

{#NAttServiOS-attachMetadata_S__table_shc_ngs_spb} {#NAttServiOS-attachMetadata_S__table_thc_ngs_spb__entry__2}

| Type | Description |
|-|-|
| AnyPublisher\<\[[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe.")\], NowDataError\> | Réussite : NowAttachmentMetadata : objet qui contient les métadonnées de la pièce jointe demandée. Échec : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachMetadata_S__NowDataErroriOS-ul-enum} |
[Tableau 19. Renvoie]

{#NAttServiOS-attachMetadata_S__table_thc_ngs_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let sysId = UUID().uuidString  // UUID for the attachment
    let publisher = self.attachmentService.attachmentMetadata(for: sysId)
    publisher
      .receive(on: DispatchQueue.main)
      .encode(encoder: JSONEncoder())
      .sink { [weak self] completion in
        if case let .failure(error) = completion {
          // Retrieve metadata failed, return NowDataError
        }
      } receiveValue: { [weak self] (data) in
         // Retrieve metadata successfully, return data
      }
    .store(in: &subscriptions)

## NowAttachmentService : attachmentMetadataPaginator(filter : Filter, limit : Int) {#ariaid-title11}

Récupère les métadonnées de toutes les pièces jointes qui répondent aux critères spécifiés et renvoie un objet Paginator pour itération à travers les pages des métadonnées renvoyées.
{#NAttServiOS-attachMetadataPag_S_I__table_tqh_dcs_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| filtre | [Filtrer](https://servicenow-prod.fluidtopics.net/xT0wQvHlnDkAIfw88PCX0A#FilteriOSStructure "La structure de filtre permet de configurer des filtres qui définissent les données à renvoyer dans les résultats renvoyés d’une requête de point de terminaison REST.") | Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent être renvoyées. Par défaut : néant : renvoie les métadonnées de toutes les pièces jointes disponibles. Prend en considération le limit paramètre. |
| limite | Entier | Facultatif. Nombre maximal de métadonnées du fichier de pièce jointe à renvoyer. Par défaut : nul : renvoie toutes les métadonnées qui répondent aux spécifications du filter paramètre. |
[Tableau 20. Paramètres]

{#NAttServiOS-attachMetadataPag_S_I__table_tqh_dcs_spb} {#NAttServiOS-attachMetadataPag_S_I__table_uqh_dcs_spb__entry__2}

| Type | Description |
|-|-|
| [Paginator](https://servicenow-prod.fluidtopics.net/4lx_VkdPLM4vdP7m2woCeQ#PaginatorIOSAPI "La classe Paginator fournit des méthodes d’itération à travers un ensemble d’enregistrements renvoyé par un appel à l’API ServiceNow de table via NowTableService. C’est l’objet qui est renvoyé par les méthodes paginator() NowTableService. N’appelez pas cette méthode en dehors de cet environnement.")\<\[[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe.")\]\> | Réussite : tableau d'objets NowAttachmentMetadata. Échec : objet NowDataError. * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-attachMetadataPag_S_I__NowDataErroriOS-ul-enum} |
[Tableau 21. Renvoie]

{#NAttServiOS-attachMetadataPag_S_I__table_uqh_dcs_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let paginator: Paginator<T> = makePaginator(query: query, fetchLimit: 1)

    func makePaginator(query: String, fetchLimit: Int?) -> Paginator<[NowAttachmentMetadata]> {
      attachmentsService.attachmentMetadataPaginator(filter: Filter(query: query), limit: fetchLimit)
    }

## NowAttachmentService : delete(sysId : String) lèvements asynchrones {#ariaid-title12}

Supprime la pièce jointe avec le sys_id spécifié.
{#NAttServiOS-delete-async_S_O__table_e5b_zqx_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| sysId | Chaîne | Sys_id de la pièce jointe à supprimer. |
[Tableau 22. Paramètres]

{#NAttServiOS-delete-async_S_O__table_e5b_zqx_spb} {#NAttServiOS-delete-async_S_O__table_f5b_zqx_spb__entry__2}

| Type | Description |
|-|-|
| Aucun | Rien n'est retourné si la méthode a réussi. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue. * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-delete-async_S_O__NowDataErroriOS-ul-enum} |
[Tableau 23. Renvoie]

{#NAttServiOS-delete-async_S_O__table_f5b_zqx_spb}  
Les exemples de code suivants montrent comment appeler cette méthode.

    do {
        try await attachmentService.delete(sysId: sysId)
        // Deletion successful
    } catch {
        // Deletion failed, NowDataError thrown
    }

## NowAttachmentService : delete(sysId : chaîne, complétion : @escaping (Result\<Void, NowDataError\>)) {#ariaid-title13}

Supprime la pièce jointe avec le sys_id spécifié, puis exécute le gestionnaire de complétion réussi une fois la pièce jointe supprimée.
{#NAttServiOS-delete_S_O__table_e5b_zqx_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| sysId | Chaîne | Sys_id de la pièce jointe à supprimer. |
| achèvement | @escaping (résultat\<vide, NowDataError\>) | Gestionnaire de complétion à exécuter après la suppression de la pièce jointe. Valeurs de retour pour le gestionnaire de complétion : * Réussite : nul * Erreur : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-delete_S_O__NowDataErroriOS-ul-enum} |
[Tableau 24. Paramètres]

{#NAttServiOS-delete_S_O__table_e5b_zqx_spb} {#NAttServiOS-delete_S_O__table_f5b_zqx_spb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 25. Renvoie]

{#NAttServiOS-delete_S_O__table_f5b_zqx_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let sysId = UUID().uuidString  // UUID for the attachment
    attachmentService.delete(sysId: sysId) { (result) in
      DispatchQueue.main.async { [weak self] in
        switch result {
          case .success:
            // Attachment with sysId is deleted
          case .failure(let error):
            // Failed to delete, with NowDataError
        }
      }
    }

## NowAttachmentService : delete(sysId : chaîne) {#ariaid-title14}

Supprime la pièce jointe avec le sys_id spécifié.
Remarque :  
Cette méthode a été déconseillée. Vous devez utiliser l'implémentation async/await de la méthode à la place.
{#NAttServiOS-delete_S__table_svp_2qx_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| sysId | Chaîne | Sys_id de la pièce jointe à supprimer. |
[Tableau 26. Paramètres]

{#NAttServiOS-delete_S__table_svp_2qx_spb} {#NAttServiOS-delete_S__table_tvp_2qx_spb__entry__2}

| Type | Description |
|-|-|
| AnyPublisher\<Void, NowDataError\> | Réussite : aucun retour Échec : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-delete_S__NowDataErroriOS-ul-enum} |
[Tableau 27. Renvoie]

{#NAttServiOS-delete_S__table_tvp_2qx_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    let publisher = attachmentService.delete(sysId: sysId)
    publisher
      .receive(on: DispatchQueue.main)
      .sink { [weak self] completion in
        switch completion {
          case .finished:
            // Attachment with sysId is deleted
          case .failure(let error):
           // Failed to delete, with NowDataError
       }
     } receiveValue: {
     }
     .store(in: &subscriptions)

## NowAttachmentService : init(configuration : NowServiceConfiguration, coreServiceProvider : NowCoreServiceProviding) {#ariaid-title15}

Initialise une nouvelle instance NowAttachmentService.
{#NAttServiOS-init_O_O__table_hfm_ry2_tpb__entry__3}

| Nom | Type | Description |
|-|-|-|
| configuration | [Configuration Now ServiceConfiguration](https://servicenow-prod.fluidtopics.net/V01HrOtfNsIM7_JMqFBMSg#NowServiceConfigurationiOSStruct "La structure NowServiceConfiguration définit les informations de configuration d’un service d’fonctionnalités.") | Informations de configuration nécessaires pour initialiser correctement le service. |
| coreServiceProvider (en anglais seulement) | NowCoreServiceProviding | Facultatif. Objet implémentant le protocole NowCoreServiceProviding Par défaut : nul |
[Tableau 28. Paramètres]

{#NAttServiOS-init_O_O__table_hfm_ry2_tpb}  
L'exemple de code suivant montre comment appeler cette fonction.

    guard let coreService = NowSDK.core() else {
      // Error with NowServiceError.sdkNotConfigured
      return
    }
    guard 
      let instanceUrl = URL(string: "http://sample.service-now.com"), 
      let serviceConfig = NowSDK.makeServiceConfiguration(for: instanceUrl) else {
        // Could not create service -- 
        // NowServiceError.serviceConfigurationInvalid
        return
    }
    let attachmentService = NowAttachmentService(configuration: serviceConfig, coreServiceProvider: coreService)

## NowAttachmentService : upload(data : Data, configuration : NowAttachmentUploadConfiguration, progressUpdate : @escaping ProgressUpdate) Levées asynchrones {#ariaid-title16}

Charge les données de la pièce jointe et les joint à un enregistrement dans une table comme spécifié dans la configuration du chargement.
Le rappel ProgressUpdate fournit des informations sur la progression du chargement que vous pouvez ensuite utiliser pour fournir des commentaires sur l'interface utilisateur.
{#NAttServiOS-upload-async_O_O_O_O__table_n5z_mpx_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| données | Données | Pièce jointe à télécharger. |
| configuration | [NowAttachmentUpload Configuration](https://servicenow-prod.fluidtopics.net/NknFQVD2MmF0QZo2~UXysw#NowAttachUploadConfigiOSStruct "La structure NowAttachmentUploadConfiguration vous permet de définir les informations de configuration d’une pièce jointe que vous chargez sur votre ServiceNow instance.") | Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que : * Table et enregistrement auquel joindre le fichier * Nom de fichier de la pièce jointe * Type de pièce jointe * Indique si le fichier est chiffré |
| progressUpdate | @escaping ProgressUpdate | Gestionnaire de complétion à exécuter après la récupération de la pièce jointe. Ceci est appelé plusieurs fois jusqu'à ce que le processus de téléchargement soit terminé. Valeurs de retour pour le gestionnaire de complétion : ProgressUpdate : renvoie la progression actuelle du chargement. `ProgressUpdate = (_bytesWritten : Int64, _totalBytesWritten : Int64, _totalBytesExpectedToWrite : Int64) -> Nul` |
[Tableau 29. Paramètres]

{#NAttServiOS-upload-async_O_O_O_O__table_n5z_mpx_spb} {#NAttServiOS-upload-async_O_O_O_O__table_o5z_mpx_spb__entry__2}

| Type | Description |
|-|-|
| NowAttachmentMetadata (en anglais seulement) | Renvoyé lorsque la méthode réussit. Objet contenant les métadonnées chargées. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue. * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-upload-async_O_O_O_O__NowDataErroriOS-ul-enum} |
[Tableau 30. Renvoie]

{#NAttServiOS-upload-async_O_O_O_O__table_o5z_mpx_spb}  
Les exemples de code suivants montrent comment appeler cette méthode.

    func uploadFile(for tableName: String, sysId: String, mimeType: String, encryptionContext: String?, data: Data, filename: String) async throws -> NowAttachmentMetadata { 

        let mimeType = MediaUtilities.mimeType(forFileName: filename)
        let uploadConfig = NowAttachmentUploadConfiguration(tableName: tableName, 
                                                            recordSysId: sysId,
                                                            fileName: filename,
                                                            contentType: mimeType,
                                                            encryptionContext: encryptionContext) 

        do {
            let attachmentMetadata = try await attachmentService.upload(data: data, configuration: uploadConfig) { (_, _, _) in }
            return attachmentMetadata
        } catch {
            // Handle NowDataError
            throw error
        }
    }

## NowAttachmentService : upload(données : données, configuration : NowAttachmentUploadConfiguration, progressUpdate : @escaping ProgressUpdate, achèvement : @escaping (Result\<NowAttachmentMetadata, NowDataError\>)) {#ariaid-title17}

Charge les données de la pièce jointe et les joint à un enregistrement dans une table comme spécifié dans la configuration du chargement.
Le rappel ProgressUpdate fournit des informations sur la progression du chargement que vous pouvez ensuite utiliser pour fournir des commentaires sur l'interface utilisateur.
{#NAttServiOS-upload_O_O_O_O__table_n5z_mpx_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| données | Données | Pièce jointe à télécharger. |
| configuration | [NowAttachmentUpload Configuration](https://servicenow-prod.fluidtopics.net/NknFQVD2MmF0QZo2~UXysw#NowAttachUploadConfigiOSStruct "La structure NowAttachmentUploadConfiguration vous permet de définir les informations de configuration d’une pièce jointe que vous chargez sur votre ServiceNow instance.") | Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que : * Table et enregistrement auquel joindre le fichier * Nom de fichier de la pièce jointe * Type de pièce jointe * Indique si le fichier est chiffré |
| progressUpdate | @escaping ProgressUpdate | Gestionnaire de complétion à exécuter après la récupération de la pièce jointe. Ceci est appelé plusieurs fois jusqu'à ce que le processus de téléchargement soit terminé. Valeurs de retour pour le gestionnaire de complétion : ProgressUpdate : renvoie la progression actuelle du chargement. `ProgressUpdate = (_bytesWritten : Int64, _totalBytesWritten : Int64, _totalBytesExpectedToWrite : Int64) -> Nul` |
| achèvement | @escaping (Result\<[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe."), NowDataError\>) | Gestionnaire de complétion à exécuter une fois les métadonnées chargées. Valeurs de retour pour le gestionnaire de complétion : * Réussite : [NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe.") : objet contenant les métadonnées de la pièce jointe chargée. * Erreur : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-upload_O_O_O_O__NowDataErroriOS-ul-enum} |
[Tableau 31. Paramètres]

{#NAttServiOS-upload_O_O_O_O__table_n5z_mpx_spb} {#NAttServiOS-upload_O_O_O_O__table_o5z_mpx_spb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 32. Renvoie]

{#NAttServiOS-upload_O_O_O_O__table_o5z_mpx_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    typealias ProgressUpdate = (_ bytesWritten: Int64, _ totalBytesWritten: Int64, _ totalBytesExpectedToWrite: Int64) -> Void

    let image = UIImage(named: "photo.png") 
    let data = image.pngData() 
    let recordSysId = "" // Sys_id of the record on the SN instance

    let config = NowAttachmentUploadConfiguration(
      tableName: "tableName", 
      recordSysId: recordSysId, 
      fileName: "photo.png",
      contentType: "image/png",
      encryptionContext: nil)

    private func uploadFile(
      data: Data,
      config: NowAttachmentUploadConfiguration,
      progress: @escaping ProgressUpdate) {
        attachmentService.upload(data: data, configuration: config, progressUpdate: progress) { (result) in
          DispatchQueue.main.async { [weak self] in
            switch result {
              case .success(let response)
                do {
                  let data = try JSONEncoder().encode(response)
                    // Upload file successfully, return data
                } catch
                    // Upload file decode failed, return error
                }
              case .failure(let error):
                    // Upload file failed, return NowDataError
          }
        }
      }

## NowAttachmentService : upload(données : données, configuration : NowAttachmentUploadConfiguration, progressUpdate : @escaping ProgressUpdate) {#ariaid-title18}

Charge les données de la pièce jointe et les joint à un enregistrement dans une table comme spécifié dans la configuration du chargement.
Le rappel ProgressUpdate fournit des informations sur la progression du chargement que vous pouvez ensuite utiliser pour fournir des commentaires sur l'interface utilisateur.  
Remarque :  
Cette méthode a été déconseillée. Vous devez utiliser l'implémentation async/await de la méthode à la place.
{#NAttServiOS-upload_O_O_O__table_ptn_lnx_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| données | Données | Pièce jointe à télécharger. La taille des données et le type de pièce jointe que vous pouvez charger sont contrôlés par votre ServiceNow instance. |
| configuration | [NowAttachmentUploadConfiguration](https://servicenow-prod.fluidtopics.net/NknFQVD2MmF0QZo2~UXysw#NowAttachUploadConfigiOSStruct "La structure NowAttachmentUploadConfiguration vous permet de définir les informations de configuration d’une pièce jointe que vous chargez sur votre ServiceNow instance.") | Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que : * Table et enregistrement auquel joindre le fichier * Nom de fichier de la pièce jointe * Type de pièce jointe * Indique si le fichier est chiffré |
| progressUpdate | @escaping ProgressUpdate | Gestionnaire de complétion à exécuter après la récupération de la pièce jointe. Valeurs de retour pour le gestionnaire de complétion : ProgressUpdate : renvoie la progression actuelle du chargement. Ceci est appelé plusieurs fois jusqu'à ce que le processus de téléchargement soit terminé. `ProgressUpdate = (_bytesWritten : Int64, _totalBytesWritten : Int64, _totalBytesExpectedToWrite : Int64) -> Nul` |
[Tableau 33. Paramètres]

{#NAttServiOS-upload_O_O_O__table_ptn_lnx_spb} {#NAttServiOS-upload_O_O_O__table_qtn_lnx_spb__entry__2}

| Type | Description |
|-|-|
| AnyPublisher\<[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe."), NowDataError\> | Réussite : [NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/dTO6lpQNhhuBRougpzV9hQ#NowAttachmentMetadataiOSStructure "La structure NowAttachmentMetadata fournit des fonctions qui vous permettent d’encoder et de gérer les métadonnées de pièce jointe.") : objet qui contient les métadonnées de la pièce jointe demandée. Échec : NowDataError * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NAttServiOS-upload_O_O_O__NowDataErroriOS-ul-enum} |
[Tableau 34. Renvoie]

{#NAttServiOS-upload_O_O_O__table_qtn_lnx_spb}  
L'exemple de code suivant montre comment appeler cette fonction.

    typealias ProgressUpdate = (_ bytesWritten: Int64, _ totalBytesWritten: Int64, _ totalBytesExpectedToWrite: Int64) -> Void

    let image = UIImage(named: "photo.png") 
    let data = image.pngData() 
    let recordSysId = "" // Sys_id of the record on the SN instance
    let config = NowAttachmentUploadConfiguration(
      tableName: "tableName", 
      recordSysId: recordSysId, 
      fileName: "photo.png",
      contentType: "image/png", 
      encryptionContext: nil)

    private func uploadFile(data: Data,
      config: NowAttachmentUploadConfiguration,
      progress: @escaping ProgressUpdate) {
        let publisher = attachmentService.upload(data: data, configuration: config, progressUpdate: progress)

        publisher
          .receive(on: DispatchQueue.main)
          .encode(encoder: JSONEncoder())
          .sink { [weak self] completion in
            if case let .failure(error) = completion {
              // Upload file failed, return NowDataError
            }
          } receiveValue: { [weak self] (data) in
            // Upload file successfully, return data
          }
          .store(in: &subscriptions)
      }


