Classe NowAttachmentService : iOS
La classe NowAttachmentService fournit des fonctions qui vous permettent de charger et d’interroger les 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 avec 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, 1 024 Mo par défaut, et glide.attachment.extensions.
| Nom | Type | Description |
|---|---|---|
| configuration | Configuration Now ServiceConfiguration | Paramètres de configuration fournis lors de l’initialisation du service. |
NowAttachmentService : attachment(for sysId : String, validateAttachment : Boolean) lève une fonction asynchrone
Récupère la pièce jointe avec l’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.
faux. Vous pouvez valider la pièce jointe à une étape ultérieure si nécessaire en appelant la fonction Attachment.validate().| Nom | Type | Description |
|---|---|---|
| pour sysId | Chaîne | Sys_id de la pièce jointe à récupérer. |
| validateAttachment | Booléen | Marqueur indiquant si la pièce jointe doit être validée. Valeurs valides :
Valeur par défaut : true |
| Type | Description |
|---|---|
| Pièce jointe Now | Renvoyé lorsque la méthode réussit. Pièce jointe spécifiée. |
| Erreur NowDataError | Levée lorsque la méthode échoue.
|
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(for sysId : String, validateAttachment : Boolean, completion : @escaping (Result<NowAttachment, NowDataError>))
Récupère la pièce jointe avec l’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.
faux. Vous pouvez valider la pièce jointe à une étape ultérieure si nécessaire en appelant la fonction Attachment.validate().| Nom | Type | Description |
|---|---|---|
| pour sysId | Chaîne | Sys_id de la pièce jointe à récupérer. |
| validateAttachment | Booléen | Marqueur indiquant si la pièce jointe doit être validée. Valeurs valides :
Valeur par défaut : true |
| Achèvement | @escaping (résultat<NowAttachment, 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 :
|
| 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.
faux. Si nécessaire, vous pouvez valider la pièce jointe à une étape ultérieure en appelant la fonction Attachment.validate().| Nom | Type | Description |
|---|---|---|
| pour sysId | Chaîne | Sys_id de la pièce jointe à récupérer. |
| validateAttachment | Booléen | Marqueur indiquant si la pièce jointe doit être validée. Valeurs valides :
Valeur par défaut : true |
| Type | Description |
|---|---|
| AnyPublisher<NowAttachment, NowDataError> | Réussite : NowAttachment : contient la pièce jointe spécifiée. Échec : NowDataError
|
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ève une fonction asynchrone
Récupère les métadonnées pour toutes les pièces jointes qui répondent aux critères spécifiés.
| Nom | Type | Description |
|---|---|---|
| filtre | Filtrer | Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent être renvoyées. Valeur par défaut : nil : renvoie les métadonnées pour 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. Valeur par défaut : nil : renvoie toutes les métadonnées qui répondent aux spécifications du filter paramètre. |
| Type | Description |
|---|---|
| [NowAttachmentMetadata] | Renvoyé lorsque la méthode réussit. Tableau contenant les métadonnées pour les pièces jointes correspondantes. |
| Erreur NowDataError | Levée lorsque la méthode échoue.
|
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 pour toutes les pièces jointes qui répondent aux critères spécifiés.
| Nom | Type | Description |
|---|---|---|
| filtre | Filtrer | Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent être renvoyées. Valeur par défaut : nil : renvoie les métadonnées pour 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. Valeur par défaut : nil : renvoie toutes les métadonnées qui répondent aux spécifications du filter paramètre. |
| Achèvement | @escaping (résultat <[NowAttachmentMetadata], 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 :
|
| 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 pour toutes les pièces jointes qui répondent aux critères spécifiés.
| Nom | Type | Description |
|---|---|---|
| filtre | Filtrer | Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent être renvoyées. Valeur par défaut : nil : renvoie les métadonnées pour 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. Valeur par défaut : nil : renvoie toutes les métadonnées qui répondent aux spécifications du filter paramètre. |
| Type | Description |
|---|---|
| AnyPublisher<[NowAttachmentMetadata], NowDataError> | Réussite : NowAttachmentMetadata : objets qui contiennent les métadonnées pour les pièces jointes correspondantes. Échec : NowDataError
|
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) lève une fonction asynchrone
Récupère les métadonnées de la pièce jointe associée à l’sys_id spécifié.
| 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. |
| Type | Description |
|---|---|
| NowAttachmentMetadata (en anglais seulement) | Renvoyé lorsque la méthode réussit. Métadonnées pour la pièce jointe demandée. |
| Erreur NowDataError | Levée lorsque la méthode échoue.
|
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 (résultat<NowAttachmentMetadata, NowDataError>))
Récupère les métadonnées de la pièce jointe associée au sys_id spécifié, puis exécute le gestionnaire de complétion une fois les métadonnées récupérées.
| 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 (résultat<NowAttachmentMetadata, 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 :
|
| 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 à l’sys_id spécifié.
| 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. |
| Type | Description |
|---|---|
| AnyPublisher<[NowAttachmentMetadata], NowDataError> | Réussite : NowAttachmentMetadata : objet qui contient les métadonnées de la pièce jointe demandée. Échec : NowDataError
|
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)
Récupère les métadonnées pour toutes les pièces jointes qui répondent aux critères spécifiés et renvoie un objet Paginator à itérer dans les pages des métadonnées renvoyées.
| Nom | Type | Description |
|---|---|---|
| filtre | Filtrer | Facultatif. Chaîne de requête à utiliser pour filtrer les pièces jointes dont les métadonnées doivent être renvoyées. Valeur par défaut : nil : renvoie les métadonnées pour 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. Valeur par défaut : nil : renvoie toutes les métadonnées qui répondent aux spécifications du filter paramètre. |
| Type | Description |
|---|---|
| Paginateur <[NowAttachmentMetadata]> | Réussite : tableau d’objets NowAttachmentMetadata. Échec : objet NowDataError.
|
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ève une fonction asynchrone
Supprime la pièce jointe avec l’sys_id spécifié.
| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de la pièce jointe à supprimer. |
| Type | Description |
|---|---|
| Néant | Rien n’est retourné si la méthode a réussi. |
| Erreur NowDataError | Levée lorsque la méthode échoue.
|
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 : String, completion : @escaping (Result<Void, NowDataError>))
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.
| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de la pièce jointe à supprimer. |
| Achèvement | @escaping (Résultat<Void, 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 :
|
| 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 l’sys_id spécifié.
| Nom | Type | Description |
|---|---|---|
| sysId | Chaîne | Sys_id de la pièce jointe à supprimer. |
| Type | Description |
|---|---|
| AnyPublisher<Void, NowDataError> | Réussite : aucun retour Échec : NowDataError
|
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.
| Nom | Type | Description |
|---|---|---|
| configuration | Configuration Now ServiceConfiguration | Informations de configuration nécessaires pour initialiser correctement le service. |
| coreServiceProvider | NowCoreServiceProviding | Facultatif. Objet implémentant le protocole NowCoreServiceProviding Valeur par défaut : nulle |
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 fonction asynchrone
Charge les données de la pièce jointe et les joint à un enregistrement dans une table tel que 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.
| Nom | Type | Description |
|---|---|---|
| données | Données | Pièce jointe à télécharger. |
| configuration | Configuration NowAttachmentUploadNowAttachmentUpload | Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que :
|
| progressUpdate (en anglais seulement) | @escaping ProgressUpdate | Gestionnaire de complétion à exécuter après la récupération de la pièce jointe. Cela 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.
|
| Type | Description |
|---|---|
| NowAttachmentMetadata (en anglais seulement) | Renvoyé lorsque la méthode réussit. Objet contenant les métadonnées chargées. |
| Erreur NowDataError | Levée lorsque la méthode échoue.
|
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 tel que 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.
| Nom | Type | Description |
|---|---|---|
| données | Données | Pièce jointe à télécharger. |
| configuration | Configuration NowAttachmentUploadNowAttachmentUpload | Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que :
|
| progressUpdate (en anglais seulement) | @escaping ProgressUpdate | Gestionnaire de complétion à exécuter après la récupération de la pièce jointe. Cela 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.
|
| Achèvement | @escaping (résultat<NowAttachmentMetadata, NowDataError>) | Gestionnaire de complétion à exécuter une fois les métadonnées chargées. Valeurs de retour pour le gestionnaire de complétion :
|
| 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(données : données, configuration : NowAttachmentUploadConfiguration, progressUpdate : @escaping ProgressUpdate)
Charge les données de la pièce jointe et les joint à un enregistrement dans une table tel que 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.
| 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 | Informations de configuration qui définissent les paramètres de chargement de la pièce jointe, telles que :
|
| progressUpdate (en anglais seulement) | @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. Cela est appelé plusieurs fois jusqu’à ce que le processus de téléchargement soit terminé.
|
| Type | Description |
|---|---|
| AnyPublisher<NowAttachmentMetadata, NowDataError> | Réussite : NowAttachmentMetadata : objet qui contient les métadonnées de la pièce jointe demandée. Échec : NowDataError
|
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)
}