Classe NowAttachmentService - iOS

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 32 min. de leitura
  • A classe NowAttachmentService fornece funções que permitem carregar e consultar anexos associados a registros em uma tabela em uma instância ServiceNow.

    Você pode carregar ou recuperar um único arquivo com cada solicitação. 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.

    Nota:
    O NowAttachmentService aceita todos os valores de tipo de conteúdo (/). Especifique o tipo de conteúdo do arquivo ao carregar um anexo. O tipo de conteúdo é armazenado com os metadados do arquivo, permitindo que outras ferramentas identifiquem e analisem corretamente o arquivo.
    Tabela 1. Propriedades
    Nome Tipo Descrição
    configuração NowServiceConfiguration Definições de configuração fornecidas quando o serviço foi inicializado.

    NowAttachmentService - attachment(for sysId: Cadeia de caracteres, identifyAttachment: Boolean) 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.

    Nota:
    A validação de um anexo pode causar um impacto no desempenho. Você pode ignorar a etapa de validação definindo o parâmetro validateAttachment como falso. Você pode validar o anexo posteriormente, se necessário, chamando a função Attachment.validate().
    Tabela 2. Parâmetros
    Nome Tipo Descrição
    para sysId Cadeia de caracteres Sys_id do anexo a ser recuperado.
    validarAnexo Booliano Sinalizador que indica se o anexo deve ser validado.
    Valores válidos:
    • verdadeiro: valida o anexo.
    • falso: não valide o anexo.

    Padrão: verdadeiro

    Tabela 3. Retorna
    Tipo Descrição
    NowAttachment Retornado quando o método é bem-sucedido. Anexo especificado.
    NowDataError Lançado quando o método falha.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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 - attachment(for sysId: Cadeia de caracteres, validAttachment: Booliano, conclusão: @escaping (Resultado<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. Depois de concluído, ele executa o manipulador de conclusão aprovado.

    Nota:
    A validação de um anexo pode causar um impacto no desempenho. Você pode ignorar a etapa de validação definindo o parâmetro validateAttachment como falso. Você pode validar o anexo posteriormente, se necessário, chamando a função Attachment.validate().
    Tabela 4. Parâmetros
    Nome Tipo Descrição
    para sysId Cadeia de caracteres Sys_id do anexo a ser recuperado.
    validarAnexo Booliano Sinalizador que indica se o anexo deve ser validado.
    Valores válidos:
    • verdadeiro: valida o anexo.
    • falso: não valide o anexo.

    Padrão: verdadeiro

    conclusão @escaping (Resultado​<NowAttachment, NowDataError>) Manipulador de conclusão a ser executado depois que o anexo for recuperado.
    Retornar valores para o manipulador de conclusão:
    • Sucesso: NowAttachment - Anexo solicitado
    • Falha: NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Erro)

        Lançado quando há um erro no token de acesso.

      • attachmentValidation

        Lançado quando um anexo falha na validação.

      • BadResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode: Código de status recebido da instância.

        Lançado quando uma solicitação retorna uma resposta inesperada

      • canDecodeModel(DecodingError)
        • DecodingError: erro de decodificação detectado.

        Lançado quando um modelo Codable não pode ser decodificado do JSON.

      • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
        • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
        • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

        Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

      • canEncodeModel(EncodingError)
        • EncodingError: erro de codificação detectado.

        Lançado quando um modelo Codable não pode ser codificado para JSON.

      • canParseResponse

        Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

      • URL inválido

        Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

      • ausenteAttachmentMetadata

        Lançado quando o cabeçalho de metadados do anexo está ausente.

      • ausenteConfiguraçãoDeServiço

        Lançado quando uma configuração de serviço esperada está ausente.

      • ausenteSysID

        Lançado quando um parâmetro sys_id esperado está ausente.

      • network(NetworkServiceError)
        • genericError(cadeia de caracteres)
        • operaçãoCancelada
        • serviço​Desabilitado
        • serverError(Error)
        • systemError(Error)

        Lançado quando um serviço de rede encontrou um erro.

    Tabela 5. Retorna
    Tipo Descrição
    Nenhum

    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 - attachment (para sysId: Cadeia de caracteres, identifyAttachment: Booliano)

    Recupera o anexo com o sys_id especificado e valida o anexo comparando o hash calculado do anexo com o esperado.

    Nota:
    A validação de um anexo pode causar um impacto no desempenho. Você pode ignorar a etapa de validação definindo o parâmetro validateAttachment como falso. Se necessário, você pode validar o anexo posteriormente chamando a função Attachment.validate().
    Nota:
    Este método foi descontinuado. Em vez disso, você deve usar a implementação assíncrona/aguardando do método.
    Tabela 6. Parâmetros
    Nome Tipo Descrição
    para sysId Cadeia de caracteres Sys_id do anexo a ser recuperado.
    validarAnexo Booliano Sinalizador que indica se o anexo deve ser validado.
    Valores válidos:
    • verdadeiro: valida o anexo.
    • falso: não valide o anexo.

    Padrão: verdadeiro

    Tabela 7. Retorna
    Tipo Descrição
    Qualquer publicador​<NowAttachment, NowDataError> Sucesso: NowAttachment - Contém o anexo especificado.

    Falha: NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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 (filtro: filtro, limite: Int) lançamentos assíncronos

    Recupera os metadados de todos os anexos que atendem aos critérios especificados.

    Tabela 8. Parâmetros
    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 o parâmetro limit.

    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 às especificações do parâmetro filter.

    Tabela 9. Retorna
    Tipo Descrição
    [NowAttachmentMetadata] Retornado quando o método é bem-sucedido. Matriz que contém os metadados dos anexos correspondentes.
    NowDataError Lançado quando o método falha.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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: @escaping (Result<[NowAttachmentMetadata], NowDataError>))

    Recupera os metadados de todos os anexos que atendem aos critérios especificados.

    Tabela 10. Parâmetros
    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 o parâmetro limit.

    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 às especificações do parâmetro filter.

    conclusão @escaping (Result​<[NowAttachmentMetadata], NowDataError>) Manipulador de conclusão a ser executado depois que os metadados forem recuperados.
    Retornar valores para o manipulador de conclusão:
    • Sucesso: NowAttachmentMetadata - Objetos que contêm os metadados solicitados.
    • Erro: NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Erro)

        Lançado quando há um erro no token de acesso.

      • attachmentValidation

        Lançado quando um anexo falha na validação.

      • BadResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode: Código de status recebido da instância.

        Lançado quando uma solicitação retorna uma resposta inesperada

      • canDecodeModel(DecodingError)
        • DecodingError: erro de decodificação detectado.

        Lançado quando um modelo Codable não pode ser decodificado do JSON.

      • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
        • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
        • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

        Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

      • canEncodeModel(EncodingError)
        • EncodingError: erro de codificação detectado.

        Lançado quando um modelo Codable não pode ser codificado para JSON.

      • canParseResponse

        Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

      • URL inválido

        Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

      • ausenteAttachmentMetadata

        Lançado quando o cabeçalho de metadados do anexo está ausente.

      • ausenteConfiguraçãoDeServiço

        Lançado quando uma configuração de serviço esperada está ausente.

      • ausenteSysID

        Lançado quando um parâmetro sys_id esperado está ausente.

      • network(NetworkServiceError)
        • genericError(cadeia de caracteres)
        • operaçãoCancelada
        • serviço​Desabilitado
        • serverError(Error)
        • systemError(Error)

        Lançado quando um serviço de rede encontrou um erro.

    Tabela 11. Retorna
    Tipo Descrição
    Nenhum

    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.

    Nota:
    Este método foi descontinuado. Em vez disso, você deve usar a implementação assíncrona/aguardando do método.
    Tabela 12. Parâmetros
    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 o parâmetro limit.

    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 às especificações do parâmetro filter.

    Tabela 13. Retorna
    Tipo Descrição
    Qualquer publicador​<[NowAttachmentMetadata], NowDataError> Sucesso: NowAttachmentMetadata - Objetos que contêm os metadados dos anexos correspondentes.

    Falha: NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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 (para sysId: cadeia de caracteres) lançamentos assíncronos

    Recupera os metadados do anexo associado ao sys_id especificado.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    para sysId Cadeia de caracteres Sys_id do anexo cujos metadados serão recuperados.
    Tabela 15. Retorna
    Tipo Descrição
    NowAttachmentMetadata Retornado quando o método é bem-sucedido. Metadados do anexo solicitado.
    NowDataError Lançado quando o método falha.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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: @escaping (Resultado<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.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    para sysId Cadeia de caracteres Sys_id do anexo cujos metadados serão recuperados.
    conclusão @escaping (Resultado​<NowAttachmentMetadata, NowDataError>) Manipulador de conclusão a ser executado depois que os metadados forem recuperados.
    Retornar valores para o manipulador de conclusão:
    • Sucesso: NowAttachmentMetadata - Metadados solicitados
    • Falha: NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Erro)

        Lançado quando há um erro no token de acesso.

      • attachmentValidation

        Lançado quando um anexo falha na validação.

      • BadResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode: Código de status recebido da instância.

        Lançado quando uma solicitação retorna uma resposta inesperada

      • canDecodeModel(DecodingError)
        • DecodingError: erro de decodificação detectado.

        Lançado quando um modelo Codable não pode ser decodificado do JSON.

      • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
        • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
        • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

        Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

      • canEncodeModel(EncodingError)
        • EncodingError: erro de codificação detectado.

        Lançado quando um modelo Codable não pode ser codificado para JSON.

      • canParseResponse

        Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

      • URL inválido

        Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

      • ausenteAttachmentMetadata

        Lançado quando o cabeçalho de metadados do anexo está ausente.

      • ausenteConfiguraçãoDeServiço

        Lançado quando uma configuração de serviço esperada está ausente.

      • ausenteSysID

        Lançado quando um parâmetro sys_id esperado está ausente.

      • network(NetworkServiceError)
        • genericError(cadeia de caracteres)
        • operaçãoCancelada
        • serviço​Desabilitado
        • serverError(Error)
        • systemError(Error)

        Lançado quando um serviço de rede encontrou um erro.

    Tabela 17. Retorna
    Tipo Descrição
    Nenhum

    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.

    Nota:
    Este método foi descontinuado. Em vez disso, você deve usar a implementação assíncrona/aguardando do método.
    Tabela 18. Parâmetros
    Nome Tipo Descrição
    para sysId Cadeia de caracteres Sys_id do anexo cujos metadados serão recuperados.
    Tabela 19. Retorna
    Tipo Descrição
    Qualquer publicador​<[NowAttachmentMetadata], NowDataError> Sucesso: NowAttachmentMetadata - Objeto que contém os metadados do anexo solicitado.

    Falha: NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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 pelas páginas dos metadados retornados.

    Tabela 20. Parâmetros
    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 o parâmetro limit.

    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 às especificações do parâmetro filter.

    Tabela 21. Retorna
    Tipo Descrição
    Paginador​<[NowAttachmentMetadata]> Sucesso: matriz de objetos NowAttachmentMetadata.

    Falha: objeto NowDataError.

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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: String) lançamentos assíncronos

    Exclui o anexo com o sys_id especificado.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    sysId Cadeia de caracteres Sys_id do anexo a ser excluído.
    Tabela 23. Retorna
    Tipo Descrição
    Nenhum Nada será retornado se o método for bem-sucedido.
    NowDataError Lançado quando o método falha.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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: @escaping (Resultado<Void, NowDataError> ))

    Exclui o anexo com o sys_id especificado e executa o manipulador de conclusão aprovado depois que o anexo é excluído.

    Tabela 24. Parâmetros
    Nome Tipo Descrição
    sysId Cadeia de caracteres Sys_id do anexo a ser excluído.
    conclusão @escaping (resultado<Void, NowDataError> ) Manipulador de conclusão a ser executado após a exclusão do anexo.
    Retornar valores para o manipulador de conclusão:
    • Sucesso: vazio
    • Erro: NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Erro)

        Lançado quando há um erro no token de acesso.

      • attachmentValidation

        Lançado quando um anexo falha na validação.

      • BadResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode: Código de status recebido da instância.

        Lançado quando uma solicitação retorna uma resposta inesperada

      • canDecodeModel(DecodingError)
        • DecodingError: erro de decodificação detectado.

        Lançado quando um modelo Codable não pode ser decodificado do JSON.

      • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
        • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
        • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

        Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

      • canEncodeModel(EncodingError)
        • EncodingError: erro de codificação detectado.

        Lançado quando um modelo Codable não pode ser codificado para JSON.

      • canParseResponse

        Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

      • URL inválido

        Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

      • ausenteAttachmentMetadata

        Lançado quando o cabeçalho de metadados do anexo está ausente.

      • ausenteConfiguraçãoDeServiço

        Lançado quando uma configuração de serviço esperada está ausente.

      • ausenteSysID

        Lançado quando um parâmetro sys_id esperado está ausente.

      • network(NetworkServiceError)
        • genericError(cadeia de caracteres)
        • operaçãoCancelada
        • serviço​Desabilitado
        • serverError(Error)
        • systemError(Error)

        Lançado quando um serviço de rede encontrou um erro.

    Tabela 25. Retorna
    Tipo Descrição
    Nenhum

    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.

    Nota:
    Este método foi descontinuado. Em vez disso, você deve usar a implementação assíncrona/aguardando do método.
    Tabela 26. Parâmetros
    Nome Tipo Descrição
    sysId Cadeia de caracteres Sys_id do anexo a ser excluído.
    Tabela 27. Retorna
    Tipo Descrição
    Qualquer publicador<Void, NowDataError> Sucesso: nada retornado

    Falha: NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding)

    Inicializa uma nova instância NowAttachmentService.

    Tabela 28. Parâmetros
    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: nulo

    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, configuração: NowAttachmentUploadConfiguration, progressUpdate: @escaping 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.

    O retorno de chamada ProgressUpdate fornece informações de andamento de upload que você pode usar para fornecer feedback de IU.

    Tabela 29. Parâmetros
    Nome Tipo Descrição
    dados Dados Anexo a ser carregado.
    configuração Configuração de NowAttachmentUpload Informações de configuração que definem os parâmetros de carregamento do anexo, como:
    • Tabela e registro aos quais o arquivo será anexado
    • Nome do arquivo de anexo
    • Tipo de anexo
    • Se o arquivo está criptografado
    andamentoAtualizar @escaping ProgressUpdate Manipulador de conclusão a ser executado depois que o anexo for recuperado. Isso é chamado várias vezes até que o processo de upload seja concluído.

    Retornar valores para o manipulador de conclusão:

    ProgressUpdate — Retorna o andamento atual do upload.

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

    Tabela 30. Retorna
    Tipo Descrição
    NowAttachmentMetadata Retornado quando o método é bem-sucedido. Objeto que contém os metadados carregados.
    NowDataError Lançado quando o método falha.
    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

    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 (dados: Dados, configuração: NowAttachmentUploadConfiguration, progressUpdate: @escaping ProgressUpdate, conclusão: @escaping (Resultado<NowAttachmentMetadata, NowDataError> ))

    Carrega os dados do anexo e os anexa a um registro em uma tabela conforme especificado na configuração de carregamento.

    O retorno de chamada ProgressUpdate fornece informações de andamento de upload que você pode usar para fornecer feedback de IU.

    Tabela 31. Parâmetros
    Nome Tipo Descrição
    dados Dados Anexo a ser carregado.
    configuração Configuração de NowAttachmentUpload Informações de configuração que definem os parâmetros de carregamento do anexo, como:
    • Tabela e registro aos quais o arquivo será anexado
    • Nome do arquivo de anexo
    • Tipo de anexo
    • Se o arquivo está criptografado
    andamentoAtualizar @escaping ProgressUpdate Manipulador de conclusão a ser executado depois que o anexo for recuperado. Isso é chamado várias vezes até que o processo de upload seja concluído.

    Retornar valores para o manipulador de conclusão:

    ProgressUpdate — Retorna o andamento atual do upload.

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

    conclusão @escaping (Result<NowAttachmentMetadata, NowDataError>) Manipulador de conclusão a ser executado depois que os metadados são carregados.
    Retornar valores para o manipulador de conclusão:
    • Sucesso: NowAttachmentMetadata - Objeto que contém os metadados do anexo carregado.
    • Erro: NowDataError
      • accessToken(AccessTokenProviderError)
        • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
          • accessTokenRetrievalFailed
          • userSessionError(_ error: Erro)

        Lançado quando há um erro no token de acesso.

      • attachmentValidation

        Lançado quando um anexo falha na validação.

      • BadResponse(statusCode: HTTPStatusCode)
        • HTTPStatusCode: Código de status recebido da instância.

        Lançado quando uma solicitação retorna uma resposta inesperada

      • canDecodeModel(DecodingError)
        • DecodingError: erro de decodificação detectado.

        Lançado quando um modelo Codable não pode ser decodificado do JSON.

      • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
        • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
        • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

        Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

      • canEncodeModel(EncodingError)
        • EncodingError: erro de codificação detectado.

        Lançado quando um modelo Codable não pode ser codificado para JSON.

      • canParseResponse

        Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

      • URL inválido

        Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

      • ausenteAttachmentMetadata

        Lançado quando o cabeçalho de metadados do anexo está ausente.

      • ausenteConfiguraçãoDeServiço

        Lançado quando uma configuração de serviço esperada está ausente.

      • ausenteSysID

        Lançado quando um parâmetro sys_id esperado está ausente.

      • network(NetworkServiceError)
        • genericError(cadeia de caracteres)
        • operaçãoCancelada
        • serviço​Desabilitado
        • serverError(Error)
        • systemError(Error)

        Lançado quando um serviço de rede encontrou um erro.

    Tabela 32. Retorna
    Tipo Descrição
    Nenhum

    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: @escaping ProgressUpdate)

    Carrega os dados do anexo e os anexa a um registro em uma tabela conforme especificado na configuração de carregamento.

    O retorno de chamada ProgressUpdate fornece informações de andamento de upload que você pode usar para fornecer feedback de IU.

    Nota:
    Este método foi descontinuado. Em vez disso, você deve usar a implementação assíncrona/aguardando do método.
    Tabela 33. Parâmetros
    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 pela sua instância ServiceNow.
    configuração NowAttachmentUploadConfiguration Informações de configuração que definem os parâmetros de carregamento do anexo, como:
    • Tabela e registro aos quais o arquivo será anexado
    • Nome do arquivo de anexo
    • Tipo de anexo
    • Se o arquivo está criptografado
    andamentoAtualizar @escaping ProgressUpdate Manipulador de conclusão a ser executado depois que o anexo for recuperado.

    Retornar valores para o manipulador de conclusão:

    ProgressUpdate — Retorna o andamento atual do upload. Isso é chamado várias vezes até que o processo de upload seja concluído.

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

    Tabela 34. Retorna
    Tipo Descrição
    Qualquer publicador​<NowAttachmentMetadata, NowDataError> Sucesso: NowAttachmentMetadata - Objeto que contém os metadados do anexo solicitado.

    Falha: NowDataError

    • accessToken(AccessTokenProviderError)
      • AccessTokenProviderError: O código ou a mensagem de erro do provedor de token de acesso.
        • accessTokenRetrievalFailed
        • userSessionError(_ error: Erro)

      Lançado quando há um erro no token de acesso.

    • attachmentValidation

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Código de status recebido da instância.

      Lançado quando uma solicitação retorna uma resposta inesperada

    • canDecodeModel(DecodingError)
      • DecodingError: erro de decodificação detectado.

      Lançado quando um modelo Codable não pode ser decodificado do JSON.

    • canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)
      • type: tipo encapsulado para decodificar de uma cadeia de caracteres.
      • from: Cadeia de caracteres a ser decodificada para o tipo especificado.

      Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON.

    • canEncodeModel(EncodingError)
      • EncodingError: erro de codificação detectado.

      Lançado quando um modelo Codable não pode ser codificado para JSON.

    • canParseResponse

      Lançado quando uma resposta da instância não pode ser analisada no formato esperado.

    • URL inválido

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia.

    • ausenteAttachmentMetadata

      Lançado quando o cabeçalho de metadados do anexo está ausente.

    • ausenteConfiguraçãoDeServiço

      Lançado quando uma configuração de serviço esperada está ausente.

    • ausenteSysID

      Lançado quando um parâmetro sys_id esperado está ausente.

    • network(NetworkServiceError)
      • genericError(cadeia de caracteres)
      • operaçãoCancelada
      • serviço​Desabilitado
      • serverError(Error)
      • systemError(Error)

      Lançado quando um serviço de rede encontrou um erro.

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