Classe NowAttachmentService - iOS
. NowAttachmentService a classe fornece funções que permitem carregar e consultar anexos associados a registros em uma tabela em um ServiceNow instância.
Você pode carregar ou recuperar um único arquivo com cada solicitação. NowAttachmentService respeita todas as limitações do sistema em arquivos carregados, como tamanho máximo de arquivo e tipos de anexo permitidos. Você pode controlar essas configurações usando as propriedades da instância com.glide.attachment.max_size, 1024 MB por padrão e glide.attachment.extensions.
| Nome | Tipo | Descrição |
|---|---|---|
| configuração | NowServiceConfiguration | Definições de configuração fornecidas quando o serviço foi inicializado. |
NowAttachmentService - anexo(para sySID: Cadeia de caracteres, validateAttachment: Boolian) lançamentos assíncronos
Recupera o anexo com o sys_id especificado e valida o anexo comparando o hash calculado do anexo com a soma de verificação SHA256 esperada.
falso . Você pode validar o anexo em uma fase posterior, se necessário, chamando Attachment.validate() função.| Nome | Tipo | Descrição |
|---|---|---|
| SYSID | Cadeia de caracteres | Sys_id do anexo a ser recuperado. |
| ValidateAttachment | Booliano | Sinalizador que indica se o anexo deve ser validado. Valores válidos:
Padrão: verdadeiro |
| Tipo | Descrição |
|---|---|
| NowAttachment | Retornado quando o método é bem-sucedido. Anexo especificado. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
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 - anexo(para SYSID: Cadeia de caracteres, validateAttachment: Booliano, conclusão: Escape (<NowAttachment, NowDataError>))
Recupera o anexo com o sys_id especificado e valida o anexo comparando o hash calculado do anexo com a soma de verificação SHA256 esperada. Uma vez concluído, ele executa o manipulador de conclusão aprovado.
falso . Você pode validar o anexo em uma fase posterior, se necessário, chamando Attachment.validate() função.| Nome | Tipo | Descrição |
|---|---|---|
| SYSID | Cadeia de caracteres | Sys_id do anexo a ser recuperado. |
| ValidateAttachment | Booliano | Sinalizador que indica se o anexo deve ser validado. Valores válidos:
Padrão: verdadeiro |
| conclusão | Escapando (Resultado> NowAttachment NowDataError>) | Manipulador de conclusão a ser executado depois que o anexo for recuperado. Valores de retorno para o manipulador de conclusão:
|
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar esta função.
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 - anexo(para SYSID: Cadeia de caracteres, validateAttachment: Boolian)
Recupera o anexo com o sys_id especificado e valida o anexo comparando o hash calculado do anexo com o hash esperado.
falso . Se necessário, você pode validar o anexo em uma fase posterior chamando o. Attachment.validate() função.| Nome | Tipo | Descrição |
|---|---|---|
| SYSID | Cadeia de caracteres | Sys_id do anexo a ser recuperado. |
| ValidateAttachment | Booliano | Sinalizador que indica se o anexo deve ser validado. Valores válidos:
Padrão: verdadeiro |
| Tipo | Descrição |
|---|---|
| AnyPublisher NowAttachment NowDataError> | Sucesso: NowAttachment - Contém o anexo especificado. NowDataError
|
O exemplo de código a seguir mostra como chamar esta função.
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) lançamentos assíncronos
Recupera os metadados de todos os anexos que atendem aos critérios especificados.
| Nome | Tipo | Descrição |
|---|---|---|
| filtros | Filtro | Opcional. Cadeia de caracteres de consulta a ser usada para filtrar os anexos cujos metadados serão retornados. Padrão: Nil - Retorna metadados para todos os anexos disponíveis. Leva em consideração limitparâmetro. |
| limite | Inteiro | Opcional. Número máximo de metadados do arquivo de anexo a serem retornados. Padrão: Nil - Retorna todos os metadados que atendem a. filterespecificações de parâmetro. |
| Tipo | Descrição |
|---|---|
| NowAttachmentadata] | Retornado quando o método é bem-sucedido. Matriz que contém os metadados dos anexos correspondentes. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
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(filtro: Filtro, limite: Int, conclusão: Escape (result), NowDataError>))
Recupera os metadados de todos os anexos que atendem aos critérios especificados.
| Nome | Tipo | Descrição |
|---|---|---|
| filtros | Filtro | Opcional. Cadeia de caracteres de consulta a ser usada para filtrar os anexos cujos metadados serão retornados. Padrão: Nil - Retorna metadados para todos os anexos disponíveis. Leva em consideração limitparâmetro. |
| limite | Inteiro | Opcional. Número máximo de metadados do arquivo de anexo a serem retornados. Padrão: Nil - Retorna todos os metadados que atendem a. filterespecificações de parâmetro. |
| conclusão | (Resultado>[ NowAttachmentMetadados ], NowDataError>) | Manipulador de conclusão a ser executado depois que os metadados forem recuperados. Valores de retorno para o manipulador de conclusão:
|
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar esta função.
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(filtro: Filtro, limite: Int)
Recupera os metadados de todos os anexos que atendem aos critérios especificados.
| Nome | Tipo | Descrição |
|---|---|---|
| filtros | Filtro | Opcional. Cadeia de caracteres de consulta a ser usada para filtrar os anexos cujos metadados serão retornados. Padrão: Nil - Retorna metadados para todos os anexos disponíveis. Leva em consideração limitparâmetro. |
| limite | Inteiro | Opcional. Número máximo de metadados do arquivo de anexo a serem retornados. Padrão: Nil - Retorna todos os metadados que atendem a. filterespecificações de parâmetro. |
| Tipo | Descrição |
|---|---|
| AnyPublisher NowAttachmentMetadados , NowDataError> | NowAttachmentMetadata - Objetos que contêm os metadados dos anexos correspondentes. NowDataError
|
O exemplo de código a seguir mostra como chamar esta função.
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(for sySID: Cadeia de caracteres) lançamentos assíncronos
Recupera os metadados do anexo associado ao sys_id especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| SYSID | Cadeia de caracteres | Sys_id do anexo cujos metadados serão recuperados. |
| Tipo | Descrição |
|---|---|
| NowAttachmentMetadados | Retornado quando o método é bem-sucedido. Metadados do anexo solicitado. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
do {
let metadata = try await attachmentService.attachmentMetadata(for: sysId)
// Metadata retrieval successful
} catch {
// Metadata retrieval failed, NowDataError thrown
}
NowAttachmentService - attachmentMetadata(Para SYSID: Cadeia de caracteres, conclusão: Escape (<NowAttachmentMetadata, NowDataError>))
Recupera os metadados do anexo associado ao sys_id especificado e executa o manipulador de conclusão depois que os metadados são recuperados.
| Nome | Tipo | Descrição |
|---|---|---|
| SYSID | Cadeia de caracteres | Sys_id do anexo cujos metadados serão recuperados. |
| conclusão | Escapando (Resultado> NowAttachmentMetadados NowDataError>) | Manipulador de conclusão a ser executado depois que os metadados forem recuperados. Valores de retorno para o manipulador de conclusão:
|
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar esta função.
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(para sySID: Cadeia de caracteres)
Recupera os metadados do anexo associado ao sys_id especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| SYSID | Cadeia de caracteres | Sys_id do anexo cujos metadados serão recuperados. |
| Tipo | Descrição |
|---|---|
| AnyPublisher NowAttachmentMetadados , NowDataError> | NowAttachmentMetadata - Objeto que contém os metadados do anexo solicitado. NowDataError
|
O exemplo de código a seguir mostra como chamar esta função.
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(filtro: Filtro, limite: Int)
Recupera os metadados de todos os anexos que atendem aos critérios especificados e retorna um objeto Paginator para iterar nas páginas dos metadados retornados.
| Nome | Tipo | Descrição |
|---|---|---|
| filtros | Filtro | Opcional. Cadeia de caracteres de consulta a ser usada para filtrar os anexos cujos metadados serão retornados. Padrão: Nil - Retorna metadados para todos os anexos disponíveis. Leva em consideração limitparâmetro. |
| limite | Inteiro | Opcional. Número máximo de metadados do arquivo de anexo a serem retornados. Padrão: Nil - Retorna todos os metadados que atendem a. filterespecificações de parâmetro. |
| Tipo | Descrição |
|---|---|
| Paginador [ NowAttachmentMetadados ]> | Sucesso: Matriz de objetos NowAttachmentMetadata. Falha: Objeto NowDataError.
|
O exemplo de código a seguir mostra como chamar esta função.
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: Cadeia de caracteres) lança assíncrona
Exclui o anexo com o sys_id especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do anexo a ser excluído. |
| Tipo | Descrição |
|---|---|
| Nenhum(a) | Se o método for bem-sucedido, nada será retornado. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
do {
try await attachmentService.delete(sysId: sysId)
// Deletion successful
} catch {
// Deletion failed, NowDataError thrown
}
NowAttachmentService - delete(SYSID: Cadeia de caracteres, conclusão: Escape (<Void, NowDataError>))
Exclui o anexo com o sys_id especificado e executa o manipulador de conclusão aprovado depois que o anexo é excluído.
| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do anexo a ser excluído. |
| conclusão | Escape (<Void, NowDataError>) | Manipulador de conclusão a ser executado após a exclusão do anexo. Valores de retorno para o manipulador de conclusão:
|
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar esta função.
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: Cadeia de caracteres)
Exclui o anexo com o sys_id especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| sysId | Cadeia de caracteres | Sys_id do anexo a ser excluído. |
| Tipo | Descrição |
|---|---|
| AnyPublisher<Void, NowDataError> | Êxito: Nada retornado NowDataError
|
O exemplo de código a seguir mostra como chamar esta função.
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(configuração: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding)
Inicializa uma nova instância do NowAttachmentService.
| Nome | Tipo | Descrição |
|---|---|---|
| configuração | NowServiceConfiguration | Informações de configuração necessárias para inicializar corretamente o serviço. |
| CoreServiceProvider | NowCoreServiceProviding | Opcional. Objeto que implementa o protocolo NowCoreServiceProviding. Padrão: Nil |
O exemplo de código a seguir mostra como chamar esta função.
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: Escapando ProgressUpdate) lançamentos assíncronos
Carrega os dados do anexo e os anexa a um registro em uma tabela conforme especificado na configuração de carregamento.
. Atualização O retorno de chamada fornece informações de andamento do carregamento que você pode usar para fornecer feedback de IU.
| Nome | Tipo | Descrição |
|---|---|---|
| dados | Dados | Anexo a ser carregado. |
| configuração | NowAttachmentUpload Configuração | Informações de configuração que definem os parâmetros de carregamento do anexo, como:
|
| ProgressAtualização | Escapando ProgressUpdate | Manipulador de conclusão a ser executado depois que o anexo for recuperado. Isso é chamado várias vezes até que o processo de carregamento seja concluído. Valores de retorno para o manipulador de conclusão: ProgressUpdate - Retorna o andamento atual do carregamento.
|
| Tipo | Descrição |
|---|---|
| NowAttachmentMetadados | Retornado quando o método é bem-sucedido. Objeto que contém os metadados carregados. |
| NowDataError | Lançado quando o método falha.
|
Os exemplos de código a seguir mostram como chamar este método.
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: Escape ProgressUpdate, conclusão: Escape (<NowAttachmentMetadata, NowDataError>))
Carrega os dados do anexo e os anexa a um registro em uma tabela conforme especificado na configuração de carregamento.
. Atualização O retorno de chamada fornece informações de andamento do carregamento que você pode usar para fornecer feedback de IU.
| Nome | Tipo | Descrição |
|---|---|---|
| dados | Dados | Anexo a ser carregado. |
| configuração | NowAttachmentUpload Configuração | Informações de configuração que definem os parâmetros de carregamento do anexo, como:
|
| ProgressAtualização | Escapando ProgressUpdate | Manipulador de conclusão a ser executado depois que o anexo for recuperado. Isso é chamado várias vezes até que o processo de carregamento seja concluído. Valores de retorno para o manipulador de conclusão: ProgressUpdate - Retorna o andamento atual do carregamento.
|
| conclusão | Escapando (resultado > NowAttachmentMetadados NowDataError>) | Manipulador de conclusão a ser executado depois que os metadados forem carregados. Valores de retorno para o manipulador de conclusão:
|
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar esta função.
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: Escapando ProgressUpdate)
Carrega os dados do anexo e os anexa a um registro em uma tabela conforme especificado na configuração de carregamento.
. Atualização O retorno de chamada fornece informações de andamento do carregamento que você pode usar para fornecer feedback de IU.
| Nome | Tipo | Descrição |
|---|---|---|
| dados | Dados | Anexo a ser carregado. O tamanho dos dados e o tipo de anexo que você pode carregar são controlados por seu ServiceNow instância. |
| configuração | NowAttachmentUploadConfiguration | Informações de configuração que definem os parâmetros de carregamento do anexo, como:
|
| ProgressAtualização | Escapando ProgressUpdate | Manipulador de conclusão a ser executado depois que o anexo for recuperado. Valores de retorno para o manipulador de conclusão: ProgressUpdate - Retorna o andamento atual do carregamento. Isso é chamado várias vezes até que o processo de carregamento seja concluído.
|
| Tipo | Descrição |
|---|---|
| AnyPublisher NowAttachmentMetadados NowDataError> | Sucesso: NowAttachmentMetadados - Objeto que contém os metadados do anexo solicitado. NowDataError
|
O exemplo de código a seguir mostra como chamar esta função.
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)
}