Classe NowAttachmentService : iOS

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 32 minutes de lecture
  • La classe NowAttachmentService fournit des fonctions qui vous permettent de charger et d’interroger les pièces jointes associées à des enregistrements d’une table sur une ServiceNow instance.

    Vous pouvez charger ou récupérer un seul fichier avec chaque demande. NowAttachmentService respecte toutes les limitations du système sur les fichiers chargés, telles que la taille maximale des fichiers 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, 1 024 Mo par défaut, et glide.attachment.extensions.

    Remarque :
    NowAttachmentService 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.
    Tableau 1. Propriétés
    Nom Type Description
    configuration NowServiceConfiguration Paramètres de configuration fournis lors de l’initialisation du service.

    NowAttachmentService : pièces jointes (pour sysId : chaîne, validateAttachment : booléen) lèvent une action asynchrone

    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().
    Tableau 2. Paramètres
    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 : valider la pièce jointe.
    • faux : ne valide pas la pièce jointe.

    Par défaut : true

    Tableau 3. Renvoie
    Type Description
    Pièce jointe actuelle Renvoyé lorsque la méthode est efficace. Pièce jointe spécifiée.
    NowDataError Lancé en cas d’échec de la méthode.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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 : attachment(pour sysId : chaîne, validateAttachment : booléen, complétion : @escaping (Result<NowAttachment, NowDataError>))

    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 d’achèvement 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().
    Tableau 4. Paramètres
    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 : valider la pièce jointe.
    • faux : ne valide pas la pièce jointe.

    Par défaut : true

    Achèvement @escaping (Result<NowAttachment, NowDataError>) Gestionnaire d’achèvement à exécuter après avoir récupéré la pièce jointe.
    Valeurs renvoyées pour le gestionnaire de complétion :
    • Réussite : NowAttachment : pièce jointe demandée
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : Erreur)

        Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

      • Validation de l’attachement

        Émis lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • DecodingError: erreur de décodage détectée.

        Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : Tout, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder au type spécifié.

        Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

      • cannotParseResponse

        Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Émise 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 s’il s’agit d’une chaîne vide.

      • Métadonnées de pièce jointe manquante

        Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Généré lorsqu’un paramètre sys_id attendu est manquant.

      • réseau(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Publié lorsqu’un service réseau a rencontré une erreur.

    Tableau 5. Renvoie
    Type Description
    Néant

    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)

    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 est obsolète. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    Tableau 6. Paramètres
    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 : valider la pièce jointe.
    • faux : ne validez pas la pièce jointe.

    Par défaut : true

    Tableau 7. Renvoie
    Type Description
    AnyPublisher<NowAttachment, NowDataError> Réussite : NowAttachment : contient la pièce jointe spécifiée.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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èves asynchrones

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

    Tableau 8. Paramètres
    Nom Type Description
    filtre Filtrer Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent renvoyer.

    Par défaut : nil : renvoie les métadonnées pour toutes les pièces jointes disponibles. Prend en compte le limit paramètre.

    limite Entier Facultatif. Nombre maximal de métadonnées de fichier de pièce jointe à renvoyer.

    Par défaut : nil : renvoie toutes les métadonnées qui répondent aux spécifications des filter paramètres.

    Tableau 9. Renvoie
    Type Description
    [NowAttachmentMetadata] Renvoyé lorsque la méthode est efficace. Tableau contenant les métadonnées pour les pièces jointes correspondantes.
    NowDataError Lancé en cas d’échec de la méthode.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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>))

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

    Tableau 10. Paramètres
    Nom Type Description
    filtre Filtrer Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent renvoyer.

    Par défaut : nil : renvoie les métadonnées pour toutes les pièces jointes disponibles. Prend en compte le limit paramètre.

    limite Entier Facultatif. Nombre maximal de métadonnées de fichier de pièce jointe à renvoyer.

    Par défaut : nil : renvoie toutes les métadonnées qui répondent aux spécifications des filter paramètres.

    Achèvement @escaping (Résultat<[NowAttachmentMetadata], NowDataError>) Gestionnaire d’achèvement à exécuter après avoir récupéré les métadonnées.
    Valeurs renvoyées pour le gestionnaire de complétion :
    • Réussite : NowAttachmentMetadata : objets contenant les métadonnées demandées.
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : Erreur)

        Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

      • Validation de l’attachement

        Émis lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • DecodingError: erreur de décodage détectée.

        Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : Tout, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder au type spécifié.

        Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

      • cannotParseResponse

        Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Émise 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 s’il s’agit d’une chaîne vide.

      • Métadonnées de pièce jointe manquante

        Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Généré lorsqu’un paramètre sys_id attendu est manquant.

      • réseau(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Publié lorsqu’un service réseau a rencontré une erreur.

    Tableau 11. Renvoie
    Type Description
    Néant

    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)

    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 est obsolète. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    Tableau 12. Paramètres
    Nom Type Description
    filtre Filtrer Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent renvoyer.

    Par défaut : nil : renvoie les métadonnées pour toutes les pièces jointes disponibles. Prend en compte le limit paramètre.

    limite Entier Facultatif. Nombre maximal de métadonnées de fichier de pièce jointe à renvoyer.

    Par défaut : nil : renvoie toutes les métadonnées qui répondent aux spécifications des filter paramètres.

    Tableau 13. Renvoie
    Type Description
    AnyPublisher<[NowAttachmentMetadata], NowDataError> Réussite : NowAttachmentMetadata : objets qui contiennent les métadonnées pour les pièces jointes correspondantes.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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 : attachMetadata(pour sysId : chaîne) levées asynchrones

    Récupère les métadonnées de la pièce jointe associée au sys_id spécifié.

    Tableau 14. Paramètres
    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 15. Renvoie
    Type Description
    Métadonnées NowAttachment Renvoyé lorsque la méthode est efficace. Métadonnées pour la pièce jointe demandée.
    NowDataError Lancé en cas d’échec de la méthode.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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(pour sysId : chaîne, complétion : @escaping (Result<NowAttachmentMetadata, NowDataError>))

    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.

    Tableau 16. Paramètres
    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, NowDataError>) Gestionnaire d’achèvement à exécuter après avoir récupéré les métadonnées.
    Valeurs renvoyées pour le gestionnaire de complétion :
    • Réussite : NowAttachmentMetadata : métadonnées demandées
    • Échec : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : Erreur)

        Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

      • Validation de l’attachement

        Émis lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • DecodingError: erreur de décodage détectée.

        Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : Tout, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder au type spécifié.

        Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

      • cannotParseResponse

        Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Émise 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 s’il s’agit d’une chaîne vide.

      • Métadonnées de pièce jointe manquante

        Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Généré lorsqu’un paramètre sys_id attendu est manquant.

      • réseau(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Publié lorsqu’un service réseau a rencontré une erreur.

    Tableau 17. Renvoie
    Type Description
    Néant

    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)

    Récupère les métadonnées de la pièce jointe associée au sys_id spécifié.

    Remarque :
    Cette méthode est obsolète. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    Tableau 18. Paramètres
    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 19. Renvoie
    Type Description
    AnyPublisher<[NowAttachmentMetadata], NowDataError> Réussite : NowAttachmentMetadata : objet contenant les métadonnées pour la pièce jointe demandée.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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(filtre : filtre, limite : Int)

    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 Paginateur pour itérer dans les pages des métadonnées renvoyées.

    Tableau 20. Paramètres
    Nom Type Description
    filtre Filtrer Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent renvoyer.

    Par défaut : nil : renvoie les métadonnées pour toutes les pièces jointes disponibles. Prend en compte le limit paramètre.

    limite Entier Facultatif. Nombre maximal de métadonnées de fichier de pièce jointe à renvoyer.

    Par défaut : nil : renvoie toutes les métadonnées qui répondent aux spécifications des filter paramètres.

    Tableau 21. Renvoie
    Type Description
    Paginateur<[NowAttachmentMetadata]> Bravo : tableau d’objets NowAttachmentMetadata.

    Échec : objet NowDataError.

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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 : chaîne) levées asynchrones

    Supprime la pièce jointe avec le sys_id spécifié.

    Tableau 22. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de la pièce jointe à supprimer.
    Tableau 23. Renvoie
    Type Description
    Néant Rien n’est renvoyé si la méthode a réussi.
    NowDataError Lancé en cas d’échec de la méthode.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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>))

    Supprime la pièce jointe avec le sys_id spécifié, puis exécute le gestionnaire d’achèvement réussi une fois la pièce jointe supprimée.

    Tableau 24. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de la pièce jointe à supprimer.
    Achèvement @escaping (Result<Void, NowDataError>) Gestionnaire d’achèvement à exécuter après la suppression de la pièce jointe.
    Valeurs renvoyées pour le gestionnaire de complétion :
    • Réussite : nul
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : Erreur)

        Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

      • Validation de l’attachement

        Émis lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • DecodingError: erreur de décodage détectée.

        Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : Tout, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder au type spécifié.

        Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

      • cannotParseResponse

        Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Émise 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 s’il s’agit d’une chaîne vide.

      • Métadonnées de pièce jointe manquante

        Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Généré lorsqu’un paramètre sys_id attendu est manquant.

      • réseau(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Publié lorsqu’un service réseau a rencontré une erreur.

    Tableau 25. Renvoie
    Type Description
    Néant

    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)

    Supprime la pièce jointe avec le sys_id spécifié.

    Remarque :
    Cette méthode est obsolète. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    Tableau 26. Paramètres
    Nom Type Description
    sysId Chaîne Sys_id de la pièce jointe à supprimer.
    Tableau 27. Renvoie
    Type Description
    AnyPublisher<Void, NowDataError> Réussite : rien n’a été renvoyé

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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)

    Initialise une nouvelle instance NowAttachmentService.

    Tableau 28. Paramètres
    Nom Type Description
    configuration NowServiceConfiguration Informations de configuration nécessaires pour initialiser correctement le service.
    coreServiceProvider NowCoreServiceProviding Facultatif. Objet implémentant le protocole NowCoreServiceSupplying.

    Par défaut : néant

    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) lève une asynchrone

    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.

    Tableau 29. Paramètres
    Nom Type Description
    données Données Pièce jointe à charger.
    configuration NowAttachmentUpload Configuration Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que :
    • Table et enregistrement auxquels 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 d’achèvement à exécuter après avoir récupéré la pièce jointe. Cette fonction est appelée plusieurs fois jusqu’à ce que le processus de chargement soit terminé.

    Valeurs renvoyées pour le gestionnaire de complétion :

    ProgressUpdate : renvoie la progression actuelle du chargement.

    ProgressUpdate = (_bytesWritten : Int64, _totalBytesWritten : Int64, _totalBytesExpectedToWrite : Int64) -> Nul

    Tableau 30. Renvoie
    Type Description
    Métadonnées NowAttachment Renvoyé lorsque la méthode est efficace. Objet contenant les métadonnées chargées.
    NowDataError Lancé en cas d’échec de la méthode.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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(data : Data, configuration : NowAttachmentUploadConfiguration, progressUpdate : @escaping ProgressUpdate, completion : @escaping (Result<NowAttachmentMetadata, NowDataError>))

    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.

    Tableau 31. Paramètres
    Nom Type Description
    données Données Pièce jointe à charger.
    configuration NowAttachmentUpload Configuration Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que :
    • Table et enregistrement auxquels 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 d’achèvement à exécuter après avoir récupéré la pièce jointe. Cette fonction est appelée plusieurs fois jusqu’à ce que le processus de chargement soit terminé.

    Valeurs renvoyées 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, NowDataError>) Gestionnaire d’achèvement à exécuter après le chargement des métadonnées.
    Valeurs renvoyées pour le gestionnaire de complétion :
    • Réussite : NowAttachmentMetadata : objet contenant les métadonnées pour la pièce jointe chargée.
    • Erreur : NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
          • accessTokenRetrievalFailed
          • userSessionError(_ erreur : Erreur)

        Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

      • Validation de l’attachement

        Émis lorsqu’une pièce jointe échoue à la validation.

      • badResponse(statusCode : HTTPStatusCode)
        • HTTPStatusCode: code d’état reçu de l’instance.

        Émise lorsqu’une demande renvoie une réponse inattendue

      • cannotDecodeModel(Erreur de décodage)
        • DecodingError: erreur de décodage détectée.

        Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

      • cannotDecodeProperty(type : Tout, de : Chaîne)
        • type: type encapsulé à décoder à partir d’une chaîne.
        • from: chaîne à décoder au type spécifié.

        Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

      • cannotEncodeModel(EncodingError)
        • EncodingError: erreur d’encodage détectée.

        Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

      • cannotParseResponse

        Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

      • URL non valide

        Émise 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 s’il s’agit d’une chaîne vide.

      • Métadonnées de pièce jointe manquante

        Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

      • missingServiceConfiguration

        Lancé lorsqu’une configuration de service attendue est manquante.

      • missingSysID

        Généré lorsqu’un paramètre sys_id attendu est manquant.

      • réseau(NetworkServiceError)
        • genericError(chaîne)
        • opérationannulée
        • serviceDisabled
        • serverError(Erreur)
        • systemError(Erreur)

        Publié lorsqu’un service réseau a rencontré une erreur.

    Tableau 32. Renvoie
    Type Description
    Néant

    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(data : Data, configuration : NowAttachmentUploadConfiguration, progressUpdate : @escaping ProgressUpdate)

    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 est obsolète. Vous devez plutôt utiliser l’implémentation async/await de la méthode.
    Tableau 33. Paramètres
    Nom Type Description
    données Données Pièce jointe à 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 Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que :
    • Table et enregistrement auxquels 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 d’achèvement à exécuter après avoir récupéré la pièce jointe.

    Valeurs renvoyées pour le gestionnaire de complétion :

    ProgressUpdate : renvoie la progression actuelle du chargement. Cette fonction est appelée plusieurs fois jusqu’à ce que le processus de chargement soit terminé.

    ProgressUpdate = (_bytesWritten : Int64, _totalBytesWritten : Int64, _totalBytesExpectedToWrite : Int64) -> Nul

    Tableau 34. Renvoie
    Type Description
    AnyPublisher<NowAttachmentMetadata, NowDataError> Réussite : NowAttachmentMetadata : objet contenant les métadonnées pour la pièce jointe demandée.

    Échec : NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: message ou code d’erreur du fournisseur du jeton d’accès.
        • accessTokenRetrievalFailed
        • userSessionError(_ erreur : Erreur)

      Déclenché lorsqu’une erreur s’est produite dans le jeton d’accès.

    • Validation de l’attachement

      Émis lorsqu’une pièce jointe échoue à la validation.

    • badResponse(statusCode : HTTPStatusCode)
      • HTTPStatusCode: code d’état reçu de l’instance.

      Émise lorsqu’une demande renvoie une réponse inattendue

    • cannotDecodeModel(Erreur de décodage)
      • DecodingError: erreur de décodage détectée.

      Émise lorsqu’un modèle codable ne peut pas être décodé à partir de JSON.

    • cannotDecodeProperty(type : Tout, de : Chaîne)
      • type: type encapsulé à décoder à partir d’une chaîne.
      • from: chaîne à décoder au type spécifié.

      Lancé lorsqu’une valeur encapsulée dans une chaîne ne peut pas être décodée à partir de JSON.

    • cannotEncodeModel(EncodingError)
      • EncodingError: erreur d’encodage détectée.

      Publié lorsqu’un modèle codable ne peut pas être encodé au format JSON.

    • cannotParseResponse

      Émise lorsqu’une réponse de l’instance ne peut pas être analysée dans son format attendu.

    • URL non valide

      Émise 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 s’il s’agit d’une chaîne vide.

    • Métadonnées de pièce jointe manquante

      Déclenché lorsque l’en-tête des métadonnées de pièce jointe est manquant.

    • missingServiceConfiguration

      Lancé lorsqu’une configuration de service attendue est manquante.

    • missingSysID

      Généré lorsqu’un paramètre sys_id attendu est manquant.

    • réseau(NetworkServiceError)
      • genericError(chaîne)
      • opérationannulée
      • serviceDisabled
      • serverError(Erreur)
      • systemError(Erreur)

      Publié lorsqu’un service réseau a rencontré une erreur.

    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)
      }